他來了
他真的來了……
繼《OSPI Flash適配秘籍之內(nèi)功心法篇》之后,本文將繼續(xù)深入探討如何將Winbond(華邦)W35T51NW OSPI Flash適配到你的系統(tǒng)[JX1] [DX2]中。筆者感謝老鐵們對瑞薩嵌入式小百科的持續(xù)關注。如果有讀者是第一次接觸OSPI接口,筆者建議先跳轉(zhuǎn)到內(nèi)功心法篇,先修煉《內(nèi)功心法篇》,否則直接上陣,怕是要走火入魔。
之前也說了廣大不同廠家的OSPI Flash,雖然說大部分功能相似,大部分功能也可以復用,但是不同廠家的OSPI Flash還是存在或多或少的差別。因此如果客戶出于成本的考慮,需要更換OSPI Flash的時候,是需要做驅(qū)動層的適配工作。
那如何做OSPI Flash的驅(qū)動的適配工作?請讓筆者傾囊相授。
首先,不同門派(廠商)的OSPI Flash雖說套路相似,但細節(jié)上總有些“暗器”藏著。適配之前,務必翻閱芯片手冊,了解其配置流程。尤其是從單線模式切換到八線模式時,稍有不慎,便會“變線”翻車。
一般OSPI Flash除了支持8線模式,默認都支持單線模式。所以一般Flash上電復位后,都默認支持單線的協(xié)議。單線模式下,大部分廠商的OSPI Flash,命令碼以及命令-地址-數(shù)據(jù)之間的時延(如下時序圖中的Latency field)差別較小,但是在八線模式下這些差別就不能忽視,下面筆者會具體說明。
OSPI Flash適配的關鍵在于從單線模式轉(zhuǎn)換成八線模式的時候,如何正確通過單線指令完成轉(zhuǎn)換。圖2說明了Winbond W35T51NW OSPI Flash的具體的配置流程。不同廠商的Flash的初始化和配置流程是不一樣的,尤其是涉及到輸入輸出模式的切換時,這也是移形換位大法的關鍵所在。
大多數(shù)廠家的Flash默認設置就是單線模式。所以如果只是適配單線模式的情況下,過程會簡單很多。但是多線模式的適配注意事項會更多,也相對麻煩一些。
圖2展示了W35T51NW設備的存儲器讀取操作流程,包括XIP(Execute-in-Place)模式和標準命令模式(Standard Command Mode)。以下是對該圖的解析:
1.設備啟動流程
設備上電后,會進行設備初始化并刷新易失性/內(nèi)部配置寄存器(Volatile/Internal Configuration Register Refresh)。
配置寄存器的值,來自非易失性配置寄存器(Non-Volatile Configuration Register),決定設備是進入XIP模式還是標準命令模式。
圖2.W35T51NW Serial Flash初始化配置流程圖
2.XIP模式
(Execute-in-Place)
如果設備進入XIP模式,它會直接執(zhí)行地址輸入-數(shù)據(jù)輸出序列,用于直接從閃存執(zhí)行代碼,無需額外的讀取命令。
退出XIP模式需要將XMb設為1。(XMb是Non-Volatile Configuration Register配置寄存器中的一位,由于XIP模式不是本篇文章的重點,這里不做過多的介紹)
3.標準命令模式
(Standard Command Mode)
在標準命令模式下,需要按照命令-地址-數(shù)據(jù)輸入/輸出序列進行數(shù)據(jù)訪問。
該模式可以支持不同的數(shù)據(jù)傳輸模式,包括:
SDR 3字節(jié)地址模式
SDR 4字節(jié)地址模式
Octal DDR 4字節(jié)地址模式
4.工作模式切換
在標準命令模式下,默認支持3字節(jié)地址模式,但可以通過B7h命令啟用4字節(jié)地址模式。通過E9h命令可禁用4字節(jié)地址模式,切換回3字節(jié)地址模式。
通過81h命令碼寫易失性配置寄存器(Volatile Config Reg)可以切換工作模式(從單線轉(zhuǎn)到八線):
點擊查看大圖
通過1s-1s-1s的協(xié)議向VCR(volatile Config Reg)寄存器用81h命令碼寫入E7h/C7h,可以把Flash的協(xié)議模式從1s-1s-1s切換成8d-8d-8d。不同的地址模式不影響協(xié)議模式的切換。Flash的工作模工切換成功后,緊接著要切換XSPI Master(ra8d1)這邊的協(xié)議模式。
同樣的如果要把Flash的協(xié)議模式從8d-8d-8d切回1s-1s-1s,此時需要用8d-8d-8d的協(xié)議通過81h命令碼向VCR寫入FFh/DFh。同樣Flash的工作模工切換成功后,緊接著要切換XSPI Master(ra8d1)這邊的協(xié)議模式。兩邊的協(xié)議要一致才能正常工作。
這里對VCR寄存器做一些說明,VCR寄存器共有00h-07h共8個地址。其中對00h地址通過81h命令碼寫入配置值就可以設置Flash的輸入輸出的協(xié)議模式。其它地址范圍的配置功能請參考手冊中的內(nèi)容,默認情況下一般不會對其它地址的內(nèi)容進行配置。
這里筆者還想說明一下,手冊中除了VCR還有NVCR,這兩者有什么區(qū)別呢?
NVCR的全稱是Non-volatile Configuration Register為非易失性的寄存器,而VCR是易失性的寄存器,即下電之后VCR的內(nèi)容將會重置為0。所以Flash在啟動的時候會默認讀取NVCR里面的配置作為默認啟動配置,而VCR可以在啟動之后再去配置,但是VCR的配置只存在當前的上電周期中生效。如果對Flash下電再上電VCR中的內(nèi)容將失效。
總結(jié)一句話,如果開發(fā)者想對Flash的啟動配置項永久生效就寫NVCR,如果是臨時調(diào)整配置就可以寫VCR。
圖3.Flash輸入輸出協(xié)議模式切換命令調(diào)用說明
下圖讓讀者感性的認識一下,同樣是通過85h命令碼讀取VCR的內(nèi)容,示波器的波形會是什么樣的?
左邊是1s-1s-1s可以很清晰的看出85h這個命令碼。右邊由于示波器通道數(shù)有限,加上示波器信號質(zhì)量也比較差,讀者不能清晰的感知到85h這個命令碼。但是通過黃色時鐘信號通道,讀者可以感受到八線的模式下,完成同樣的讀取VCR的操作所需要的時鐘數(shù)量會少很多。
圖4.讀取VCR配置值的單線和八線輸入輸出波形對比圖
5.復位
硬件復位(Hardware Reset)會使設備重新進入上電初始化狀態(tài)。
軟件復位(Software Reset)通過66h+99h指令實現(xiàn),會讓設備回到上電后的初始狀態(tài)。
其次開發(fā)者要注意8線輸入輸出模式,常用的讀寫擦寫使能等指令,不同廠商的命令碼可能稍有不同,并且“Latency field”也可能不同。
如下圖5所示,在4字節(jié)地址模式下的快讀取的指令,指令碼是0Ch,其它的廠商就不一定也是0Ch。所以開發(fā)者要查看Flash手冊里的指令列表,換Flash芯片需要適配新的指令。
此外對于Dummy cycle數(shù)值也可能不一樣的,也就是前面提到的“Latency Field“。圖5中的8(16)表示如果是SDR模式的話,Dummy cycle是8,如果是DDR模式的話,Dummy cycle值是16。
圖5.Winbond W35T51NW OSPI Flash命令表說明
對于Dummy Cycle,在具體的波形圖里以如下方式呈現(xiàn):
圖6.Fast Read with 4-Byte Address指令SDR時序圖
筆者想強調(diào)一點的是在ODDR模式下,指令的長度變成兩個字節(jié)。如下圖所示,數(shù)據(jù)可以正常輸出。
對于這個ODDR工作模式的指令長度要變成2字節(jié)的說明在Winbond的Flash使用手冊上并沒有明確說明。但是在ra8d1的手冊上,37.2.2.7章節(jié)中有相關的寄存器配置說明。比如在ODDR模式下讀取VCR的值的命令碼是8585h,而不是85h,對應的command_length 也需要調(diào)整為2。
圖7.RA8D1 OSPI command Type
圖8.ODDR模式下讀取VCR的值的代碼示例
最后要注意不同廠家的OSPI Flash所對應的“Device ID”是不一樣的。一般驅(qū)動代碼里都會有讀取&校驗“Device ID”的操作,所以在驅(qū)動代碼適配的時候“Device ID”值要從手冊中找到對應的讀取“Device ID“的指令和ID值。
總結(jié)來說做OSPI Flash適配要關注以下方面:
初始化的配置流程的差異;
模式切換時候的差異;
關注指令碼和Dummy Cycle的差異;
以及Flash Device ID的差異。
好的,筆者感謝讀者們的耐心閱讀,也請感興趣的小伙伴持續(xù)關注我們的“瑞薩嵌入式小百科“公眾號,我們將為開發(fā)者提供更多實用的內(nèi)容作參考。
-
FlaSh
+關注
關注
10文章
1701瀏覽量
153920 -
存儲器
+關注
關注
39文章
7693瀏覽量
170051 -
瑞薩
+關注
關注
36文章
22414瀏覽量
89228
原文標題:OSPI Flash適配秘籍之移形換位大法
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
瑞薩RA8D1 CEU介紹與使用說明

瑞薩RA8D1 MCU的OSPI Flash適配指南

使用瑞薩RA8D1開發(fā)板實現(xiàn)人臉識別的應用演示

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

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

評論