<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32 FSMC學(xué)習(xí)筆記

          STM32 FSMC學(xué)習(xí)筆記

          作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏

          當(dāng)要讀數(shù)據(jù)時,地址由0x60020000改為了0x60000000,這個時候A16就為0了。--------------------------------------------------------------------------------------------------
          下來就是關(guān)于 FSCM時序問題,大家都有討論:

          一.當(dāng)FSMC選擇NOR和PSRAM模塊時:
          分為兩種:1.異步事務(wù)2.同步突發(fā)事務(wù)
          異步事務(wù)分為普通模式(mode 1,mode 2)和模式1與模式2的4種擴(kuò)展模式(mode A,B,C,D);

          二.General timing rules(通用時序規(guī)則):
          1.All controller output signals change on the rising edge of the internal clock (HCLK)
          (所有輸出控制信號在內(nèi)部時鐘(HCLK)的上升沿改變)
          2.In synchronous read and write mode, the output data changes on the falling edge of the
          memory clock (FSMC_CLK).
          (在同步讀和寫模式下,輸出信號在存儲器CLK的下降沿改變)
          三.采樣規(guī)則
          The FSMC always samples the data before de-asserting the chip select signal NE. This
          guarantees that the memory data-hold timing constraint is met (chip enable high to
          data transition, usually 0 ns min.)
          (FSMC總是在撤銷片選信號NE前采樣數(shù)據(jù),這保證了了儲存器數(shù)據(jù)保持時間的約束能夠滿足。)
          四:時序計(jì)算
          設(shè)定值都是以Hclk為基本單位的
          公式:



          現(xiàn)在沒有完全弄明白的是,因?yàn)槭钱惒侥J?,?shù)據(jù)通過延遲一個HCLK通知給了對端,地址線上的信號怎么通知對端有效呢?

          --------------------------------------------------------------------------------------------------
          下面是一些資料上的數(shù)據(jù),可以估算時間是否大概滿足應(yīng)用的要求:




          --------------------------------------------------------------------------------------------------

          一些常見問題的FAQ:

          1.STM32F103 FSMC是不是所有型號都有?

          本文引用地址:http://www.ex-cimer.com/article/201611/322515.htm

          ANS:VC,VD,VE,ZC,ZD,ZE只有這幾個型號有。

          ---------------------------------------------------------------------------------------------------------------------------------

          2.復(fù)用和非復(fù)用?

          STM32的FSMC支持?jǐn)?shù)據(jù)與地址線復(fù)用或非復(fù)用兩種模式
          非復(fù)用模式:16位數(shù)據(jù)線及26位地址線分開始用。推薦在144腳及以上的STM32產(chǎn)品上使用該模式。

          復(fù)用模式:低16位數(shù)據(jù)/地址線復(fù)用。在該模式下,推薦使用地址鎖存器以區(qū)分?jǐn)?shù)據(jù)與地址。

          若不使用鎖存器:當(dāng)NADV為低時,ADx(x=0…15)上出現(xiàn)地址信號Ax,當(dāng)NADV變高時,ADx上出現(xiàn)數(shù)據(jù)信號Dx。
          若使用鎖存器:可同時在ADx上得到Ax和Dx。

          FSMC中未使用的數(shù)據(jù)線或地址線可配置為GPIO

          對于16位寬度的外部存儲器,F(xiàn)SMC將在內(nèi)部使用HADDR[25:1]產(chǎn)生外部存儲器的地址FSMC_A[24:0]。因此,實(shí)際的訪問地址為右移一位之后的地址。

          ---------------------------------------------------------------------------------------------------------------------------------

          3.時序圖(擴(kuò)展模式)

          普通模式和擴(kuò)展模式的不同主要用途我覺得,就是把讀、寫設(shè)置成不盡相同的時序。所謂的模式A、B、C、D,其實(shí)沒多大區(qū)別。

          引用手冊原文:

          The differences with mode1 are the toggling of NADV and the independent read and write timings when extended mode is set。

          ---------------------------------------------------------------------------------------------------------------------------------

          4.FSMC_NWAIT和FSMC_NE1/FSMC_NCE2.不明白這兩個怎么用?

          ANS:NBL0,NBL1,在STM32F103的數(shù)據(jù)手冊里面有規(guī)定IO的,不能隨便換.(PSRAM時使用)

          NWAIT應(yīng)該是FLASH操作才用的.NE1,NCE2就是一些片選信號.STM32的FSMC支持同時掛多個器件,每個器件都必須有一個CS(也就是NEx,NCEx).

          NADV(NL)在復(fù)用時時所存信號。在非復(fù)用模式控制PSRAM輸出有效。





          看了1天的英文資料和論壇,這是我總結(jié)出來的一些雜亂的信息,由于剛到嵌入式開發(fā)行列,底子太弱,所以先把這些保存下來,供以后使用。
          下周一實(shí)驗(yàn)板就來了,估計(jì)花些時間調(diào)一下FSMC,再加上DMA的功能,希望能改善產(chǎn)品。


          PS:糾結(jié)了 快一個禮拜。。終于搞定了,現(xiàn)在只需測一下性能,再加上DMA。最后測下DMA對CPU有多少開銷就OK了!

          上一頁 1 2 下一頁

          關(guān)鍵詞: STM32FSMC學(xué)習(xí)筆

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();