FSMC-靈活的靜態存儲控制器

 

最近在學習SMT32的FSMC模塊,現將我自己對FSMC的理解講解一下,並對學習過程中遇到的疑點和難點進行分享。

0.前言

學習FSMC,我推薦《STM32F4xx中文參考手冊》、《STM32F4開發指南-庫函數版本_V1.1.pdf》和一些SRAM的技術文檔,比如《IS62WV51216.pdf》。如果有STM32開發板那就更好了,如果沒有開發板,只是想了解FSMC的工作原理及過程,可以參考STM32F407的程序代碼,這些資料可以去正點原子官方網站免費下載:http://www.openedv.com/thread-13912-1-1.html

本文主要是按照《STM32F4xx中文參考手冊》FSMC部分講解。對我在學習過程中的疑點難點進行補充。

1.FSMC概述

FSMC英文全稱爲Flexible Static Memory Controller,翻譯成中文爲:靈活的靜態存儲控制器。它是STM32的一個外設。

  • 功能:擴展外部SRAM、NOR FLASH、NAND FLASH、ROM、PC卡等。

2.FSMC框圖

 

FSMC 包含四個主要模塊:
● AHB 接口(包括 FSMC 配置寄存器)
● NOR Flash/PSRAM 控制器
● NAND Flash/PC 卡控制器
● 外部器件接口

也就是說,STM32的FSMC模塊可以用來外接靜態隨機訪問存儲器 (SRAM)、 只讀存儲器 (ROM)、 NOR Flash/OneNAND Flash、 PSRAM( 4 個存儲區域)。至於如何連接呢?下圖是正點原子的開發板STM32F407ZET6連接SRAM的原理圖,

圖中紅色字體對應STM32芯片上的對應引腳,可以看到STM32芯片和SRAM都有相同的一些引腳,包括18根地址總線、16根數據總線、UB、LB、OE、WE、CE。

3.FSMC工作模式

FSMC分爲同步模式和異步模式,其中異步模式又分爲模式1、模式A、模式2/B、模式C、模式D、複用模式。不同模式的區別在於NBL0,NBL1,NOE,NWE,NEx幾根控制信號線的時序不同,具體請參考《STM32F4xx中文參考手冊》。

簡單來說,對於SRAM芯片的控制就是配置STM32的寄存器,將複雜的時序封裝起來,我們用戶不用管,選擇好模式後,STM32芯片自動按照模式對應的時序進行訪問SRAM。

與此同時,被訪問的SRAM也要遵循FSMC的工作方式,這樣才能識別出是那種方式,才能夠響應STM32控制芯片。至於被控制的SRAM採用何種工作模式以及其自身的命令,可參考具體的SRAM資料手冊。

4.總結

此文並非詳解,這是我個人學習後的一些想法。關於FSMC的細節部分一定要看《STM32F4xx中文參考手冊》,這是最權威的資料,也非常詳細。一定耐下心多看幾遍,最好對照程序源碼,會達到事半功倍的效果。

如有疑問可在評論區討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章