當前位置:首頁 > 公眾號精選 > 痞子衡嵌入式
[導(dǎo)讀]我們知道 Flash 讀時序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡講過《串行NOR Flash的Continuous read模式》,Continuous read 模式是為了在適當?shù)那闆r下精簡掉連續(xù)讀訪問里的后續(xù) CMD 子序列,它可以進一步提高 Flash 訪問性能,這已經(jīng)是極限了嗎?其實沒有,還差最后一招,那就是痞子衡今天要講的 QPI/OPI 模式。


大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是在FDCB里使能串行NOR Flash的QPI/OPI模式。

我們知道 Flash 讀時序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡講過《串行NOR Flash的Continuous read模式》,Continuous read 模式是為了在適當?shù)那闆r下精簡掉連續(xù)讀訪問里的后續(xù) CMD 子序列,它可以進一步提高 Flash 訪問性能,這已經(jīng)是極限了嗎?其實沒有,還差最后一招,那就是痞子衡今天要講的 QPI/OPI 模式。

一、什么是QPI/OPI模式?

截至到目前為止,不管是四線 Flash 還是 八線 Flash,痞子衡講的所有 Flash 傳輸時序中的 CMD 子序列都是以 1 線形式發(fā)送的(即只通過 IO0 來發(fā)送),我想你肯定也曾經(jīng)覺得奇怪過,為何其他子序列都有 1/2/4/8 線模式可選,偏偏這個 CMD 子序列總是 1 線模式?其實這也不能怨 CMD,畢竟所有的 Flash 傳輸時序都從 CMD 子序列開始的,后續(xù)子序列的 Pad 模式都是靠 CMD 命令碼來區(qū)分的,為了保證 CMD 值能被正確獲取,只能犧牲 CMD 序列的靈活性,就固定以 1 線形式發(fā)送,這也就是所謂的 SPI 模式。

為了不讓 CMD 子序列太委屈,F(xiàn)lash 廠商也為了它單獨做了設(shè)計,四線 Flash 可以切換到 4 線模式來發(fā)送 CMD 子序列(即 QPI 模式),八線 Flash 可以切換到 8 線模式來發(fā)送 CMD 子序列(即 OPI 模式),默認上電是 SPI 模式,然后在 SPI 模式下做指定設(shè)置可以切換到 QPI/OPI 模式,在 QPI/OPI 模式下做指定設(shè)置或者復(fù)位也能再回到 SPI 模式。

1.1 四線Flash的QPI模式

下面是一款典型的四線 Flash(芯成 IS25WP128) 在 QPI 模式下的 Fast Read Quad I/O 傳輸時序,此時 CMD 子序列僅在 2 個 CLK 內(nèi)就完成了傳輸,因為 IO[3:0] 均參與了 CMD 發(fā)送,效率是 SPI 模式下的 4 倍。后面的子序列與 SPI 模式下一模一樣。

1.2 八線Flash的OPI模式

下面是一款典型的八線 Flash(旺宏 MX25UM51345) 在 OPI 模式下的 OCTA Read 傳輸時序,此時 CMD 子序列僅在 1 個 CLK 內(nèi)就完成了傳輸,因為 SIO[7:0] 均參與了 CMD 發(fā)送,效率是 SPI 模式下的 8 倍。后面的子序列與 SPI 模式下一模一樣。

二、不同F(xiàn)lash廠商關(guān)于QPI/OPI切換設(shè)計

現(xiàn)在跟著痞子衡去看幾家主流Flash廠商關(guān)于 QPI/OPI 模式切換的設(shè)計(如果你想快速確認某一款型號Flash是否支持這個特性,找到其數(shù)據(jù)手冊搜索"QPI/OPI"看有沒有結(jié)果):

2.1 四線 Flash 上切換設(shè)計

QPI 模式是四線 Flash 上一個性能模式特性,并不是所有 Flash 都支持這個特性。而對于支持 QPI 模式的 Flash,不同廠商的切換設(shè)計也不太相同,不過大部分廠商都是選擇發(fā)一個 CMD 命令時序來切換,比如芯成 IS25WP128 就是如下的時序進入和退出 QPI 模式:

痞子衡找了幾家市面上比較常見的四線 Flash,并整理了它們進出 QPI 模式命令碼如下:

Flash型號 進入QPI模式命令碼 退出QPI模式命令碼
Adesto AT25SL系列 0x38 0xFF
芯成IS25WP系列 0x35 0xF5
華邦W25QxxJV-DTR系列 0x38 0xFF
兆易創(chuàng)新GD25Q系列 不支持 不支持

當然也有一些廠商不是發(fā)一個 CMD 命令時序來切換的設(shè)計,而是通過設(shè)置 Flash 內(nèi)部寄存器的方式來做切換,比如賽普拉斯 S25FS-S 系列就是設(shè)置如下的寄存器來進入和退出 QPI 模式:

2.2 八線 Flash 上切換設(shè)計

對于八線 Flash,即使 OPI 模式也算性能模式特性,但是基本上所有 Flash 都能支持這個特性(畢竟目前生產(chǎn) 8 線 Flash 的廠商并不多)。這些廠商都是提供設(shè)置 Flash 內(nèi)部寄存器的方式來做切換:

如下是旺宏 MX25UM51345 切換 OPI 模式的寄存器定義:

如下是鎂光 MT35X 系列切換 OPI 模式(即 Octal 模式)的寄存器定義:

三、在i.MXRT1170-EVK上實戰(zhàn)(IS25WP128)

了解了上面關(guān)于 QPI/OPI 模式知識后,我們在恩智浦 i.MXRT1170-EVK 板子上實踐一下。默認連接的 Flash 是IS25WP128,這款 Flash 是支持 QPI 模式的,我們隨便在SDK包里找一個 XIP 例程,修改工程里  evkmimxrt1170_flexspi_nor_config.c 文件里的 FDCB 啟動頭如下,改完下載程序進 Flash 運行,代碼執(zhí)行效率應(yīng)該會有所提升。

#define CMD_LUT_SEQ_IDX_ENTER_QPI 7 const flexspi_nor_config_t qspiflash_config = {
    .memConfig =
        { // ... 默認設(shè)置省略 // 使能 QPI 配置操作 .deviceModeCfgEnable = 1u,
            .deviceModeType = kDeviceConfigCmdType_Spi2Xpi,
            .waitTimeCfgCommands = 1,
            .deviceModeSeq =
                {
                    .seqNum   = 1,
                    .seqId    = CMD_LUT_SEQ_IDX_ENTER_QPI,
                    .reserved = 0,
                },
            .deviceModeArg = 0,
            .lookupTable =
                { // Fast Read Quad I/O LUTs (將 CMD_SDR 的 Pad 模式由 FLEXSPI_1PAD 改為 FLEXSPI_4PAD) [0]               = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_4PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
                    [1]               = FLEXSPI_LUT_SEQ(MODE8_SDR, FLEXSPI_4PAD, 0x00, DUMMY_SDR, FLEXSPI_4PAD, 0x04),
                    [2]               = FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_4PAD, 0x04, 0, 0, 0), // 增加 Enter QPI 命令序列 [4*CMD_LUT_SEQ_IDX_ENTER_QPI]     = FLEXSPI_LUT_SEQ(CMD_SDR,   FLEXSPI_1PAD, 0x35, 0, 0, 0),
                },
        }, // ... 默認設(shè)置省略 };

關(guān)于 OPI 模式使能的例子可以直接參考 MIMXRT500/600 SDK,因為其配套 EVK 使用的是旺宏 MX25UM51345,所以官方 SDK 里啟動頭 FDCB 都是包含開啟 OPI 模式的配置代碼的。

和使能 Continuous read 模式一樣,使能 QPI/OPI 模式后,對項目最大的影響是考慮軟復(fù)位后芯片再次啟動的問題,具體可以參考痞子衡的舊文 《深扒i.MXRT系列ROM中集成的串行NOR Flash啟動SW Reset功能及其應(yīng)用場合》。

至此,在FDCB里使能串行NOR Flash的QPI/OPI模式痞子衡便介紹完畢了,掌聲在哪里~~~

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉