【STM32】FSMC概述
00. 目錄
文章目錄
- 00. 目錄
- 01. FSMC簡(jiǎn)介
- 02. FSMC主要特性
- 03. FSMC框圖
- 04. 外部器件地址映射
- 4.1 NOR/PSRAM地址映射
- 4.2 NOR Flash/PSRAM控制器
- 05. 寄存器描述
- 5.1 SRAM/NOR-Flash 片選控制寄存器 1..4 (FSMC_BCR1..4)
- 5.2 SRAM/NOR-Flash 片選時(shí)序寄存器 1..4 (FSMC_BTR1..4)
- 5.3 SRAM/NOR-Flash 寫(xiě)入時(shí)序寄存器 1..4 (FSMC_BWTR1..4)
- 06. 附錄
- 07. 聲明
01. FSMC簡(jiǎn)介
STM32F407 或 STM32F417 系列芯片都帶有 FSMC 接口,ALIENTEK 探索者 STM32F4 開(kāi)發(fā)板的主芯片為 STM32F407ZGT6,是帶有 FSMC 接口的。
FSMC,即靈活的靜態(tài)存儲(chǔ)控制器,能夠與同步或異步存儲(chǔ)器和 16 位 PC 存儲(chǔ)器卡連接,STM32F4 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存儲(chǔ)器。
02. FSMC主要特性
FSMC 能夠連接同步、異步存儲(chǔ)器和 16 位 PC 存儲(chǔ)卡。其主要用途如下:
● 將 AHB 數(shù)據(jù)通信事務(wù)轉(zhuǎn)換為適當(dāng)?shù)耐獠科骷f(xié)議
● 滿足外部器件的訪問(wèn)時(shí)序要求
所有外部存儲(chǔ)器共享地址、數(shù)據(jù)和控制信號(hào),但有各自的片選信號(hào)。FSMC 一次只能訪問(wèn)一個(gè)外部器件。
FSMC 具有以下主要功能:
● 連接靜態(tài)存儲(chǔ)器映射的器件:
— 靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器 (SRAM)
— 只讀存儲(chǔ)器 (ROM)
— NOR Flash/OneNAND Flash
— PSRAM(4 個(gè)存儲(chǔ)區(qū)域)
● 兩個(gè)帶有 ECC 硬件的 NAND Flash 存儲(chǔ)區(qū)域,可檢查多達(dá) 8 KB 的數(shù)據(jù)
● 16 位 PC 卡兼容設(shè)備
● 支持對(duì)同步器件(NOR Flash 和 PSRAM)的突發(fā)模式訪問(wèn)
● 8 或 16 位寬的數(shù)據(jù)總線
● 每個(gè)存儲(chǔ)區(qū)域有獨(dú)立的片選控制
● 每個(gè)存儲(chǔ)區(qū)域可獨(dú)立配置
● 可對(duì)時(shí)序進(jìn)行編程,以支持各種器件,尤其是:
— 等待周期可編程(最多 15 個(gè)時(shí)鐘周期)
— 總線周轉(zhuǎn)周期可編程(最多 15 個(gè)時(shí)鐘周期)
— 輸出使能和寫(xiě)入使能延遲可編程(最多 15 個(gè)時(shí)鐘周期)
— 獨(dú)立的讀和寫(xiě)時(shí)序和協(xié)議,以支持各種存儲(chǔ)器和時(shí)序
● 寫(xiě)使能和字節(jié)通道選擇輸出,可配合 PSRAM 和 SRAM 器件使用
● 將 32 位的 AHB 事務(wù)轉(zhuǎn)換為針對(duì)外部 16 位或 8 位器件進(jìn)行的連續(xù) 16 位或 8 位訪問(wèn)。
● 用于寫(xiě)入的 FIFO,2 字長(zhǎng)(對(duì)于 STM32F42x 和 STM32F43x,為 16 字長(zhǎng)),每個(gè)字為32 位寬,僅用于存儲(chǔ)數(shù)據(jù),而不存儲(chǔ)地址。因此,此 FIFO 僅會(huì)緩沖 AHB 批量寫(xiě)事務(wù)。從而可對(duì)慢速存儲(chǔ)器執(zhí)行寫(xiě)入操作后能快速釋放 AHB,以供其它操作使用。每次僅緩沖一個(gè)突發(fā)事務(wù):如果在有操作正在進(jìn)行時(shí)發(fā)生一個(gè)新的 AHB 突發(fā)事務(wù)或者一個(gè)單獨(dú)事務(wù),則 FIFO 將會(huì)清空。FSMC 將插入等待周期,直至當(dāng)前存儲(chǔ)器訪問(wèn)已完成)。
● 外部異步等待控制
定義外部器件類型和其特性的 FSMC 寄存器通常在啟動(dòng)時(shí)進(jìn)行設(shè)置,并且在下次上電或復(fù)位前保持不變。但也可隨時(shí)更改這些設(shè)置。
03. FSMC框圖
FSMC 包含四個(gè)主要模塊:
● AHB 接口(包括 FSMC 配置寄存器)
● NOR Flash/PSRAM 控制器
● NAND Flash/PC 卡控制器
● 外部器件接口
04. 外部器件地址映射
從 FSMC 的角度,外部存儲(chǔ)器被劃分為 4 個(gè)固定大小的存儲(chǔ)區(qū)域,每個(gè)存儲(chǔ)區(qū)域的大小為256 MB:
● 存儲(chǔ)區(qū)域 1 可連接多達(dá) 4 個(gè) NOR Flash 或 PSRAM 存儲(chǔ)器器件。此存儲(chǔ)區(qū)域被劃分為 4 個(gè)NOR/PSRAM 區(qū)域,帶 4 個(gè)專用片選信號(hào)。
● 存儲(chǔ)區(qū)域 2 和 3 用于連接 NAND Flash 器件(每個(gè)存儲(chǔ)區(qū)域一個(gè)器件)
● 存儲(chǔ)區(qū)域 4 用于連接 PC 卡設(shè)備
對(duì)于每個(gè)存儲(chǔ)區(qū)域,所要使用的存儲(chǔ)器類型由用戶在配置寄存器中定義。
4.1 NOR/PSRAM地址映射
HADDR[27:26] 位用于從 表 185 中所示的四個(gè)存儲(chǔ)區(qū)域之中選擇其中一個(gè)存儲(chǔ)區(qū)域。
HADDR[25:0] 包含外部存儲(chǔ)器地址。由于 HADDR 為字節(jié)地址,而存儲(chǔ)器按字尋址,所以根據(jù)存儲(chǔ)器數(shù)據(jù)寬度不同,實(shí)際向存儲(chǔ)器發(fā)送的地址也將有所不同,如下表所示。
4.2 NOR Flash/PSRAM控制器
FSMC 會(huì)生成適當(dāng)?shù)男盘?hào)時(shí)序,以驅(qū)動(dòng)以下類型的存儲(chǔ)器:
● 異步 SRAM 和 ROM
— 8 位
— 16 位
— 32 位
● PSRAM(Cellular RAM)
— 異步模式
— 突發(fā)模式
— 復(fù)用或非復(fù)用
● NOR Flash
— 異步模式或突發(fā)模式
— 復(fù)用或非復(fù)用
FSMC 會(huì)為每個(gè)存儲(chǔ)區(qū)域輸出唯一的片選信號(hào) NE[4:1]。所有其它信號(hào)(地址、數(shù)據(jù)和控制)均為共享信號(hào)。
對(duì)于同步訪問(wèn),FSMC 只有在讀/寫(xiě)事務(wù)期間才會(huì)向所選的外部器件發(fā)出時(shí)鐘 (CLK)。HCLK時(shí)鐘頻率是該時(shí)鐘的整數(shù)倍。每個(gè)存儲(chǔ)區(qū)域的大小固定,均為 64 MB。
每個(gè)存儲(chǔ)區(qū)域都通過(guò)專用的寄存器進(jìn)行配置(請(qǐng)參見(jiàn) 第 32.5.6 節(jié) )。
存儲(chǔ)器的可編程參數(shù)包括訪問(wèn)時(shí)序(請(qǐng)參見(jiàn) 表 189)和對(duì)等待管理的支持(用于在突發(fā)模式下訪問(wèn) NOR Flash 和 PSRAM)。
05. 寄存器描述
5.1 SRAM/NOR-Flash 片選控制寄存器 1…4 (FSMC_BCR1…4)
SRAM/NOR-Flash chip-select control registers 1…4
偏移地址:0xA000 0000 + 8 * (x — 1),x = 1…4
復(fù)位值:0x0000 30DX
該寄存器包含每個(gè)存儲(chǔ)區(qū)域的控制信息,用于 SRAM、ROM 和異步或突發(fā) NOR Flash。
5.2 SRAM/NOR-Flash 片選時(shí)序寄存器 1…4 (FSMC_BTR1…4)
SRAM/NOR-Flash chip-select timing registers 1…4
偏移地址:0xA000 0000 + 0x04 + 8 * (x — 1),x = 1…4
復(fù)位值:0x0FFF FFFF
該寄存器包含每個(gè)存儲(chǔ)區(qū)域的控制信息,用于 SRAM、ROM 和 NOR Flash。如果FSMC_BCRx 寄存器中的 EXTMOD 位置 1,該寄存器將和另外一個(gè)寄存器配合來(lái)配置寫(xiě)入和讀取的時(shí)序參數(shù)。也就是說(shuō)有 2 個(gè)寄存器可用:一個(gè)用于配置讀取訪問(wèn)(此寄存器),另一個(gè)用于配置寫(xiě)入訪問(wèn)(FSMC_BWTRx 寄存器)。
5.3 SRAM/NOR-Flash 寫(xiě)入時(shí)序寄存器 1…4 (FSMC_BWTR1…4)
SRAM/NOR-Flash write timing registers 1…4
偏移地址:0xA000 0000 + 0x104 + 8 * (x — 1),x = 1…4
復(fù)位值:0x0FFF FFFF
該寄存器包含每個(gè)存儲(chǔ)區(qū)域的控制信息,用于 SRAM、ROM 和 NOR Flash。當(dāng) FSMC_BCRx
寄存器中的 EXTMOD 位置 1 時(shí),該寄存器將處于有效狀態(tài),可以進(jìn)行寫(xiě)入訪問(wèn)。
06. 附錄
6.1 【STM32】STM32系列教程匯總
網(wǎng)址:【STM32】STM32系列教程匯總
07. 聲明
該教程參考了正點(diǎn)原子的《STM32 F4 開(kāi)發(fā)指南》
總結(jié)
以上是生活随笔為你收集整理的【STM32】FSMC概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【STM32】OLED简介
- 下一篇: 【STM32】FSMC相关函数和类型