www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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


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

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

一、什么是QPI/OPI模式?

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

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

1.1 四線Flash的QPI模式

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

1.2 八線Flash的OPI模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define CMD_LUT_SEQ_IDX_ENTER_QPI 7 const flexspi_nor_config_t qspiflash_config = {
    .memConfig =
        { // ... 默認(rèn)設(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),
                },
        }, // ... 默認(rèn)設(shè)置省略 };

關(guān)于 OPI 模式使能的例子可以直接參考 MIMXRT500/600 SDK,因?yàn)槠渑涮?EVK 使用的是旺宏 MX25UM51345,所以官方 SDK 里啟動(dòng)頭 FDCB 都是包含開(kāi)啟 OPI 模式的配置代碼的。

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

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

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

在嵌入式系統(tǒng)中,F(xiàn)lash存儲(chǔ)器因其非易失性、高密度和低成本特性,成為代碼存儲(chǔ)和關(guān)鍵數(shù)據(jù)保存的核心組件。然而,MCU驅(qū)動(dòng)Flash讀寫(xiě)時(shí),開(kāi)發(fā)者常因?qū)τ布匦岳斫獠蛔慊虿僮髁鞒淌韬?,陷入性能下降、?shù)據(jù)損壞甚至硬件損壞的陷...

關(guān)鍵字: MCU驅(qū)動(dòng) Flash

深圳2025年4月24日 /美通社/ -- 4月23日,2025上海國(guó)際車(chē)展盛大啟幕,全球汽車(chē)產(chǎn)業(yè)的目光聚焦于這場(chǎng)科技與創(chuàng)新的盛宴。在眾多展示亮點(diǎn)中,汽車(chē)AI+應(yīng)用無(wú)疑是最大的熱點(diǎn)之一,“駕控超級(jí)大腦”技術(shù)概念、車(chē)機(jī)交互...

關(guān)鍵字: GB EMMC Flash PS

在自動(dòng)駕駛、機(jī)器人與工業(yè)檢測(cè)領(lǐng)域,激光雷達(dá)作為環(huán)境感知的核心傳感器,其技術(shù)路線正從機(jī)械式向固態(tài)化演進(jìn)。MEMS、OPA與Flash作為固態(tài)激光雷達(dá)的三大主流架構(gòu),分別通過(guò)微機(jī)電系統(tǒng)、光學(xué)相控陣與泛光面陣技術(shù)實(shí)現(xiàn)掃描與探測(cè)...

關(guān)鍵字: MEMS OPA Flash

在嵌入式系統(tǒng)開(kāi)發(fā)中,外部存儲(chǔ)介質(zhì)的選擇和管理至關(guān)重要。SPI Flash以其高容量、低功耗、高速率等特點(diǎn),成為眾多嵌入式設(shè)備的首選存儲(chǔ)方案。然而,如何高效管理SPI Flash存儲(chǔ),避免數(shù)據(jù)丟失、提高讀寫(xiě)性能,是開(kāi)發(fā)者必...

關(guān)鍵字: 嵌入式SPI Flash LittleFS

STM32單片機(jī)作為一種高性能、低功耗的嵌入式微控制器,廣泛應(yīng)用于各種電子設(shè)備中。在實(shí)際應(yīng)用中,為了擴(kuò)展存儲(chǔ)空間或?qū)崿F(xiàn)數(shù)據(jù)的持久化存儲(chǔ),經(jīng)常需要使用外部FLASH存儲(chǔ)器。本文將詳細(xì)介紹STM32單片機(jī)如何讀寫(xiě)外部FLAS...

關(guān)鍵字: STM32 Flash

在嵌入式系統(tǒng)和存儲(chǔ)設(shè)備領(lǐng)域,F(xiàn)lash和EEPROM(電可擦可編程只讀存儲(chǔ)器)因其非易失性存儲(chǔ)特性而被廣泛應(yīng)用。這些存儲(chǔ)設(shè)備能夠在斷電后保持?jǐn)?shù)據(jù),對(duì)于需要長(zhǎng)期保存配置參數(shù)、程序代碼或用戶數(shù)據(jù)的應(yīng)用來(lái)說(shuō)至關(guān)重要。然而,關(guān)于...

關(guān)鍵字: Flash EEPROM

在現(xiàn)代電子系統(tǒng)中,單片機(jī)(MCU)作為核心控制單元,其性能與存儲(chǔ)容量直接影響整個(gè)系統(tǒng)的功能與可靠性。隨著物聯(lián)網(wǎng)、智能家居、工業(yè)自動(dòng)化等領(lǐng)域的快速發(fā)展,單片機(jī)系統(tǒng)需要存儲(chǔ)越來(lái)越多的數(shù)據(jù)、程序代碼和日志文件,而內(nèi)置的Flas...

關(guān)鍵字: 單片機(jī) Flash MCU
關(guān)閉