OSPI Flash(Octal SPI Flash)是一種基于SPI(串行外設(shè)接口)擴(kuò)展的高速串行Flash存儲(chǔ)器,采用8-bit數(shù)據(jù)總線通信方式。相比傳統(tǒng)的SPI或Quad SPI(QSPI),OSPI提供更高的數(shù)據(jù)吞吐率與更優(yōu)的系統(tǒng)性能。OSPI Flash主要應(yīng)用在高性能嵌入式系統(tǒng)啟動(dòng),圖形界面處理(GUI)/人機(jī)交互界面(HMI),嵌入式AI模型存儲(chǔ)等領(lǐng)域。瑞薩高性能MCU、MPU都提供了功能強(qiáng)大的OSPI接口,它不僅可以工作在8線的高速模式下,還兼容普通的單線(SPI),雙線(DSPI)和四線(QSPI)的多種工作模式和多種協(xié)議模式。
然而面對(duì)廣大不同廠家的OSPI Flash,雖然說大部分功能相似,大部分功能也可以復(fù)用,但是不同廠家的OSPI Flash還是存在或多或少的差別。因此如果客戶出于成本的考慮,需要更換OSPI Flash的時(shí)候,需要做驅(qū)動(dòng)層的適配工作。那如何做OSPI Flash的驅(qū)動(dòng)的適配工作?
下面我以Renesas RA8D1這款高性能MCU為例來說明如何進(jìn)行OSPI Flash驅(qū)動(dòng)的適配工作,總結(jié)成兩篇適配秘籍,可以供客戶參考。公欲善其事,必先懂其基(基本原理),本篇文章先就OSPI的一些工作模式和協(xié)議等基本概念做一個(gè)相對(duì)系統(tǒng)的介紹。后續(xù)的篇章我們將以Winbond W35T51NW OSPI Flash為例來展開具體的驅(qū)動(dòng)的適配工作。請(qǐng)感興趣的讀者持續(xù)關(guān)注!
讀者朋友們可以先了解一下RA8D1的OSPI specifications:
RA8D1的OSPI工作模式:
點(diǎn)擊查看大圖
1Support Protocol modes below
xSPI規(guī)范支持多種協(xié)議模式,包括1S-1S-1S、4S-4D-4D、8D-8D-8D、1S-2S-2S、2S-2S-2S、1S-4S-4S、4S-4S-4S等。這些模式主要是基于數(shù)據(jù)傳輸位寬(線數(shù))和時(shí)鐘模式(SDR/DDR)進(jìn)行區(qū)分。
1協(xié)議模式的基本概念
1S、2S、4S、4D、8D代表了數(shù)據(jù)傳輸過程中使用的線數(shù):
○1S(Single Line,單線):每個(gè)時(shí)鐘周期傳輸1bit數(shù)據(jù)。
○2S(Dual Line,雙線):每個(gè)時(shí)鐘周期傳輸2bit數(shù)據(jù)(雙線,每根線1bit)。
○4S(Quad Line,四線):每個(gè)時(shí)鐘周期傳輸4bit數(shù)據(jù)(四線,每根線1bit)。
○4D(Qcta Line,四線DDR):每個(gè)時(shí)鐘周期傳輸8bit數(shù)據(jù),因?yàn)椴捎肈DR(DDR雙數(shù)據(jù)速率)模式,時(shí)鐘周期的上升沿傳輸4bit數(shù)據(jù),下降沿傳輸4bit數(shù)據(jù)。
○8D(Octa Line,八線DDR):每個(gè)時(shí)鐘周期傳輸16bit數(shù)據(jù),因?yàn)椴捎肈DR(DDR雙數(shù)據(jù)速率)模式,時(shí)鐘周期的上升沿傳輸8bit數(shù)據(jù),下降沿傳輸8bit數(shù)據(jù)。
SDR(Single Data Rate,單數(shù)據(jù)速率)DDR(Double Data Rate,雙數(shù)據(jù)速率):
○SDR:僅在時(shí)鐘上升沿傳輸數(shù)據(jù)。
○DDR:在時(shí)鐘上升沿和下降沿傳輸數(shù)據(jù),線數(shù)相同的情況下吞吐量是SDR的2倍。
2具體模式說明
不同模式的主要區(qū)別在于xSPI接口訪問Flash的地址、命令和數(shù)據(jù)階段分別使用多少條數(shù)據(jù)線進(jìn)行傳輸。
模式 | 命令階段 | 地址階段 | 數(shù)據(jù)階段 | 時(shí)鐘模式 |
1S-1S-1S | 1-bit | 1-bit | 1-bit | SDR |
4S-4D-4D | 4-bit | DDR4-bit | DDR4-bit | DDR |
8D-8D-8D | DDR8-bit | DDR8-bit | DDR8-bit | DDR |
1S-2S-2S | 1-bit | 2-bit | 2-bit | SDR |
2S-2S-2S | 2-bit | 2-bit | 2-bit | SDR |
1S-4S-4S | 1-bit | 4-bit | 4-bit | SDR |
4S-4S-4S | 4-bit | 4-bit | 4-bit | SDR |
下面以1S-1S-1S、4S-4D-4D、8D-8D-8D三種協(xié)議模式舉例說明
1S-1S-1S(傳統(tǒng)SPI模式)
○命令、地址、數(shù)據(jù)階段都使用單線傳輸(每個(gè)時(shí)鐘周期1bit)。
○ 這種模式兼容傳統(tǒng)SPI,但傳輸速度較慢。
○優(yōu)點(diǎn):兼容性好,適用于低速SPI設(shè)備。
4S-4D-4D(Quad SPI DDR模式)
○命令階段:使用4-bit傳輸(相比1S提高4倍)。
○地址階段:使用4-bitDDR傳輸(時(shí)鐘上升沿和下降沿都發(fā)送數(shù)據(jù))。
○數(shù)據(jù)階段:使用4-bitDDR傳輸,吞吐量更高。
○優(yōu)點(diǎn):相比1S-1S-1S,吞吐量提高了8倍,適用于高速NORFlash存儲(chǔ)應(yīng)用。
8D-8D-8D(Octa SPI DDR模式)
○命令、地址、數(shù)據(jù)都使用8-bitDDR傳輸。
○ 相比4S-4D-4D,吞吐量翻倍。
○ 適用于極高速NORFlash存儲(chǔ),如PSRAM、Octa Flash、Octa HyperRAM。
2Configurable address length
支持可配置的地址長度(常見如24-bit或32-bit地址模式):
24-bit通常用于小于16MB(128Mbit)的Flash;
32-bit用于更大容量的Flash(>16MB);
3Configurable initial access latency cycle
指訪問延遲周期(Latency Cycle)可配置,在XIP或連續(xù)讀取模式中尤為關(guān)鍵:
設(shè)備允許設(shè)置dummy cycle數(shù)量;
適應(yīng)不同主頻、控制器時(shí)序要求;
優(yōu)化帶寬性能或兼容性。
4Support XiP mode
支持Execute in Place(XIP)模式:
MCU/MPU可將Flash映射入內(nèi)部地址空間;
支持直接讀取并執(zhí)行,不需復(fù)制到RAM;
通常與memory-mapped mode、持續(xù)讀取命令組合使用。
RA8D1的OSPI接口功能:
點(diǎn)擊查看大圖
1Support Write Data Mask(支持寫數(shù)據(jù)掩碼)
允許在寫入數(shù)據(jù)時(shí)屏蔽某些字節(jié),使其不被改寫,而其他字節(jié)仍然可以被正常寫入。
這種功能通常用于按位更新存儲(chǔ)器內(nèi)容,而無需先讀取、修改、再寫入完整數(shù)據(jù)。
2Support In-band Reset(支持帶內(nèi)復(fù)位)
通過OSPI總線上的指令或數(shù)據(jù)序列觸發(fā)設(shè)備復(fù)位,而不是依賴額外的硬件復(fù)位引腳。
○ 適用于系統(tǒng)集成度高、不易接觸硬件復(fù)位引腳的應(yīng)用,如嵌入式系統(tǒng)和工業(yè)控制設(shè)備。
3Memory-mapping(內(nèi)存映射模式)
OSPI控制器支持將外部Flash設(shè)備的存儲(chǔ)空間直接映射到MCU地址空間,使其像內(nèi)部RAM/ROM一樣被訪問。
1Support up to 256MB address space each CS
(每個(gè)CS支持高達(dá)256MB的地址空間)
在內(nèi)存映射模式下,每個(gè)片選(CS,Chip Select)可支持高達(dá)256MB的存儲(chǔ)空間,這意味著可以使用較大的外部存儲(chǔ)器。
應(yīng)用場(chǎng)景:
○ 適用于大容量代碼存儲(chǔ)(如執(zhí)行XIP(execute In Place)),即代碼直接在Flash中運(yùn)行,而無需拷貝到RAM。
○ 適用于存儲(chǔ)大量數(shù)據(jù),如日志記錄、固件存儲(chǔ)、AI推理模型等。
2Prefetch function for burst-read with
low latency(預(yù)取功能,提高突發(fā)讀取性能)
在突發(fā)讀取(BurstRead)模式下,OSPI控制器會(huì)提前讀取后續(xù)數(shù)據(jù)并存入緩沖區(qū),減少訪問延遲。
應(yīng)用場(chǎng)景:
○ 適用于實(shí)時(shí)性要求較高的應(yīng)用,例如高速圖像處理、實(shí)時(shí)操作系統(tǒng)(RTOS)等。
○XIP模式下,可以減少CPU訪問外部Flash的延遲,提高程序運(yùn)行效率。
3Outstanding buffer for burst-write with
high throughput(突發(fā)寫入優(yōu)化,提高吞吐量)
突發(fā)寫入(BurstWrite)時(shí),OSPI控制器使用Outstanding buffer(寫入緩沖區(qū)),允許CPU快速提交數(shù)據(jù),而不必等待Flash完成寫入,提高吞吐量。
應(yīng)用場(chǎng)景:
○ 適用于數(shù)據(jù)流量較大的應(yīng)用,如數(shù)據(jù)記錄、固件升級(jí)、機(jī)器學(xué)習(xí)模型加載等。
4Manual command(手動(dòng)指令模式)
OSPI支持手動(dòng)發(fā)送自定義指令,使其適用于不同廠商的Flash設(shè)備,并提供更靈活的操作方式。
1Configurable up to 4 commands
(可配置最多4條指令)
用戶可以預(yù)設(shè)4條常用指令(如讀、寫、擦除等),減少軟件控制開銷,提高效率。
2Status Register Polling function
(狀態(tài)寄存器輪詢功能)
允許MCU輪詢Flash的狀態(tài)寄存器,以確定Flash是否完成寫入、擦除等操作,避免不必要的等待。
5Input Strobe port timing shift
(輸入同步信號(hào)端口的時(shí)序調(diào)整)
在高速OSPI傳輸中,數(shù)據(jù)可能會(huì)有時(shí)序偏移。這個(gè)功能允許調(diào)整數(shù)據(jù)采樣時(shí)鐘,以確保數(shù)據(jù)穩(wěn)定可靠。
應(yīng)用場(chǎng)景:
○ 當(dāng)使用不同的Flash器件時(shí),可能會(huì)因工藝或PCB布局導(dǎo)致時(shí)序誤差,調(diào)整該參數(shù)可以優(yōu)化信號(hào)完整性。
○ 適用于高速通信場(chǎng)景,如工業(yè)自動(dòng)化、汽車電子、無線通信設(shè)備等。
下面具體給讀者解讀一下在8D-8D-8D協(xié)議下的時(shí)序圖:
點(diǎn)擊查看大圖
圖中相關(guān)信號(hào)線的含義如下表所示:
信號(hào) | 含義 | 說明 |
clk_spi(Internal Clock) | 控制器內(nèi)部工作時(shí)鐘 | 控制器使用的內(nèi)部時(shí)鐘,驅(qū)動(dòng)SPI狀態(tài)機(jī),不直接輸出 |
OM_CS0/CS1 | 片選信號(hào) | 有效為低,表示與Flash通信開始 |
OM_SCLK | 外部SPI時(shí)鐘 | 控制器發(fā)出的時(shí)鐘信號(hào),F(xiàn)lash據(jù)此采樣或發(fā)送數(shù)據(jù) |
OM_SIO[7:0] | Octal IO數(shù)據(jù)線 | 8位數(shù)據(jù)總線,雙向通信(收發(fā)命令/地址/數(shù)據(jù)) |
OM_DQS | 數(shù)據(jù)選通信號(hào) | DDR模式下Flash輸出的時(shí)鐘對(duì)齊信號(hào),用于控制器采樣數(shù)據(jù) |
點(diǎn)擊查看大圖
從上圖可以看到command field的一個(gè)時(shí)鐘周期的上升沿可以采集8位數(shù)據(jù)(因?yàn)橛蠴M_SIO0-OM_SIO7八根線的數(shù)據(jù),每根線上一位數(shù)據(jù)),下降沿也可以采集8位數(shù)據(jù),這樣一個(gè)時(shí)鐘周期可以采集16bit的數(shù)據(jù)。同樣的道理地址段兩個(gè)時(shí)鐘周期,可以采集32位數(shù)據(jù)。那么這樣數(shù)據(jù)段的傳輸速率,相比1S-1S-1S協(xié)議提高了16倍。
關(guān)于OSPI Flash適配的內(nèi)功心法就大致介紹完畢。我們將在下一個(gè)篇章推出具體的Octa Flash適配的移形換位大法。請(qǐng)感興趣的讀者,持續(xù)關(guān)注我們的#瑞薩嵌入式小百科公眾號(hào)。
-
mcu
+關(guān)注
關(guān)注
146文章
17981瀏覽量
366781 -
嵌入式
+關(guān)注
關(guān)注
5151文章
19670瀏覽量
317487 -
FlaSh
+關(guān)注
關(guān)注
10文章
1679瀏覽量
151797 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7651瀏覽量
167367 -
瑞薩
+關(guān)注
關(guān)注
36文章
22383瀏覽量
88036
原文標(biāo)題:OSPI Flash適配秘籍之內(nèi)功心法篇
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
瑞薩RA8D1 CEU介紹與使用說明

基于瑞薩電子RA8D1 MCU的USB和I2S數(shù)字音頻應(yīng)用解決方案

【Vision Board創(chuàng)客營連載體驗(yàn)】RA8D1 Vision Board初體驗(yàn)
【瑞薩RA8D1 CPK開發(fā)板試用】開箱與點(diǎn)燈
【瑞薩RA8D1 CPK開發(fā)板】RA8D1移植ThreadX操作系統(tǒng)
瑞薩RA系列MCU選型指南
新品發(fā)布 | 瑞薩推出面向圖形顯示應(yīng)用和語音/視覺多模態(tài)AI應(yīng)用的全新RA8 MCU產(chǎn)品群

邊緣計(jì)算分論壇動(dòng)手實(shí)踐指南,RA8D1 OpenMV 硬件全球首發(fā)!

RA8D1微控制器組評(píng)估套件快速入門指南

基于瑞薩電子RA系列的野火耀陽RA8D1開發(fā)板產(chǎn)品簡介

瑞薩RA8系列教程 | 基于 Keil 開發(fā) RA8單片機(jī)

評(píng)論