痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU啟動(dòng)那些事(6.B)- FlexSPI NOR連接方式大全(RT600)
大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT600的FlexSPI NOR啟動(dòng)的連接方式。
痞子衡前段時(shí)間一鼓作氣寫完了三篇關(guān)于i.MXRT1xxx系列FlexSPI NOR啟動(dòng)連接的文章,算是把目前已供貨的i.MXRT1xxx型號(hào)全部都聊了一遍,但是恩智浦近期剛宣布i.MXRT600正式供貨了,得了,活又來(lái)了,繼續(xù)寫吧。
《FlexSPI NOR啟動(dòng)連接方式(RT1015/1020/1050)》
《FlexSPI NOR啟動(dòng)連接方式(RT1060/1064(SIP))》
《FlexSPI NOR啟動(dòng)連接方式(RT1010)》
i.MXRT600跟i.MXRT1xxx系列(Cortex-M7內(nèi)核)不太一樣,其內(nèi)核采用的是ARM Cortex-M33 + DSP,所以我們一般將i.MXRT600歸屬于i.MXRTxxx系列,它是i.MXRTxxx系列的老大哥。
雖然i.MXRTxxx算是個(gè)新系列,但從系統(tǒng)角度來(lái)看其很多地方跟i.MXRT1xxx系列一樣,它也沒有內(nèi)部非易失性存儲(chǔ)器,支持啟動(dòng)的外部存儲(chǔ)器類型也很多,通過FlexSPI接口連接串行NOR Flash也是首選。
i.MXRT600內(nèi)部有一個(gè)雙通道8bit的FlexSPI模塊,這個(gè)模塊與i.MXRT1xxx里是幾乎一樣的(存在微小升級(jí)),但在Pinmux設(shè)計(jì)上與i.MXRT1xxx上差異較大(主要涉及SoC設(shè)計(jì)上的兩種8線實(shí)現(xiàn)方法),這也是本文要介紹的重點(diǎn)。
- Note: 本文提及的芯片,在系統(tǒng)映射地址空間分配上,給 FlexSPI 分配的起始地址是 0x08000000/0x18000000,因此 XIP 應(yīng)用程序需要從 0x08000000/0x18000000 之后的空間開始鏈接
一、FlexSPI連接模式
老規(guī)矩,在講啟動(dòng)連接之前,先簡(jiǎn)單聊一下FlexSPI模塊的連接模式。從手冊(cè)里看,F(xiàn)lexSPI一共有兩種連接模式:
- Individual mode:如下圖Flash A1+A2+B1+B2(四線/八線Flash均可),它們分時(shí)復(fù)用FlexSPI,同一時(shí)刻僅有一個(gè)Flash被操作(僅一個(gè)PORT有數(shù)據(jù)收發(fā))。
- Parallel mode:如下圖Flash A1+B1或Flash A2+B2(僅四線QSPI),同一時(shí)刻兩個(gè)Flash可以一起被操作(兩個(gè)PORT都有數(shù)據(jù)收發(fā)),F(xiàn)lexSPI會(huì)自動(dòng)合并/拆分?jǐn)?shù)據(jù)(read/program)到兩個(gè)PORT。
因?yàn)閕.MXRT600的FlexSPI PORTA和PORTB均是8bit數(shù)據(jù)線,均可獨(dú)立連八線Flash,因此RT1xxx上那種聯(lián)合PORTA 4bit數(shù)據(jù)線和PORTB 4bit數(shù)據(jù)線組Combination mode去連八線Flash那種方式在i.MXRT600上不適用。
二、涉及FlexSPI引腳
i.MXRT600一共提供了三種封裝(WLCSP114、VFBGA176、FOWLP249),并且根據(jù)是否選配DSP,一共有6個(gè)型號(hào)。下文要介紹的FlexSPI NOR啟動(dòng)連接方式并不一定適用所有封裝(主要是WLCSP114連接方式較少)。
我們可以在i.MXRT600芯片參考手冊(cè)Non-Secure Boot ROM這一章節(jié)找到BootROM指定的FlexSPI NOR引腳,痞子衡整理如下:
三、單Flash連接方式(4種)
前兩種Flash連接方式就是利用FlexSPI PORTA或PORTB里的6根信號(hào)線連接四線QSPI Flash(劃重點(diǎn),PORTB可以單獨(dú)接四線QSPI啟動(dòng),這是RT1xxx所做不到的)。
第三種Flash連接方式就是利用FlexSPI PORTA里的全部12根信號(hào)線連接八線Octal Flash(換成Hyper Flash也行)。
第四種Flash連接方式就是利用FlexSPI PORTB里的10根信號(hào)線連接八線Octal Flash(或Hyper Flash),這是i.MXRT600 EVK (Rev.E)里的連接方式,需要注意的是因?yàn)镻ORTB沒有CLK_N以及DQS信號(hào),所以此時(shí)的八線Flash僅能跑在SDR 60MHz低速下(DQS信號(hào)配成internal loopback模式)。
四、雙Flash連接方式(5種)
i.MXRT600支持掛兩片F(xiàn)lash去啟動(dòng),此處僅以兩片四線QSPI Flash為例。下圖給出了多片F(xiàn)lash的連接方式,理論上一個(gè)FlexSPI最多可以掛四片F(xiàn)lash,因?yàn)樽畲笥?個(gè)片選。但僅考慮接兩片F(xiàn)lash的話,一共Flash A0+A1、A0+B0、A0+B1、B0+A1、B0+B1五種正確連法。剩下的那個(gè)A1+B1組合因?yàn)闆]有Code Flash,所以無(wú)法正常啟動(dòng)。
至此,恩智浦i.MX RT600的FlexSPI NOR啟動(dòng)的連接方式痞子衡便介紹完畢了,掌聲在哪里~~~
歡迎訂閱
文章會(huì)同時(shí)發(fā)布到我的 博客園主頁(yè)、CSDN主頁(yè)、知乎主頁(yè)、微信公眾號(hào) 平臺(tái)上。
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機(jī)上第一時(shí)間看了哦。

最后歡迎關(guān)注痞子衡個(gè)人微信公眾號(hào)【痞子衡嵌入式】,一個(gè)專注嵌入式技術(shù)的公眾號(hào),跟著痞子衡一起玩轉(zhuǎn)嵌入式。
衡杰(痞子衡),目前就職于恩智浦(NXP)半導(dǎo)體MCU系統(tǒng)應(yīng)用部門,擔(dān)任高級(jí)嵌入式系統(tǒng)應(yīng)用工程師。
專欄內(nèi)所有文章的轉(zhuǎn)載請(qǐng)注明出處:http://www.rzrgm.cn/henjay724/
與痞子衡進(jìn)一步交流或咨詢業(yè)務(wù)合作請(qǐng)發(fā)郵件至 hengjie1989@foxmail.com
可以關(guān)注痞子衡的Github主頁(yè) https://github.com/JayHeng,有很多好玩的嵌入式項(xiàng)目。
關(guān)于專欄文章有任何疑問請(qǐng)直接在博客下面留言,痞子衡會(huì)及時(shí)回復(fù)免費(fèi)(劃重點(diǎn))答疑。
痞子衡郵箱已被私信擠爆,技術(shù)問題不推薦私信,堅(jiān)持私信請(qǐng)先掃碼付款(5元起步)再發(fā)。
浙公網(wǎng)安備 33010602011771號(hào)