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

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

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

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

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

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

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

注1: 參考手冊(cè)里顯示支持loopbackFromSckPad選項(xiàng)的型號(hào)有 i.MX RT1040/1050/1060/1064/1180/500

注2: 參考手冊(cè)里沒(méi)有提及支持loopbackFromSckPad選項(xiàng)的型號(hào)有 i.MX RT1010/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í),過(guò)程中必然存在引腳方向切換,而 FlexSPI 外設(shè)在處理 SIO 方向切換時(shí),無(wú)法做到零等待周期讀取數(shù)據(jù),這就是為什么 Multi-I/O SPI 讀時(shí)序中總是會(huì)存在 Dummy 周期。

1669252885180567.png

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

1669252892785362.png

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

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

1669252908897259.png

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

1669252916257521.png

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

1669252922633358.png

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

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

1669252929424042.png

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

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

三、loopbackFromSckPad選項(xiàng)意義

前面鋪墊了那么多,終于來(lái)到本文的主題了,即下圖 FlexSPI->MCR0[RXCLKSRC] = 2 的情況,此時(shí) Read Strobe 經(jīng)由 SCK 引腳 ipp_ind_sck_fa/b 再 loopback 回來(lái),此時(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 被解放出來(lái)了,這也是它的最主要意義。

1669252939714459.png

別小看只是省了一個(gè) DQS 引腳,也許你認(rèn)為 i.MX RT 有那么多I/O,省一個(gè)引腳意義不大,但是如果某些 FlexSPI 引腳組不帶 DQS 信號(hào),你又想配置 FlexSPI 以 60MHz 以上頻率去訪問(wèn) Flash,這時(shí)候 FlexSPI->MCR0[RXCLKSRC] = 2 選項(xiàng)就會(huì)幫上大忙了,見(jiàn)舊文《不支持DQS的FlexSPI引腳組連接串行NOR Flash注意事項(xiàng)》。

四、loopbackFromSckPad使用限制

FlexSPI->MCR0[RXCLKSRC] = 2 選項(xiàng)雖好,但有如下兩個(gè)實(shí)際使用限制:

存在信號(hào)完整性問(wèn)題:主要出現(xiàn)在 SCK 頻率過(guò)高或者板級(jí) PCB 上 SCK 信號(hào)走線過(guò)長(zhǎng)時(shí)。

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

來(lái)源:恩智浦MCU加油站

審核編輯:湯梓紅

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

    關(guān)注

    38

    文章

    7492

    瀏覽量

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

    關(guān)注

    16

    文章

    1196

    瀏覽量

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

    關(guān)注

    0

    文章

    7

    瀏覽量

    16123
  • 時(shí)鐘源
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    15967
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    I.MX RT1166 Flashdriver問(wèn)題如何解決?

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

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

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

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

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

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

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

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

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

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

    系列文章目錄i.MX RT開(kāi)發(fā)筆記-01 | 初識(shí) 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>開(kāi)發(fā)筆記-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中斷向量控制器NVIC(按鍵中斷檢測(cè))

    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選項(xiàng)是什么作用及有什么使用限制

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

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

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

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

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

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

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

    i.MX RT的FlexRAM配置問(wèn)題

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

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

    理解i.MX RTFlexSPI外設(shè)lookupTable里配置訪問(wèn)行列混合尋址Memory的參數(shù)值
    的頭像 發(fā)表于 10-30 17:23 ?506次閱讀
    理解<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里配置訪問(wèn)行列混合尋址Memory的參數(shù)值

    i.MX RT1010的I2C Slave時(shí)鐘延展功能小記

    i.MX RT1010的I2C Slave時(shí)鐘延展功能小記
    的頭像 發(fā)表于 09-27 16:22 ?1522次閱讀
    <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'>時(shí)鐘</b>延展功能小記