查看: 3757|回復: 0
打印 上一主題 下一主題

利用QuadSPI外擴串行NOR Flash的實(shí)現

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2017-10-9 14:12:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前言
STM32提供了靈活多樣的外擴存儲器的訪(fǎng)問(wèn)實(shí)現。本文將介紹如何利用QSPI(QuadSPI) 外擴串行NOR Flash存儲器的實(shí)現過(guò)程。首先對QSPI接口功能特性進(jìn)行介紹,然后分別介紹硬件設計和軟件開(kāi)發(fā)。并基于STM32CubeM提供訪(fǎng)問(wèn)MICRON N25Q128A13EF840F的實(shí)現參考。
一 實(shí)現環(huán)境
開(kāi)發(fā)板:STM32F469G-DISCO
開(kāi)發(fā)庫:STM32CubeF4 v1.16.0
STM32CubeMX: v4.22.0
集成開(kāi)發(fā)環(huán)境:IAR v7.70.1.11486
實(shí)現過(guò)程在STM32F469I-DISCO板上展開(kāi),利用板上已有的串行NORFlash存儲器(MICRON N25Q128A13EF840F),呈現整個(gè)開(kāi)發(fā)環(huán)節。在本文中,首先根據QSPI接口,介紹QSPI與外擴串行存儲器的硬件連接。另外,Cube軟件包中包含QSPI實(shí)例,本文對庫中實(shí)現的QSPI例不做討論,讀者可參考這些QSPI例程進(jìn)行設計。本文圍繞由STM32CubeMX生成的工程,介紹如何實(shí)現對外擴串行NOR Flash存儲器的訪(fǎng)問(wèn)。

二 QSPI介紹
在呈現QSPI訪(fǎng)問(wèn)外擴Flash的實(shí)例前, 需要對QSPI有一定的了解,在此對QSPI進(jìn)行簡(jiǎn)短的介紹。更多內容請參考AN4760。
QSPI(Quad-SPI)支持四線(xiàn)串行訪(fǎng)問(wèn)形式。同時(shí),QSPI支持傳統SPI和Dual-SPI模式,Dual-SPI模式支持兩線(xiàn)串行訪(fǎng)問(wèn)。與FMC/FSMC比較,QSPI支持更低成本、更小封裝外部串行Flash存儲器,更少的IO引腳占用,有效減少PCB面積,降低PCB設計復雜度。
下表是QSPI在不同系列STM32產(chǎn)品線(xiàn)的支持情況(僅部分羅列,未涵蓋所有支持型號)。



QSPI接口提供了靈活可配置的5個(gè)階段,如下圖所示(時(shí)序圖根據配置不同可能存在差異)。分別是命令階段、地址階段、復用字節階段、Dummy階段和數據階段?梢愿鶕鈹UFlash中命令時(shí)序對不同階段進(jìn)行配置。后續會(huì )以實(shí)例進(jìn)行呈現。更多內容請參考AN4760。



QSPI支持三種模式,分別是:
間接模式  所有操作通過(guò)QSPI寄存器實(shí)現,類(lèi)似于傳統SPI,可以使用阻塞模式、中斷模式或者DMA模式進(jìn)行讀寫(xiě)等訪(fǎng)問(wèn)。本文中提供的實(shí)現例為間接模式下的實(shí)現。
狀態(tài)輪詢(xún)模式 接口自動(dòng)輪詢(xún)指定寄存器,直到回讀寄存器內容與指定條件匹配?蓱糜跔顟B(tài)檢測,從而實(shí)現忙等待等效果。本文不對此模式進(jìn)行介紹,應用實(shí)現可參考Cube軟件包中QSPI例程。
存儲器映射模式 外擴Flash被視為內部存儲器,支持AHB主器件直接訪(fǎng)問(wèn),CPU能夠直接運行位于QSPI存儲器的執行代碼。內部系統架構如下圖所示(以STM32F469/F479為例)。本文不對此模式進(jìn)行介紹,應用實(shí)現可參考Cube軟件包中QSPI例程QSPI_ExecuteInPlace。



三 QSPI外擴串行Flash的實(shí)現
3.1 串行Flash介紹
以MICRON N25Q128A13EF840F為例,更多細節請參考存儲器手冊。N25Q128A13EF840F引腳圖、時(shí)序圖和電氣參數來(lái)源于N25Q128A13 手冊文檔。
支持協(xié)議: SPI, Dual I/O(對應Dual-SPI), Quad I/O(對應Quad-SPI)
支持訪(fǎng)問(wèn)模式:?jiǎn)尉(xiàn)訪(fǎng)問(wèn)、雙線(xiàn)訪(fǎng)問(wèn)、四線(xiàn)訪(fǎng)問(wèn),得益于QSPI接口的靈活可配性,三種訪(fǎng)問(wèn)模式全部支持。
供電電壓范圍:2.7 ~ 3.6V
最大時(shí)鐘頻率:108MHz
存儲空間: 128Mb (16MB)
器件引腳示意圖如下所示。由兩根電源引腳和六根QSPI信號線(xiàn)構成。



下表為存儲器N25Q128A13xxx命令(未列出全部命令)。通過(guò)下表可知,存儲器提供了靈活的訪(fǎng)問(wèn)實(shí)現形式,結合同樣靈活可配置的QSPI接口,能夠實(shí)現存儲器命令全支持。本文僅提供設計思路,呈現了部分命令在QSPI上的實(shí)現。



3.2 硬件設計
涉及到的信號線(xiàn)少,硬件設計簡(jiǎn)單,只需直接將QSPI的六根信號線(xiàn)與存儲器連接即可?紤]到可測性,可以增加串行電阻或者測試點(diǎn)。硬件電路圖如下所示。



QSPI接口PCB設計遵循如下幾點(diǎn),更多硬件設計內容請參考AN4488。
a. 線(xiàn)阻 50Ω± 10%
b. 最大線(xiàn)長(cháng) <120mm
c. 避免在不同信號層走信號線(xiàn)
d. 時(shí)鐘線(xiàn)至少離其他信號線(xiàn)3倍線(xiàn)寬距離
e. 數據信號線(xiàn)長(cháng)差 ≤10mm
f. 避免時(shí)鐘線(xiàn)采用蛇形走線(xiàn),同時(shí)盡量減少數據線(xiàn)上過(guò)孔。
3.3 軟件開(kāi)發(fā)流程



3.4 軟件實(shí)現例
在環(huán)境搭建完成后,就可以利用STM32CubeMX根據硬件連接情況,進(jìn)行QSPI配置,獲取IAR工程。具體軟件實(shí)現流程如下。



四 小結
STM32的QuadSPI接口靈活可配,對于命令階段、地址階段、復用字節階段、Dummy階段和數據階段都可以進(jìn)行配置;谶@種靈活性,能夠實(shí)現市面上SPI、Dual IO、Quad IO的串行Flash支持。出于簡(jiǎn)化考慮,QSPI支持的中斷訪(fǎng)問(wèn)及DMA訪(fǎng)問(wèn)等更多功能沒(méi)有在本文進(jìn)行介紹,更多實(shí)現可以參考ST提供的Cube軟件包中的QSPI例程。另外,不同廠(chǎng)家的串行Flash命令及操作實(shí)現略有差異,具體以采用的Flash文檔描述為準。

相關(guān)文檔
AN4760  Quad-SPI (QSPI) interface onSTM32 microcontrollers
AN4488  Getting started withSTM32F4xxxx MCU hardware development
RM0386  STM32F469xx and STM32F479xxadvanced ARM®-based 32-bit MCUs
更多有關(guān)QSPI配置及代碼解讀的內容細節可添加下方技術(shù)QQ群進(jìn)行下載閱讀。
技術(shù)QQ群:258644475

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页