我們知道Flash讀時(shí)序里有五大子序列CMD + ADDR + MODE + DUMMY + READ,前面的文章中講過《串行NOR Flash的Continuous read模式》,Continuous read模式是為了在適當(dāng)?shù)那闆r下精簡掉連續(xù)讀訪問里的后續(xù)CMD子序列,它可以進(jìn)一步提高Flash訪問性能,這已經(jīng)是極限了嗎?其實(shí)沒有,還差最后一招,那就是今天要講的QPI/OPI模式。
一、什么是QPI/OPI模式?
截至到目前為止,不管是四線Flash還是八線Flash,之前講的所有Flash傳輸時(shí)序中的CMD子序列都是以單線形式發(fā)送的(即只通過IO0來發(fā)送),我想你肯定也曾經(jīng)覺得奇怪過,為何其他子序列都有1/2/4/8線模式可選,偏偏這個(gè)CMD子序列總是1線模式?
其實(shí)這也不能怨CMD,畢竟所有的Flash傳輸時(shí)序都從CMD子序列開始的,后續(xù)子序列的Pad模式都是靠CMD命令碼來區(qū)分的,為了保證CMD值能被正確獲取,只能犧牲CMD序列的靈活性,就固定以單線形式發(fā)送,這也就是所謂的SPI模式。
為了不讓CMD子序列太委屈,F(xiàn)lash 廠商也為了它單獨(dú)做了設(shè)計(jì),四線Flash可以切換到4線模式來發(fā)送CMD子序列(即QPI模式),八線Flash可以切換到8線模式來發(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)镮O[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)镾IO[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)某一款型號Flash是否支持這個(gè)特性,找到其數(shù)據(jù)手冊搜索"QPI/OPI"看有沒有結(jié)果):
2.1 四線 Flash 上切換設(shè)計(jì)
QPI模式是四線Flash上一個(gè)性能模式特性,并不是所有 Flash 都支持這個(gè)特性。而對于支持QPI模式的Flash,不同廠商的切換設(shè)計(jì)也不太相同,不過大部分廠商都是選擇發(fā)一個(gè)CMD命令時(shí)序來切換,比如芯成IS25WP128就是如下的時(shí)序進(jìn)入和退出QPI模式:
找了幾家市面上比較常見的四線 Flash,并整理了它們進(jìn)出QPI模式命令碼如下:
當(dāng)然也有一些廠商不是發(fā)一個(gè)CMD命令時(shí)序來切換的設(shè)計(jì),而是通過設(shè)置Flash內(nèi)部寄存器的方式來做切換,比如賽普拉斯S25FS-S系列就是設(shè)置如下的寄存器來進(jìn)入和退出QPI模式:
2.2 八線 Flash 上切換設(shè)計(jì)
對于八線Flash,即使OPI模式也算性能模式特性,但是基本上所有Flash都能支持這個(gè)特性(畢竟目前生產(chǎn)8線Flash的廠商并不多)。這些廠商都是提供設(shè)置Flash內(nèi)部寄存器的方式來做切換:
如下是旺宏 MX25UM51345 切換 OPI 模式的寄存器定義:
如下是鎂光 MT35X 系列切換 OPI 模式(即 Octal 模式)的寄存器定義:
三、在i.MXRT1170-EVK上實(shí)戰(zhàn)
了解了上面關(guān)于QPI/OPI模式知識后,我們在恩智浦i.MX RT1170-EVK板子上實(shí)踐一下。
默認(rèn)連接的Flash是IS25WP128,這款Flash是支持QPI模式的,我們隨便在SDK包里找一個(gè)XIP例程,修改工程里evkmimxrt1170_flexspi_nor_config.c文件里的FDCB啟動頭如下,改完下載程序進(jìn)Flash運(yùn)行,代碼執(zhí)行效率應(yīng)該會有所提升。
#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)槠渑涮譋VK使用的是旺宏MX25UM51345,所以官方SDK里啟動頭FDCB都是包含開啟OPI模式的配置代碼的。
-
寄存器
+關(guān)注
關(guān)注
31文章
5372瀏覽量
121296 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7170瀏覽量
89710 -
SPI
+關(guān)注
關(guān)注
17文章
1724瀏覽量
92197
原文標(biāo)題:在i.MX RT啟動頭FDCB里使能串行NOR Flash的QPI/OPI模式
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
【orangepi zero試用體驗(yàn)】之二:給OPI配合個(gè)殼,加裝散熱風(fēng)扇
一種低成本的 高速SRAM 替代解決方案
如何在服務(wù)板上使用QPI總線的FPGA接口?
art_pi_bootloader例程為什么啟動時(shí)直接QPI模式
在QPI模式下輪詢NOR閃存的SR時(shí)HAL_QSPI_AutoPolling()失敗了怎么處理?
STM32L476VGT6在QPI模式下發(fā)送命令的問題如何解決?
OPI812-OP1815開關(guān)時(shí)序電路及波形電路圖
![<b class='flag-5'>OPI</b>812-OP1815開關(guān)時(shí)序電路及波形電路圖](https://file1.elecfans.com//web2/M00/A5/15/wKgZomUMNtyANjhXAACaNmFU1fg875.jpg)
Optekinc推出2Mbd傳輸速率的光隔離器OPI1268
QPI-21LZ有源EMI濾波器的數(shù)據(jù)手冊免費(fèi)下載
![<b class='flag-5'>QPI</b>-21LZ有源EMI濾波器的數(shù)據(jù)手冊免費(fèi)下載](https://file.elecfans.com/web1/M00/A7/55/pIYBAF2DNcaALITBAABTi7mg4Og899.png)
高密度有源EMI濾波器QuietPower QPI-21的作用及設(shè)計(jì)應(yīng)用
什么是開放平臺逆變器(OPI)?
![什么是開放平臺逆變器(<b class='flag-5'>OPI</b>)?](https://file1.elecfans.com/web2/M00/A3/3D/wKgaomT4J0-AY6c0AAAzGnfgmTc181.png)
評論