你們好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給你們介紹的是恩智浦i.MX RT600的FlexSPI NOR啓動的鏈接方式。html
痞子衡前段時間一氣呵成寫完了三篇關於i.MXRT1xxx系列FlexSPI NOR啓動鏈接的文章,算是把目前已供貨的i.MXRT1xxx型號所有都聊了一遍,可是恩智浦近期剛宣佈i.MXRT600正式供貨了,得了,活又來了,繼續寫吧。微信
《FlexSPI NOR啓動鏈接方式(RT1015/1020/1050)》
《FlexSPI NOR啓動鏈接方式(RT1060/1064(SIP))》
《FlexSPI NOR啓動鏈接方式(RT1010)》oop
i.MXRT600跟i.MXRT1xxx系列(Cortex-M7內核)不太同樣,其內核採用的是ARM Cortex-M33 + DSP,因此咱們通常將i.MXRT600歸屬於i.MXRTxxx系列,它是i.MXRTxxx系列的老大哥。
雖然i.MXRTxxx算是個新系列,但從系統角度來看其不少地方跟i.MXRT1xxx系列同樣,它也沒有內部非易失性存儲器,支持啓動的外部存儲器類型也不少,經過FlexSPI接口鏈接串行NOR Flash也是首選。
i.MXRT600內部有一個雙通道8bit的FlexSPI模塊,這個模塊與i.MXRT1xxx裏是幾乎同樣的(存在微小升級),但在Pinmux設計上與i.MXRT1xxx上差別較大(主要涉及SoC設計上的兩種8線實現方法),這也是本文要介紹的重點。flex
老規矩,在講啓動鏈接以前,先簡單聊一下FlexSPI模塊的鏈接模式。從手冊裏看,FlexSPI一共有兩種鏈接模式:.net
Individual mode:以下圖Flash A1+A2+B1+B2(四線/八線Flash都可),它們分時複用FlexSPI,同一時刻僅有一個Flash被操做(僅一個PORT有數據收發)。
Parallel mode:以下圖Flash A1+B1或Flash A2+B2(僅四線QSPI),同一時刻兩個Flash能夠一塊兒被操做(兩個PORT都有數據收發),FlexSPI會自動合併/拆分數據(read/program)到兩個PORT。設計
由於i.MXRT600的FlexSPI PORTA和PORTB均是8bit數據線,都可獨立連八線Flash,所以RT1xxx上那種聯合PORTA 4bit數據線和PORTB 4bit數據線組Combination mode去連八線Flash那種方式在i.MXRT600上不適用。htm
i.MXRT600一共提供了三種封裝(WLCSP11四、VFBGA17六、FOWLP249),而且根據是否選配DSP,一共有6個型號。下文要介紹的FlexSPI NOR啓動鏈接方式並不必定適用全部封裝(主要是WLCSP114鏈接方式較少)。blog
咱們能夠在i.MXRT600芯片參考手冊Non-Secure Boot ROM這一章節找到BootROM指定的FlexSPI NOR引腳,痞子衡整理以下:接口
前兩種Flash鏈接方式就是利用FlexSPI PORTA或PORTB裏的6根信號線鏈接四線QSPI Flash(劃重點,PORTB能夠單獨接四線QSPI啓動,這是RT1xxx所作不到的)。get
第三種Flash鏈接方式就是利用FlexSPI PORTA裏的所有12根信號線鏈接八線Octal Flash(換成Hyper Flash也行)。
第四種Flash鏈接方式就是利用FlexSPI PORTB裏的10根信號線鏈接八線Octal Flash(或Hyper Flash),這是i.MXRT600 EVK (Rev.E)裏的鏈接方式,須要注意的是由於PORTB沒有CLK_N以及DQS信號,因此此時的八線Flash僅能跑在50MHz低速下(DQS信號配成internal loopback模式)。
i.MXRT600支持掛兩片Flash去啓動,此處僅以兩片四線QSPI Flash爲例。下圖給出了多片Flash的鏈接方式,理論上一個FlexSPI最多能夠掛四片Flash,由於最大有4個片選。但僅考慮接兩片Flash的話,一共Flash A0+A一、A0+B0、A0+B一、B0+A一、B0+B1五種正確連法。剩下的那個A1+B1組合由於沒有Code Flash,因此沒法正常啓動。
至此,恩智浦i.MX RT600的FlexSPI NOR啓動的鏈接方式痞子衡便介紹完畢了,掌聲在哪裏~~~
文章會同時發佈到個人 博客園主頁、CSDN主頁、微信公衆號 平臺上。
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就能夠在手機上第一時間看了哦。