大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是i.MXRT中FlexSPI外設(shè)不常用的讀選通采樣時(shí)鐘源 - loopbackFromSckPad。
最近碰到一個(gè)客戶,他們?cè)?i.MXRT500 上使能了 FlexSPI->MCR0[RXCLKSRC] = 2(即 loopbackFromSckPad),這個(gè)選項(xiàng)字面上的意思是設(shè)置讀選通采樣時(shí)鐘源為 SCK 引腳,這個(gè)選項(xiàng)在恩智浦官方的代碼包里未曾使能過。客戶在使用過程中遇到高頻時(shí) SCK 引腳被降壓的問題(從正常的 1.8V 降至 1.2V),那么這個(gè) loopbackFromSckPad 選項(xiàng)到底是什么作用以及有什么使用限制呢?且聽痞子衡道來:
Note1: 參考手冊(cè)里顯示支持 loopbackFromSckPad 選項(xiàng)的型號(hào)有 i.MXRT1040/1050/1060/1064/1180/500
Note2: 參考手冊(cè)里沒有提及支持 loopbackFromSckPad 選項(xiàng)的型號(hào)有 i.MXRT1010/1015/1020/1024/1160/1170/600
一、為什么存在Read Strobe?
對(duì)于串行 SPI 接口存儲(chǔ)器,F(xiàn)lexSPI 外設(shè)主要支持如下兩種讀數(shù)據(jù)時(shí)序:一是所謂的經(jīng)典 SPI 模式,IO0 (MOSI) 專用于發(fā)送命令和地址,IO1 (MISO) 專用于接收數(shù)據(jù)(圖中上面的時(shí)序)。二是 Multi-I/O SPI 模式,SIO[n:0] 一起用于發(fā)送命令地址以及接收數(shù)據(jù)(圖中下面的時(shí)序)。
顯然經(jīng)典 SPI 模式下 IO[1:0] 是單向的,而 Multi-I/O SPI 模式下,SIO[n:0] 是雙向的。當(dāng) SIO 用于雙向傳輸時(shí),過程中必然存在引腳方向切換,而 FlexSPI 外設(shè)在處理 SIO 方向切換時(shí)無法做到零等待周期讀取數(shù)據(jù),這就是為什么 Multi-I/O SPI 讀時(shí)序中總是會(huì)存在 Dummy 周期。
因?yàn)?Dummy 周期的存在,F(xiàn)lexSPI 外設(shè)內(nèi)部實(shí)際上有一個(gè) Read Strobe 信號(hào)(即 DQS)來控制數(shù)據(jù)的選通性(即什么時(shí)候開始數(shù)據(jù)有效,將數(shù)據(jù)存入內(nèi)部 FIFO)。更直白點(diǎn)說,Read Strobe 信號(hào)的存在就是由于 FlexSPI 外設(shè)無法支持如下這種情況的讀時(shí)序(下圖中 COMMAND 實(shí)際應(yīng)為 COMMAND&ADDR)。
二、FlexSPI內(nèi)部Read Strobe設(shè)計(jì)
在 i.MXRT 參考手冊(cè)里有如下 FlexSPI 前端采樣單元框圖,其中 ipp_ind_dqs_fa/b_int[x] 即是 Read Strobe 信號(hào),它控制著 FIFO 中實(shí)際數(shù)據(jù)的存儲(chǔ)。
ipp_ind_dqs_fa/b_int[x] 信號(hào)共有四種來源,最原始的信號(hào)源由 FlexSPI->MCR0[RXCLKSRC] 選擇,中間可能還會(huì)經(jīng)過 DLLxCR 單元(這部分以后會(huì)另寫文章單獨(dú)介紹)、Phase Chain 單元做處理,然后送到采樣單元里。
下圖是 FlexSPI->MCR0[RXCLKSRC] = 0 的情況,此時(shí) Read Strobe 經(jīng)由 ipp_do_dqs0_fa/b 純內(nèi)部 loopback 回來,沒有經(jīng)過任何延遲單元。這種配置一般僅用于經(jīng)典 SPI 傳輸模式(低速 60MHz SDR 場(chǎng)合),適用低容量 SPI NOR / EEPROM,這時(shí)候 FlexSPI DQS Pad 可用作其它功能或者 GPIO。
下圖是 FlexSPI->MCR0[RXCLKSRC] = 1 的情況,此時(shí) Read Strobe 經(jīng)由懸空的 DQS 引腳 ipp_do_dqs1_fa/b 再 loopback 回來,此時(shí)有了 DQS 引腳繞一圈的延遲。這種配置可用于 Multi-I/O SPI 傳輸模式(較高速 133MHz SDR 場(chǎng)合),適用不含 DQS 引腳的大容量 QuadSPI NOR Flash,但是 FlexSPI DQS Pad 需要懸空。
Note: 痞子衡有一篇舊文 《使能串行NOR Flash的DTR模式》 跟這種配置相關(guān),這時(shí)候 dummy cycle 數(shù)的設(shè)置很關(guān)鍵。
下圖是 FlexSPI->MCR0[RXCLKSRC] = 3 的情況,此時(shí) Read Strobe 完全由外部存儲(chǔ)器的 DQS 引腳輸出 ipp_ind_dqs3_fa/b 直通進(jìn)來。這種配置可用于 Multi-I/O SPI 傳輸模式(最高速 166MHz/200MHz DDR 場(chǎng)合),適用于包含 DQS 引腳的 OctalSPI NOR Flash,這時(shí) FlexSPI DQS Pad 與外部存儲(chǔ)器相連。
Note: 痞子衡有兩篇舊文 《串行NOR Flash的DQS信號(hào)功能》、《啟動(dòng)含DQS的Octal Flash可不嚴(yán)格設(shè)Dummy Cycle》 跟這種配置相關(guān)。
三、loopbackFromSckPad選項(xiàng)意義
前面鋪墊了那么多,終于來到本文的主題了,即下圖 FlexSPI->MCR0[RXCLKSRC] = 2 的情況,此時(shí) Read Strobe 經(jīng)由 SCK 引腳 ipp_ind_sck_fa/b 再 loopback 回來,此時(shí)有了 SCK 引腳繞一圈的延遲。
這種配置從應(yīng)用角度與 FlexSPI->MCR0[RXCLKSRC] = 1(即 loopbackFromDqsPad) 差不多,也可用于 Multi-I/O SPI 傳輸模式(較高速 133MHz SDR 場(chǎng)合),適用不含 DQS 引腳的大容量 QuadSPI NOR Flash,但是這時(shí)候 FlexSPI DQS Pad 被解放出來了,這也是它的最主要意義。
別小看只是省了一個(gè) DQS 引腳,也許你認(rèn)為 i.MXRT I/O 那么多,省一個(gè)引腳意義不大,但是如果某些 FlexSPI 引腳組不帶 DQS 信號(hào),你又想配置 FlexSPI 以 60MHz 以上頻率去訪問 Flash,這時(shí)候 FlexSPI->MCR0[RXCLKSRC] = 2 選項(xiàng)就會(huì)幫上大忙了,見痞子衡舊文 《不支持DQS的FlexSPI引腳組連接串行NOR Flash注意事項(xiàng)》。
四、loopbackFromSckPad使用限制
FlexSPI->MCR0[RXCLKSRC] = 2 選項(xiàng)雖好,但有如下兩個(gè)實(shí)際使用限制:
存在信號(hào)完整性問題:主要出現(xiàn)在 SCK 頻率過高或者板級(jí) PCB 上 SCK 信號(hào)走線過長(zhǎng)時(shí)。
SCK自由運(yùn)行模式下不可用:對(duì)于某些 FPGA 應(yīng)用,有時(shí)需要設(shè)置 FlexSPI->MCR0[SCKFREERUNEN] = 1,即 SCK 需要持續(xù)給外部設(shè)備內(nèi)部 PLL 提供參考時(shí)鐘。
至此,i.MXRT中FlexSPI外設(shè)不常用的讀選通采樣時(shí)鐘源 - loopbackFromSckPad痞子衡便介紹完畢了,掌聲在哪里~~~
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7614瀏覽量
165982 -
SPI
+關(guān)注
關(guān)注
17文章
1750瀏覽量
94206 -
時(shí)鐘源
+關(guān)注
關(guān)注
0文章
96瀏覽量
16212
原文標(biāo)題:i.MXRT中FlexSPI外設(shè)不常用的讀選通采樣時(shí)鐘源
文章出處:【微信號(hào):pzh_mcu,微信公眾號(hào):痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
i.MXRT系列FlexSPI驅(qū)動(dòng)Flash頁編程執(zhí)行時(shí)間
IAR開發(fā)環(huán)境下i.MXRT的串行NOR Flash下載算法設(shè)計(jì)
FlexSPI驅(qū)動(dòng)訪問
FlexSPI復(fù)位方式不當(dāng)會(huì)導(dǎo)致i.MXRT系列下OTFAD加密啟動(dòng)失敗怎么解決?
FlexSPI NOR啟動(dòng)的連接方式
介紹i.MXRT啟動(dòng)頭FDCB里的lookupTable
J-Link工具下i.MXRT的串行NOR Flash下載算法設(shè)計(jì)
Flash不支持SFDP,如何下載適用i.MXRT
i.MXRT系列的ROM API設(shè)計(jì)
Cortex-M7內(nèi)核的Cache是如何提升訪問效率的?且看硬核實(shí)測(cè)

痞子衡嵌入式:FlexSPI復(fù)位方式不當(dāng)會(huì)導(dǎo)致i.MXRT系列下OTFAD加密啟動(dòng)失敗

痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU啟動(dòng)那些事(6.B)- FlexSPI NOR連接方式大全(RT500)...

FlexSPI NOR連接方式大全(RT1015/1020/1050)

深入i.MXRT1050系列ROM中串行NOR Flash啟動(dòng)初始化流程

評(píng)論