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

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

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

i.MX RT中FlexSPI外設(shè)不常用的讀選通采樣時鐘源

jf_pJlTbmA9 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-10-30 17:44 ? 次閱讀

最近碰到一個客戶,他們在 i.MX RT500 上使能了 FlexSPI->MCR0[RXCLKSRC] = 2(即 loopbackFromSckPad),這個選項字面上的意思是設(shè)置讀選通采樣時鐘源為 SCK 引腳,這個選項在恩智浦官方的代碼包里未曾使能過。

客戶在使用過程中遇到高頻時 SCK 引腳被降壓的問題(從正常的 1.8V 降至 1.2V),那么這個 loopbackFromSckPad 選項到底是什么作用,以及有什么使用限制呢?

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

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

一、為什么存在Read Strobe?

對于串行 SPI 接口存儲器,F(xiàn)lexSPI 外設(shè)主要支持如下兩種讀數(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 外設(shè)在處理 SIO 方向切換時,無法做到零等待周期讀取數(shù)據(jù),這就是為什么 Multi-I/O SPI 讀時序中總是會存在 Dummy 周期。

1669252885180567.png

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

1669252892785362.png

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

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

1669252908897259.png

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

1669252916257521.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。

1669252922633358.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 需要懸空。

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

1669252929424042.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 與外部存儲器相連。

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

三、loopbackFromSckPad選項意義

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

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

1669252939714459.png

別小看只是省了一個 DQS 引腳,也許你認為 i.MX RT 有那么多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 應(yīng)用,有時需要設(shè)置 FlexSPI->MCR0[SCKFREERUNEN] = 1,即 SCK 需要持續(xù)給外部設(shè)備內(nèi)部 PLL 提供參考時鐘。

來源:恩智浦MCU加油站

審核編輯:湯梓紅

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

    關(guān)注

    38

    文章

    7401

    瀏覽量

    163383
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1162

    瀏覽量

    50014
  • SCK
    SCK
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

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

    關(guān)注

    0

    文章

    92

    瀏覽量

    15908
收藏 人收藏

    評論

    相關(guān)推薦

    FlexSPI外設(shè)如何支持行列混合尋址存儲器

    關(guān)于FlexSPI外設(shè)的lookupTable,之前寫過一篇非常詳細的文章 《從頭開始認識i.MX RT啟動頭FDCB里的lookupTable》,這篇文章幾乎可以幫助解決所有串行Qu
    的頭像 發(fā)表于 10-13 09:11 ?1077次閱讀

    I.MX RT1166 Flashdriver問題如何解決?

    我正在嘗試為 I.MX RT1166 編寫自定義閃存驅(qū)動程序應(yīng)用程序。我一直在使用 iMXRT117x_FlexSPI_SFDP 項目,該項目可以在 Mcuxpresso 安裝的 ide
    發(fā)表于 03-31 07:18

    FlexSPIFlexSPI2外設(shè)都可以使用BEE嗎?

    我有一個關(guān)于 i.MX.RT 1061 系列的問題。i.MX.RT1061 中有兩個 FlexSPI。還有一個用于運行加密啟動映像的 BEE。FlexSPI
    發(fā)表于 04-19 08:30

    01:i.MX RT系列產(chǎn)品的介紹與演示

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。本講座將對i.MX RT系列做一個簡要的介紹,包括主要特性和主要外設(shè)。然后會分享能夠
    的頭像 發(fā)表于 01-23 07:21 ?2940次閱讀
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列產(chǎn)品的介紹與演示

    01:i.MX RT的市場應(yīng)用和參考解決方案

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。i.MX RT定位為一款MCU產(chǎn)品,它可以重復利用傳統(tǒng)的Arm MCU生態(tài)系統(tǒng)。除此之外,本次講座還將簡要介紹
    的頭像 發(fā)表于 01-21 07:13 ?3282次閱讀
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的市場應(yīng)用和參考解決方案

    02:i.MX RT系列產(chǎn)品的介紹與演示

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。本講座將對i.MX RT系列做一個簡要的介紹,包括主要特性和主要外設(shè)。然后會分享能夠
    的頭像 發(fā)表于 01-21 07:04 ?2249次閱讀
    02:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列產(chǎn)品的介紹與演示

    i.MX RT開發(fā)筆記-08 | i.MX RT1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    系列文章目錄i.MX RT開發(fā)筆記-01 | 初識 i.MX RT1062 跨界MCUi.MX RT
    發(fā)表于 12-01 13:51 ?2次下載
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>開發(fā)筆記-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    RT-Thread & NXP 發(fā)布 i.MX RT 系列 BSP 新框架

    前言i.MX RT 是 NXP 推出的跨界處理器系列。該系列下又包括 i.MX RT1020、i.MX
    發(fā)表于 12-07 13:06 ?2次下載
    <b class='flag-5'>RT</b>-Thread & NXP 發(fā)布 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b> 系列 BSP 新框架

    loopbackFromSckPad選項是什么作用及有什么使用限制

    i.MX RT500 上使能了 FlexSPI->MCR0[RXCLKSRC] = 2(即 loopbackFromSckPad),這個選項字面上的意思是設(shè)置
    的頭像 發(fā)表于 11-17 09:37 ?741次閱讀

    i.MXRTFlexSPI外設(shè)不常用采樣時鐘

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是i.MXRTFlexSPI外設(shè)不常用
    的頭像 發(fā)表于 11-21 14:15 ?850次閱讀

    探討i.MX RTFlexSPI driver實現(xiàn)Flash編程時對于中斷支持問題

    前段時間有客戶在官方社區(qū)反映i.MX RT1170下,使用官方SDK里FlexSPI驅(qū)動去擦寫Flash時不能很好地支持全局中斷。 客戶項目里用了兩塊NOR Flash,分別掛在
    的頭像 發(fā)表于 02-06 15:09 ?1146次閱讀

    i.MX RT10xx使用FlexIO實現(xiàn)XY2-100振鏡控制協(xié)議

    本文介紹了如何使用i.MX RT系列芯片上的FlexIO實現(xiàn)XY2-100激光振鏡控制協(xié)議。FlexIO模塊是NXP Kinetis和i.MX RT系列MCU的片上
    的頭像 發(fā)表于 05-18 09:21 ?5527次閱讀
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>10xx使用FlexIO實現(xiàn)XY2-100振鏡控制協(xié)議

    i.MX RT的FlexRAM配置問題

    i.MX RT的FlexRAM配置問題
    的頭像 發(fā)表于 10-24 15:46 ?733次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FlexRAM配置問題

    理解i.MX RTFlexSPI外設(shè)lookupTable里配置訪問行列混合尋址Memory的參數(shù)值

    理解i.MX RTFlexSPI外設(shè)lookupTable里配置訪問行列混合尋址Memory的參數(shù)值
    的頭像 發(fā)表于 10-30 17:23 ?439次閱讀
    理解<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b><b class='flag-5'>中</b><b class='flag-5'>FlexSPI</b><b class='flag-5'>外設(shè)</b>lookupTable里配置訪問行列混合尋址Memory的參數(shù)值

    i.MX RT1010的I2C Slave時鐘延展功能小記

    i.MX RT1010的I2C Slave時鐘延展功能小記
    的頭像 發(fā)表于 09-27 16:22 ?1394次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1010的<b class='flag-5'>I</b>2C Slave<b class='flag-5'>時鐘</b>延展功能小記