0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

i.MXRT中FlexSPI外設不常用的讀選通采樣時鐘源

痞子衡嵌入式 ? 來源:痞子衡嵌入式 ? 作者:痞子衡 ? 2022-11-21 14:15 ? 次閱讀

大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是i.MXRT中FlexSPI外設不常用的讀選通采樣時鐘源 - loopbackFromSckPad

最近碰到一個客戶,他們在 i.MXRT500 上使能了 FlexSPI->MCR0[RXCLKSRC] = 2(即 loopbackFromSckPad),這個選項字面上的意思是設置讀選通采樣時鐘源為 SCK 引腳,這個選項在恩智浦官方的代碼包里未曾使能過??蛻粼谑褂眠^程中遇到高頻時 SCK 引腳被降壓的問題(從正常的 1.8V 降至 1.2V),那么這個 loopbackFromSckPad 選項到底是什么作用以及有什么使用限制呢?且聽痞子衡道來:

Note1: 參考手冊里顯示支持 loopbackFromSckPad 選項的型號有 i.MXRT1040/1050/1060/1064/1180/500

Note2: 參考手冊里沒有提及支持 loopbackFromSckPad 選項的型號有 i.MXRT1010/1015/1020/1024/1160/1170/600

一、為什么存在Read Strobe?

對于串行 SPI 接口存儲器,F(xiàn)lexSPI 外設主要支持如下兩種讀數(shù)據(jù)時序:一是所謂的經(jīng)典 SPI 模式,IO0 (MOSI) 專用于發(fā)送命令和地址,IO1 (MISO) 專用于接收數(shù)據(jù)(圖中上面的時序)。二是 Multi-I/O SPI 模式,SIO[n:0] 一起用于發(fā)送命令地址以及接收數(shù)據(jù)(圖中下面的時序)。

顯然經(jīng)典 SPI 模式下 IO[1:0] 是單向的,而 Multi-I/O SPI 模式下,SIO[n:0] 是雙向的。當 SIO 用于雙向傳輸時,過程中必然存在引腳方向切換,而 FlexSPI 外設在處理 SIO 方向切換時無法做到零等待周期讀取數(shù)據(jù),這就是為什么 Multi-I/O SPI 讀時序中總是會存在 Dummy 周期。

223a254e-674d-11ed-8abf-dac502259ad0.png

因為 Dummy 周期的存在,F(xiàn)lexSPI 外設內(nèi)部實際上有一個 Read Strobe 信號(即 DQS)來控制數(shù)據(jù)的選通性(即什么時候開始數(shù)據(jù)有效,將數(shù)據(jù)存入內(nèi)部 FIFO)。更直白點說,Read Strobe 信號的存在就是由于 FlexSPI 外設無法支持如下這種情況的讀時序(下圖中 COMMAND 實際應為 COMMAND&ADDR)。

224eb43c-674d-11ed-8abf-dac502259ad0.png

二、FlexSPI內(nèi)部Read Strobe設計

在 i.MXRT 參考手冊里有如下 FlexSPI 前端采樣單元框圖,其中 ipp_ind_dqs_fa/b_int[x] 即是 Read Strobe 信號,它控制著 FIFO 中實際數(shù)據(jù)的存儲。

226664b0-674d-11ed-8abf-dac502259ad0.png

ipp_ind_dqs_fa/b_int[x] 信號共有四種來源,最原始的信號源由 FlexSPI->MCR0[RXCLKSRC] 選擇,中間可能還會經(jīng)過 DLLxCR 單元(這部分以后會另寫文章單獨介紹)、Phase Chain 單元做處理,然后送到采樣單元里。

22830af2-674d-11ed-8abf-dac502259ad0.png

下圖是 FlexSPI->MCR0[RXCLKSRC] = 0 的情況,此時 Read Strobe 經(jīng)由 ipp_do_dqs0_fa/b 純內(nèi)部 loopback 回來,沒有經(jīng)過任何延遲單元。這種配置一般僅用于經(jīng)典 SPI 傳輸模式(低速 60MHz SDR 場合),適用低容量 SPI NOR / EEPROM,這時候 FlexSPI DQS Pad 可用作其它功能或者 GPIO。

22a99a32-674d-11ed-8abf-dac502259ad0.png

下圖是 FlexSPI->MCR0[RXCLKSRC] = 1 的情況,此時 Read Strobe 經(jīng)由懸空的 DQS 引腳 ipp_do_dqs1_fa/b 再 loopback 回來,此時有了 DQS 引腳繞一圈的延遲。這種配置可用于 Multi-I/O SPI 傳輸模式(較高速 133MHz SDR 場合),適用不含 DQS 引腳的大容量 QuadSPI NOR Flash,但是 FlexSPI DQS Pad 需要懸空。

Note: 痞子衡有一篇舊文 《使能串行NOR Flash的DTR模式》 跟這種配置相關(guān),這時候 dummy cycle 數(shù)的設置很關(guān)鍵。

22cec910-674d-11ed-8abf-dac502259ad0.png

下圖是 FlexSPI->MCR0[RXCLKSRC] = 3 的情況,此時 Read Strobe 完全由外部存儲器的 DQS 引腳輸出 ipp_ind_dqs3_fa/b 直通進來。這種配置可用于 Multi-I/O SPI 傳輸模式(最高速 166MHz/200MHz DDR 場合),適用于包含 DQS 引腳的 OctalSPI NOR Flash,這時 FlexSPI DQS Pad 與外部存儲器相連。

Note: 痞子衡有兩篇舊文 《串行NOR Flash的DQS信號功能》、《啟動含DQS的Octal Flash可不嚴格設Dummy Cycle》 跟這種配置相關(guān)。

22fb4094-674d-11ed-8abf-dac502259ad0.png

三、loopbackFromSckPad選項意義

前面鋪墊了那么多,終于來到本文的主題了,即下圖 FlexSPI->MCR0[RXCLKSRC] = 2 的情況,此時 Read Strobe 經(jīng)由 SCK 引腳 ipp_ind_sck_fa/b 再 loopback 回來,此時有了 SCK 引腳繞一圈的延遲。

這種配置從應用角度與 FlexSPI->MCR0[RXCLKSRC] = 1(即 loopbackFromDqsPad) 差不多,也可用于 Multi-I/O SPI 傳輸模式(較高速 133MHz SDR 場合),適用不含 DQS 引腳的大容量 QuadSPI NOR Flash,但是這時候 FlexSPI DQS Pad 被解放出來了,這也是它的最主要意義。

230f0570-674d-11ed-8abf-dac502259ad0.png

別小看只是省了一個 DQS 引腳,也許你認為 i.MXRT I/O 那么多,省一個引腳意義不大,但是如果某些 FlexSPI 引腳組不帶 DQS 信號,你又想配置 FlexSPI 以 60MHz 以上頻率去訪問 Flash,這時候 FlexSPI->MCR0[RXCLKSRC] = 2 選項就會幫上大忙了,見痞子衡舊文 《不支持DQS的FlexSPI引腳組連接串行NOR Flash注意事項》。

四、loopbackFromSckPad使用限制

FlexSPI->MCR0[RXCLKSRC] = 2 選項雖好,但有如下兩個實際使用限制:

存在信號完整性問題:主要出現(xiàn)在 SCK 頻率過高或者板級 PCB 上 SCK 信號走線過長時。

SCK自由運行模式下不可用:對于某些 FPGA 應用,有時需要設置 FlexSPI->MCR0[SCKFREERUNEN] = 1,即 SCK 需要持續(xù)給外部設備內(nèi)部 PLL 提供參考時鐘。

至此,i.MXRT中FlexSPI外設不常用的讀選通采樣時鐘源 - loopbackFromSckPad痞子衡便介紹完畢了,掌聲在哪里~~~

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7434

    瀏覽量

    163519
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1688

    瀏覽量

    91215
  • 時鐘源
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    15921

原文標題:i.MXRT中FlexSPI外設不常用的讀選通采樣時鐘源

文章出處:【微信號:pzh_mcu,微信公眾號:痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    i.MXRT系列FlexSPI驅(qū)動Flash頁編程執(zhí)行時間

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT系列FlexSPI驅(qū)動Flash頁編程執(zhí)行時間。  痞子衡之前寫過一篇文章 《串行NOR Flash的頁編程模式對于
    發(fā)表于 12-21 07:30

    IAR開發(fā)環(huán)境下i.MXRT的串行NOR Flash下載算法設計

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是IAR開發(fā)環(huán)境下i.MXRT的串行NOR Flash下載算法設計?! ≡?b class='flag-5'>i.MXRT硬件那些事系列之《在串行NOR Flash
    發(fā)表于 01-26 07:46

    FlexSPI驅(qū)動訪問

    當前i.MXRT型號》,現(xiàn)在超級算法已經(jīng)能夠識別到當前i.MXRT型號了,下一步就是找到一套統(tǒng)一的底層Flash驅(qū)動函數(shù)來實現(xiàn)外接串行NOR Flash的基本擦寫操作,這套統(tǒng)一的底層Flash驅(qū)...
    發(fā)表于 01-26 07:48

    FlexSPI復位方式不當會導致i.MXRT系列下OTFAD加密啟動失敗怎么解決?

    FlexSPI復位方式不當會導致i.MXRT系列下OTFAD加密啟動失敗怎么解決?
    發(fā)表于 02-07 08:11

    FlexSPI NOR啟動的連接方式

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT500的FlexSPI NOR啟動的連接方式。  這個i.MXRT FlexSPI NOR啟動連
    發(fā)表于 02-09 07:56

    介紹i.MXRT啟動頭FDCB里的lookupTable

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT啟動頭FDCB里的lookupTable。一個MCU內(nèi)部通常有很多外設模塊,這些外設模塊是各MCU廠商做差異化產(chǎn)...
    發(fā)表于 02-17 07:47

    J-Link工具下i.MXRT的串行NOR Flash下載算法設計

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 J-Link 工具下 i.MXRT 的串行 NOR Flash 下載算法設計。 一、J-Link 各版本對 i.MXRT 的支持 從
    的頭像 發(fā)表于 12-08 10:07 ?998次閱讀

    Flash不支持SFDP,如何下載適用i.MXRT

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是導致串行 NOR Flash 在 i.MXRT 下無法正常下載 / 啟動的常見因素之 SFDP。 i.MXRT 系列 MCU 發(fā)布已
    的頭像 發(fā)表于 10-30 10:30 ?653次閱讀

    i.MXRT系列的ROM API設計

    FlexSPI driver API 可輕松 IAP》、《其實 i.MXRT1050,1020,1015 系列 ROM 也提供了 FlexSPI driver API》 基本把 i.MXR
    的頭像 發(fā)表于 10-30 10:52 ?547次閱讀

    Cortex-M7內(nèi)核的Cache是如何提升訪問效率的?且看硬核實測

    今天痞子衡給大家介紹的是實抓Flash信號波形來看i.MXRTFlexSPI外設下AHB訪問情形。上一篇文章《實抓Flash信號波形來看i.MX
    發(fā)表于 12-01 12:51 ?10次下載
    Cortex-M7內(nèi)核的Cache是如何提升訪問效率的?且看硬核實測

    痞子衡嵌入式:FlexSPI復位方式不當會導致i.MXRT系列下OTFAD加密啟動失敗

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是FlexSPI復位方式不當會導致i.MXRT系列下OTFAD加密啟動失敗問題。  本篇是《系統(tǒng)時鐘配置不當會導致
    發(fā)表于 12-04 17:36 ?9次下載
    痞子衡嵌入式:<b class='flag-5'>FlexSPI</b>復位方式不當會導致<b class='flag-5'>i.MXRT</b>系列下OTFAD加密啟動失敗

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

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT500的FlexSPI NOR啟動的連接方式?! ∵@個i.MXRT FlexSPI NOR啟動連
    發(fā)表于 12-05 18:06 ?8次下載
    痞子衡嵌入式:恩智浦<b class='flag-5'>i</b>.MX RTxxx系列MCU啟動那些事(6.B)- <b class='flag-5'>FlexSPI</b> NOR連接方式大全(RT500)...

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

    由于i.MXRT內(nèi)部沒有非易失性存儲器,因此在系統(tǒng)設計時為i.MXRT搭配一塊存放應用程序代碼的存儲器是頭等大事。i.MXRT支持啟動的外部存儲器類型眾多,其中通過FlexSPI接口連
    發(fā)表于 02-09 11:26 ?1次下載
    <b class='flag-5'>FlexSPI</b> NOR連接方式大全(RT1015/1020/1050)

    深入i.MXRT1050系列ROM串行NOR Flash啟動初始化流程

    我們知道外部串行NOR Flash是接到i.MXRTFlexSPI外設引腳上,有時串行NOR Flash啟動也叫FlexSPI NOR啟動。
    的頭像 發(fā)表于 06-02 17:43 ?1438次閱讀
    深入<b class='flag-5'>i.MXRT</b>1050系列ROM<b class='flag-5'>中</b>串行NOR Flash啟動初始化流程

    i.MX RTFlexSPI外設不常用采樣時鐘

    i.MX RTFlexSPI外設不常用
    的頭像 發(fā)表于 10-30 17:44 ?512次閱讀
    <b class='flag-5'>i</b>.MX RT<b class='flag-5'>中</b><b class='flag-5'>FlexSPI</b><b class='flag-5'>外設</b><b class='flag-5'>不常用</b>的<b class='flag-5'>讀</b><b class='flag-5'>選</b>通<b class='flag-5'>采樣</b><b class='flag-5'>時鐘</b><b class='flag-5'>源</b>