STM32之FSMC-SRAM/NOR原理
FSMC,即靈活的靜態存儲控制器,能夠與同步或異步存儲器和 16 位 PC 存儲器卡連接,STM32F4 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存儲器。
所有的外部存儲器共享地址、數據和控制信號,但有各自的片選信號。FSMC一次只能訪問一個外部器件。
?
STM32的FSMC主要功能:(詳情看手冊)
● 支持對同步器件(NOR Flash 和 PSRAM)的突發模式訪問
● 8 或 16 位寬的數據總線
● 每個存儲區域有獨立的片選控制
● 每個存儲區域可獨立配置
● 可對時序進行編程,以支持各種器件
?
FSMC 包含四個主要模塊:
● AHB 接口(包括 FSMC 配置寄存器)
● NOR Flash/PSRAM 控制器
● NAND Flash/PC 卡控制器
● 外部器件接口
?
外部器件地址映射
從FSMC的角度,外部存儲器被劃分為4個固定大小的存儲區域,每個區域的大小為256MB,如下圖:
● 存儲區域 1 可連接多達 4 個 NOR Flash 或 PSRAM 存儲器器件。此存儲區域被劃分為 4 個
NOR/PSRAM 區域,帶 4 個專用片選信號。
● 存儲區域 2 和 3 用于連接 NAND Flash 器件(每個存儲區域一個器件)
● 存儲區域 4 用于連接 PC 卡設備
從上圖可知FSMC總共管理1GB空間,擁有4個存儲塊(Bank),這里我們討論存儲塊1(Bank1),Bank1分為4個區,每個區64M字節空間,每個區都有獨立的寄存器對所連接的存儲器進行配置。Bank1的256M字節空間由28根地址線(HADDR[27:0])尋址。
這里HADDR是內部AHB地址總線,其中HADDR[25:0]來自外部存儲器地址FSMC_A[25:0],而HADDR[26:27]對4個區進行尋址,如下圖:
HARRD[25:0]包含外部存儲器地址,由于HARRD為字節地址,而存儲器按字尋址,所以根據存儲器數據的寬度的不同,實際向存儲器發送的地址也將有所不同,如下圖:
當 Bank1 接的是 16 位寬度存儲器的時候:HADDR[25:1]-->FSMC[24:0]。
當 Bank1 接的是 ?8 位寬度存儲器的時候:HADDR[25:0]-->FSMC[25:0]。
不論外部接 8 ?位/16 ?位寬設備,FSMC_A[0]?永遠接在外部設備地址?A[0] 。
?
?
STM32的FSMC支持數據與地址線復用或非復用兩種模式
非復用模式:16位數據線及26位地址線分開始用。推薦在144腳及以上的STM32產品上使用該模式。
復用模式:低16位數據/地址線復用。在該模式下,推薦使用地址鎖存器以區分數據與地址。
若不使用鎖存器:當NADV為低時,ADx(x=0…15)上出現地址信號Ax,當NADV變高時,ADx上出現數據信號Dx。
若使用鎖存器:可同時在ADx上得到Ax和Dx。
?
?FSMC?綜合了?SRAM/ROM、?PSRAM?和?NOR Flash?產品的信號特點,定義了不同的異步時序模型。選用不同的時序模型時,需要設置不同的時序參數。在實際擴展時,根據選用存儲器的特征確定時序模型,從而確定各時間參數與存儲器讀/寫周期參數指標之間的計算關系;利用該計算關系和存儲芯片數據手冊中給定的參數指標,可計算出?FSMC?所需要的各時間參數,從而對時間參數寄存器進行合理的配置。
模式1 —— SRAM/CRAM
模式A —— SRAM/PSRAM(CRAM)
模式2/B —— NOR閃存
模式C —— NOR閃存
模式D —— 帶地址擴展的異步操作
復用模式—— 地址/數據復用的NOR閃存異步操作
?
?
對于NOR FLASH/PSRAM控制器-存儲塊1,可通過FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器設置(其中x=1~4,對應4個區)。?
通過這3個寄存器,可以設置FSMC訪問外部存儲器的時序參數,拓寬了可選用的外部存儲器的速度范圍。
1.SRAM/NOR閃存片選控制寄存器(FSMC_BCRx)
EXTMOD:擴展模式使能位,控制是否允許讀寫不同的時序,需設置為1
WREN:寫使能位。我們要向TFTLCD寫數據,需設置為1
MWID[1:0]:存儲器數據總線寬度。00,表示8位數據模式;01表示16位數據模式;10和11保留。
MTYP[1:0]:存儲器類型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。
MBKEN:存儲塊使能位。需設置為1
2.SRAM/NOR閃存片選時序寄存器(FSMC_BTRx)-讀時序控制
ACCMOD[1:0]:訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。
DATAST[7:0]:數據保持時間,等于: DATAST(+1)個HCLK時鐘周期,DATAST最大為255。
ADDSET[3:0]:地址建立時間。表示:ADDSET+1個HCLK周期,ADDSET最大為15。
3.SRAM/NOR閃存寫時序寄存器(FSMC_BWTRx)-寫時序控制
ACCMOD[1:0]:訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。
DATAST[7:0]:數據保持時間,等于: DATAST(+1)個HCLK時鐘周期,DATAST最大為255。
ADDSET[3:0]:地址建立時間。表示:ADDSET+1個HCLK周期,ADDSET最大值為1111 = 15。
?
總結
以上是生活随笔為你收集整理的STM32之FSMC-SRAM/NOR原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: S5PV210裸机之重定位
- 下一篇: STM32之CAN总线例程