《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > STM32-FSMC機制的NOR Flash存儲器擴展技術
STM32-FSMC機制的NOR Flash存儲器擴展技術
摘要: Cortex-M3內核降低了系統存儲要求,同時快速的中斷處理能夠滿足控制領域的高實時性要求,使基于該內核設計的STM32系列微控制器能夠以更優越的性價比,面向更廣泛的應用領域。
Abstract:
Key words :

 引言

STM32" title="STM32">STM32是ST(意法半導體)公司推出的基于ARM內核Cortex-M3" title="Cortex-M3">Cortex-M3的32位微控制器系列。Cortex-M3內核是為低功耗和價格敏感的應用而專門設計的,具有突出的能效比和處理速度。通過采用Thumb-2高密度指令集,Cortex-M3內核降低了系統存儲要求,同時快速的中斷處理能夠滿足控制領域的高實時性要求,使基于該內核設計的STM32系列微控制器能夠以更優越的性價比,面向更廣泛的應用領域。

STM32系列微控制器為用戶提供了豐富的選擇,可適用于工業控制、智能家電、建筑安防、醫療設備以及消費類電子產品等多方位嵌入式系統設計。STM32系列采用一種新型的存儲器擴展技術" title="存儲器擴展技術">存儲器擴展技術——FSMC" title="FSMC">FSMC,在外部存儲器擴展方面具有獨特的優勢,可根據系統的應用需要,方便地進行不同類型大容量靜態存儲器的擴展。

1FSMC機制

FSMC(Flexible Static Memory Controller,可變靜態存儲控制器)是STM32系列中內部集成256 KB以上Flash,后綴為xC、xD和xE的高存儲密度微控制器特有的存儲控制機制。之所以稱為“可變”,是由于通過對特殊功能寄存器的設置,FSMC能夠根據不同的外部存儲器類型,發出相應的數據/地址/控制信號類型以匹配信號的速度,從而使得STM32系列微控制器不僅能夠應用各種不同類型、不同速度的外部靜態存儲器,而且能夠在不增加外部器件的情況下同時擴展多種不同類型的靜態存儲器,滿足系統設計對存儲容量、產品體積以及成本的綜合要求。

1.1FSMC技術優勢

①支持多種靜態存儲器類型。STM32通過FSMC可以與SRAM、ROM、PSRAM、NOR Flash和NANDFlash存儲器的引腳直接相連。

②支持豐富的存儲操作方法。FSMC不僅支持多種數據寬度的異步讀/寫操作,而且支持對NOR/PSRAM/NAND存儲器的同步突發訪問方式。

③支持同時擴展多種存儲器。FSMC的映射地址空間中,不同的BANK是獨立的,可用于擴展不同類型的存儲器。當系統中擴展和使用多個外部存儲器時,FSMC會通過總線懸空延遲時間參數的設置,防止各存儲器對總線的訪問沖突。

④支持更為廣泛的存儲器型號。通過對FSMC的時間參數設置,擴大了系統中可用存儲器的速度范圍,為用戶提供了靈活的存儲芯片選擇空間。

⑤支持代碼從FSMC擴展的外部存儲器中直接運行,而不需要首先調入內部SRAM。

1.2FSMC內部結構

STM32微控制器之所以能夠支持NOR Flash和NAND Flash這兩類訪問方式完全不同的存儲器擴展,是因為FSMC內部實際包括NOR Flash和NAND/PC Card兩個控制器,分別支持兩種截然不同的存儲器訪問方式。在STM32內部,FSMC的一端通過內部高速總線AHB連接到內核Cortex-M3,另一端則是面向擴展存儲器的外部總線。內核對外部存儲器的訪問信號發送到AHB總線后,經過FSMC轉換為符合外部存儲器通信規約的信號,送到外部存儲器的相應引腳,實現內核與外部存儲器之間的數據交互。FSMC起到橋梁作用,既能夠進行信號類型的轉換,又能夠進行信號寬度和時序的調整,屏蔽掉不同存儲類型的差異,使之對內核而言沒有區別。

1.3FSMC映射地址空間

FSMC管理1 GB的映射地址空間。該空間劃分為4個大小為256 MB的BANK,每個BANK又劃分為4個64 MB的子BANK,如表1所列。FSMC的2個控制器管理的映射地址空間不同。NOR Flash控制器管理第1個BANK,NAND/PC Card控制器管理第2~4個BANK。由于兩個控制器管理的存儲器類型不同,擴展時應根據選用的存儲設備類型確定其映射位置。

其中,BANK1的4個子BANK擁有獨立的片選線和控制寄存器,可分別擴展一個獨立的存儲設備,而BANK2~BANK4只有一組控制寄存器。

2FSMC擴展NOR Flash配置

SRAM/ROM、NOR Flash和PSRAM類型的外部存儲器都是由FSMC的NOR Flash控制器管理的,擴展方法基本相同,其中NOR Flash最為復雜。通過FSMC擴展外部存儲器時,除了傳統存儲器擴展所需要的硬件電路外,還需要進行FSMC初始化配置。FSMC提供大量、細致的可編程參數,以便能夠靈活地進行各種不同類型、不同速度的存儲器擴展。外部存儲器能否正常工作的關鍵在于:用戶能否根據選用的存儲器型號,對配置寄存器進行合理的初始化配置。

(1)確定映射地址空間

根據選用的存儲器類型確定擴展使用的映射地址空間。NOR Flash只能選用BANK1中的4個子BANK。選定映射子BANK后,即可確定以下2方面內容:

①硬件電路中用于選中該存儲器的片選線FSMC_NEi(i為子BANK號,i=1,…,4);

②FSMC配置中用于配置該外部存儲器的特殊功能寄存器號(如表1所列)。

(2)配置存儲器基本特征

通過對FSMC特殊功能寄存器FSMC_BCRi(i為子BANK號,i=1,…,4)中對應控制位的設置,FSMC根據不同存儲器特征可靈活地進行工作方式和信號的調整。根據選用的存儲器芯片確定需要配置的存儲器特征,主要包括以下方面:

①存儲器類型(MTYPE)是SRAM/ROM、PSRAM,還是NOR Flash;

②存儲芯片的地址和數據引腳是否復用(MUXEN),FSMC可以直接與AD0~AD15復用的存儲器相連,不需要增加外部器件;

③存儲芯片的數據線寬度(MWID),FSMC支持8位/16位兩種外部數據總線寬度;

④對于NOR Flash(PSRAM),是否采用同步突發訪問方式(BURSTEN);

⑤對于NOR Flash(PSRAM),NWAIT信號的特性說明(WAITEN、WAITCFG、WAITPOL);

⑥對于該存儲芯片的讀/寫操作,是否采用相同的時序參數來確定時序關系(EXTMOD)。

(3)配置存儲器時序參數

FSMC通過使用可編程的存儲器時序參數寄存器,拓寬了可選用的外部存儲器的速度范圍。FSMC的NORFlash控制器支持同步和異步突發兩種訪問方式。選用同步突發訪問方式時,FSMC將HCLK(系統時鐘)分頻后,發送給外部存儲器作為同步時鐘信號FSMC_CLK。此時需要的設置的時間參數有2個:

①HCLK與FSMC_CLK的分頻系數(CLKDIV),可以為2~16分頻;

②同步突發訪問中獲得第1個數據所需要的等待延遲(DATLAT)。

對于異步突發訪問方式,FSMC主要設置3個時間參數:地址建立時間(ADDSET)、數據建立時間(DATAST)和地址保持時間(ADDHLD)。FSMC綜合了SRAM/ROM、PSRAM和NOR Flash產品的信號特點,定義了4種不同的異步時序模型。選用不同的時序模型時,需要設置不同的時序參數,如表2所列。在實際擴展時,根據選用存儲器的特征確定時序模型,從而確定各時間參數與存儲器讀/寫周期參數指標之間的計算關系;利用該計算關系和存儲芯片數據手冊中給定的參數指標,可計算出FSMC所需要的各時間參數,從而對時間參數寄存器進行合理的配置。


3STM32擴展S29GL系列NOR Flash實例

3.1S29GL系列NOR Flash簡介

Spansion公司的S29GL系列芯片是采用90 nm技術制造的高集成度NOR Flash存儲芯片,提供16~128 MB可選容量,支持最快25 ns的頁訪問速度和110 ns的隨機訪問速度,帶有最大64字節的寫緩沖區,以提供更快、更高效的編程,是嵌入式系統設計中大容量存儲器擴展的理想選擇。本文選用的型號為S29GL512P,容量為512×64K字(總容量64 MB),擴展到NOR Flash控制器管理的BANK1的第2個子BANK。

3.2 STM32與S29GL512P的電路連接

S25GL512P可通過控制引腳BYTE選擇對芯片的訪問單位(字/字節),區別在于:

①對于芯片引腳DQ15,字模式時傳送最高數據位D15;字節模式時傳送最低地址A-1。

②字模式時,數據引腳D0~D15上傳送數據信號;字節模式時,只有D0~D7上有信號。

此處,將BYTE上拉到高電平,選擇16位的字訪問單位。FSMC數據線FSMC_D[15:0]與S29GL512P的D15~D0對應連接;FSMC地址線FSMC_A[25:0]的低25根與S29GL512P的地址線A[24:0]對應連接。

由于S29GL512P芯片映射到BANK1的子BANK2,可確定其片選線應連接FSMC片選控制線FSMC_NE2。S29GL512P的RY/BY引腳連接FSMC的FSMC_NWAIT引腳,提供等待信號。

3.3 FSMC的配置

根據S29GL512P的映射位置,需要對FSMC_BCR2和FSMC_BTR2/BWTR2寄存器進行配置。

(1)FSMC_BCR2

配置S29GL512P的讀/寫采用統一時間參數,只需要設置時問寄存器FSMC_BTR2。配置存儲器類型為NOR Flash,數據總線寬度為16位(字),不采用地址/數據復用,使能BANK1的子BANK2。

(2)FSMC_BTR2

由表2可知,異步NOR Flash時序模型Mode2/B需要設置時問參數DATAST和ADDSET。根據時序圖,兩個參數的計算公式如下:

式中:Twc和Trc為所選存儲芯片的寫周期長度和讀操作周期長度;Twp為所選存儲芯片的寫信號持續長度。

根據S29GL512P用戶手冊,可知參數Twc=Trc=130 ns,Twp=35 ns。設STM32微控制器采用72 MHz主頻,則HCLK=(1/72×10-6)s。通過上述公式計算,可取值為:DATAST=2,ADDSET=5。

為了達到更好的控制效果,還應考慮FSMC自身延遲問題,使用校正公式:

式中:TAVQV為所選存儲芯片訪問過程中,從地址有效至數據有效的時間域;Tsu(Data_NE)為STM32特征參數,從數據有效到FSMC_NE(片選)失效時間域;Ttv(A_NE)為STM32特征參數,從FSMC_NE有效至地址有效的時間域。

TAVQV=130 ns,Tsu(Data_NE)+Ttv(A_NE)=36 ns,對DATAST參數進行校正,可得DATAST=3。

3.4應用STM32固件對FSMC進行初始化配置

ST公司為用戶開發提供了完整、高效的工具和固件庫,其中使用C語言編寫的固件庫提供了覆蓋所有標準外設的函數,使用戶無需使用匯編操作外設特性,從而提高了程序的可讀性和易維護性。

STM32固件庫中提供的FSMC的NOR Flash控制器操作固件,主要包括2個數據結構和3個函數。數據結構FSMC_NORSRAMTimingInitTypeDef對應時間參數寄存器FSMC_BTR和FSMC_BWTR的結構定義;FSMC_NORSRAMInitTypeDef對應特征配置寄存器FSMC_BCR的結構定義,并包含2個指向對應BANK的FSMC_BTR和FSMC_BWTR寄存器的FSMC_NORSRAMTimingInitTypeDef結構指針。

針對上述S29GL512P芯片擴展要求,利用固件庫進行的主要初始化操作如下:

 

結語

STM32作為新一代ARM Cortex-M3核處理器,其卓越的性能和功耗控制能夠適用于廣泛的應用領域;而其特殊的可變靜態存儲技術FSMC具有高度的靈活性,對于存儲容量要求較高的嵌入式系統設計,能夠在不增加外部分立器件的情況下,擴展多種不同類型和容量的存儲芯片,降低了系統設計的復雜性,提高了系統的可靠性。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产一区二区在线| 亚洲精品社区| 国内成人在线| 欧美三日本三级少妇三2023| 久久午夜电影网| 亚洲欧美日韩国产中文在线| 亚洲人妖在线| 久久丁香综合五月国产三级网站| 在线亚洲精品| 亚洲日本电影在线| 永久免费精品影视网站| 国产精品自拍网站| 欧美视频网站| 欧美裸体一区二区三区| 久久一区亚洲| 久久精品国产亚洲精品| 亚洲影院色无极综合| 日韩亚洲国产精品| 亚洲精美视频| 久久se精品一区精品二区| 亚洲一区二区三区在线| 怡红院av一区二区三区| 国产三级欧美三级日产三级99| 欧美理论电影网| 欧美一区二区视频97| 亚洲影院免费| 亚洲一区久久久| 亚洲视频中文| 中文久久精品| 亚洲天堂视频在线观看| 在线视频一区观看| 亚洲麻豆视频| 亚洲麻豆国产自偷在线| 亚洲全部视频| 亚洲欧洲在线看| 亚洲三级免费电影| 亚洲精品黄网在线观看| 最近看过的日韩成人| 亚洲欧洲在线视频| 亚洲欧美怡红院| 日韩视频免费在线| 亚洲乱码国产乱码精品精可以看 | 国产精品久久夜| 国产精品二区三区四区| 欧美亚州一区二区三区 | 国产一区二区三区久久精品| 国产亚洲精久久久久久| 国产一区视频在线观看免费| 国产亚洲精品自拍| 国产一区日韩二区欧美三区| 狠狠色狠狠色综合日日小说| 在线高清一区| 亚洲欧洲一区二区三区久久| 亚洲美女精品成人在线视频| 艳女tv在线观看国产一区| 一区二区三区|亚洲午夜| 亚洲午夜电影网| 99热精品在线| 亚洲女优在线| 久久精品国产精品亚洲| 亚洲国产天堂网精品网站| 亚洲人成绝费网站色www| 一区二区国产日产| 亚洲欧美激情诱惑| 久久成人18免费网站| 久久综合给合久久狠狠色| 免费国产自线拍一欧美视频| 欧美激情欧美激情在线五月| 欧美日韩视频一区二区三区| 国产精品毛片大码女人| 国产亚洲午夜| 亚洲日本成人网| 亚洲欧美一区二区三区极速播放| 久久成人免费网| av成人黄色| 亚洲视频综合在线| 欧美在线网站| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲欧洲在线一区| 中文精品一区二区三区| 欧美在线影院| 91久久综合| 亚洲欧美网站| 久久综合久久综合九色| 欧美日韩一区二区在线观看视频| 国产精品一区二区久久| 亚洲国产精品尤物yw在线观看 | 在线观看日韩www视频免费| 亚洲精品欧美专区| 亚洲免费电影在线观看| 欧美一区二区在线视频| 亚洲福利专区| 亚洲一区二区三区精品在线| 久久嫩草精品久久久久| 欧美日韩中文字幕在线| 好吊色欧美一区二区三区四区 | 99在线精品视频| 欧美一区二区观看视频| 亚洲人成人一区二区在线观看| 亚洲一区二区三区四区在线观看| 久久久久久电影| 欧美视频不卡| 亚洲福利视频二区| 亚洲欧美日韩专区| 日韩午夜免费| 久久综合九色九九| 国产精品毛片一区二区三区| 亚洲国产成人tv| 欧美一区二区精品在线| 一区二区三区不卡视频在线观看 | 伊人久久综合| 午夜精品剧场| 在线一区观看| 玖玖玖国产精品| 国产精品有限公司| 樱桃成人精品视频在线播放| 亚洲精品在线一区二区| 亚洲风情亚aⅴ在线发布| 久久aⅴ国产欧美74aaa| 欧美激情在线有限公司| 国产综合久久久久久鬼色| 亚洲美女精品一区| 亚洲第一综合天堂另类专| 欧美一区二区三区免费观看视频| 欧美日韩在线不卡| 91久久精品日日躁夜夜躁国产| 久久成人免费日本黄色| 欧美在线观看一区| 欧美午夜剧场| 亚洲精品看片| 亚洲精品久久久久久久久久久久久| 久久精品二区| 国产女人精品视频| 亚洲午夜三级在线| 亚洲综合视频一区| 欧美阿v一级看视频| 狠久久av成人天堂| 亚洲天堂成人在线视频| 这里只有视频精品| 欧美人与禽猛交乱配视频| 亚洲国产精品视频一区| 亚洲精品日韩欧美| 蜜桃伊人久久| …久久精品99久久香蕉国产| 亚洲高清色综合| 久久久亚洲欧洲日产国码αv| 国产婷婷精品| 欧美一区二区在线| 欧美在线观看视频一区二区| 国产精品美女www爽爽爽| 一区二区欧美视频| 亚洲一区二区欧美日韩| 欧美性做爰猛烈叫床潮| 亚洲图片欧洲图片av| 亚洲一区亚洲二区| 国产精品嫩草99av在线| 亚洲性人人天天夜夜摸| 一区二区免费看| 欧美电影免费观看大全| 亚洲国产精品久久久久| 亚洲人成网站在线观看播放| 欧美肥婆bbw| 亚洲三级电影在线观看| 在线亚洲一区二区| 午夜视频在线观看一区| 在线观看不卡av| 亚洲午夜精品在线| 国产日韩高清一区二区三区在线| 亚洲国产日韩一区| 国产精品国产三级欧美二区| 亚洲高清视频在线| 国产精品hd| 91久久夜色精品国产网站| 国产精品成人免费视频| 亚洲国产清纯| 欧美色网一区二区| 亚洲福利免费| 国产精品毛片va一区二区三区| 亚洲日韩第九十九页| 国产精品日本一区二区 | 亚洲欧美激情四射在线日 | 国产日韩在线看片| 夜色激情一区二区| 国产亚洲欧洲一区高清在线观看 | 国产日韩欧美视频| 99这里有精品| 国产综合久久久久久| 亚洲视屏在线播放| **性色生活片久久毛片| 欧美一区二区精品在线| 亚洲精品久久嫩草网站秘色| 久久久精品欧美丰满| 一区二区三区欧美日韩| 嫩模写真一区二区三区三州| 午夜精品三级视频福利| 欧美先锋影音| 亚洲美女精品久久| 国内精品国产成人| 亚洲欧美伊人| 日韩视频免费看|