STM32 FSMC學(xué)習(xí)筆記
當(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ī)則):
(所有輸出控制信號在內(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ù)保持時間的約束能夠滿足。)
四:時序計算
設(shè)定值都是以Hclk為基本單位的
公式:
現(xiàn)在沒有完全弄明白的是,因?yàn)槭钱惒侥J?,?shù)據(jù)通過延遲一個HCLK通知給了對端,地址線上的信號怎么通知對端有效呢?
--------------------------------------------------------------------------------------------------
下面是一些資料上的數(shù)據(jù),可以估算時間是否大概滿足應(yīng)用的要求:
--------------------------------------------------------------------------------------------------
一些常見問題的FAQ:
1.STM32F103 FSMC是不是所有型號都有?
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)板就來了,估計花些時間調(diào)一下FSMC,再加上DMA的功能,希望能改善產(chǎn)品。
PS:糾結(jié)了 快一個禮拜。。終于搞定了,現(xiàn)在只需測一下性能,再加上DMA。最后測下DMA對CPU有多少開銷就OK了!
評論