STM32 FSMC學(xué)習(xí)筆記
當(dāng)要讀數(shù)據(jù)時(shí),地址由0x60020000改為了0x60000000,這個(gè)時(shí)候A16就為0了。--------------------------------------------------------------------------------------------------
下來就是關(guān)于 FSCM時(shí)序問題,大家都有討論:
一.當(dāng)FSMC選擇NOR和PSRAM模塊時(shí):
分為兩種:1.異步事務(wù)2.同步突發(fā)事務(wù)
異步事務(wù)分為普通模式(mode 1,mode 2)和模式1與模式2的4種擴(kuò)展模式(mode A,B,C,D);
二.General timing rules(通用時(shí)序規(guī)則):
(所有輸出控制信號(hào)在內(nèi)部時(shí)鐘(HCLK)的上升沿改變)
2.In synchronous read and write mode, the output data changes on the falling edge of the
memory clock (FSMC_CLK).
(在同步讀和寫模式下,輸出信號(hào)在存儲(chǔ)器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總是在撤銷片選信號(hào)NE前采樣數(shù)據(jù),這保證了了儲(chǔ)存器數(shù)據(jù)保持時(shí)間的約束能夠滿足。)
四:時(shí)序計(jì)算
設(shè)定值都是以Hclk為基本單位的
公式:
現(xiàn)在沒有完全弄明白的是,因?yàn)槭钱惒侥J?,?shù)據(jù)通過延遲一個(gè)HCLK通知給了對(duì)端,地址線上的信號(hào)怎么通知對(duì)端有效呢?
--------------------------------------------------------------------------------------------------
下面是一些資料上的數(shù)據(jù),可以估算時(shí)間是否大概滿足應(yīng)用的要求:
--------------------------------------------------------------------------------------------------
一些常見問題的FAQ:
1.STM32F103 FSMC是不是所有型號(hào)都有?
ANS:VC,VD,VE,ZC,ZD,ZE只有這幾個(gè)型號(hào)有。
---------------------------------------------------------------------------------------------------------------------------------
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為低時(shí),ADx(x=0…15)上出現(xiàn)地址信號(hào)Ax,當(dāng)NADV變高時(shí),ADx上出現(xiàn)數(shù)據(jù)信號(hào)Dx。
若使用鎖存器:可同時(shí)在ADx上得到Ax和Dx。
FSMC中未使用的數(shù)據(jù)線或地址線可配置為GPIO
對(duì)于16位寬度的外部存儲(chǔ)器,F(xiàn)SMC將在內(nèi)部使用HADDR[25:1]產(chǎn)生外部存儲(chǔ)器的地址FSMC_A[24:0]。因此,實(shí)際的訪問地址為右移一位之后的地址。
---------------------------------------------------------------------------------------------------------------------------------
3.時(shí)序圖(擴(kuò)展模式)
普通模式和擴(kuò)展模式的不同主要用途我覺得,就是把讀、寫設(shè)置成不盡相同的時(shí)序。所謂的模式A、B、C、D,其實(shí)沒多大區(qū)別。
引用手冊(cè)原文:
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.不明白這兩個(gè)怎么用?
ANS:NBL0,NBL1,在STM32F103的數(shù)據(jù)手冊(cè)里面有規(guī)定IO的,不能隨便換.(PSRAM時(shí)使用)
NWAIT應(yīng)該是FLASH操作才用的.NE1,NCE2就是一些片選信號(hào).STM32的FSMC支持同時(shí)掛多個(gè)器件,每個(gè)器件都必須有一個(gè)CS(也就是NEx,NCEx).
NADV(NL)在復(fù)用時(shí)時(shí)所存信號(hào)。在非復(fù)用模式控制PSRAM輸出有效。
看了1天的英文資料和論壇,這是我總結(jié)出來的一些雜亂的信息,由于剛到嵌入式開發(fā)行列,底子太弱,所以先把這些保存下來,供以后使用。
下周一實(shí)驗(yàn)板就來了,估計(jì)花些時(shí)間調(diào)一下FSMC,再加上DMA的功能,希望能改善產(chǎn)品。
PS:糾結(jié)了 快一個(gè)禮拜。。終于搞定了,現(xiàn)在只需測(cè)一下性能,再加上DMA。最后測(cè)下DMA對(duì)CPU有多少開銷就OK了!
評(píng)論