大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT500的FlexSPI NOR啟動的連接方式。
這個i.MXRT FlexSPI NOR啟動連接方式系列文章,痞子衡在一年前寫過四篇,把當時已面世的所有i.MXRT型號(RT600/1010/1015/1020/1050/1060/1064)都囊括了。最近這一年里,i.MXRT系列又新增了兩個型號,分別是屬於i.MXRTxxx陣營的二號選手i.MXRT500、屬於i.MXRT1xxx陣營的第一代戰神i.MXRT1170,所以痞子衡要繼續更文了。
痞子衡今天要介紹的是i.MXRT500的FlexSPI NOR啟動連接方式,在閱讀本文前最好把 《FlexSPI NOR啟動連接方式(RT600)》 先看完,對i.MXRTxxx系列有一個基本認識。我們知道i.MXRT500是基於ARM Cortex-M33內核的超低功耗MCU,主要面向智能可穿戴市場。與i.MXRT600一樣沒有內部非易失性存儲器,通過FlexSPI接口連接串行NOR Flash是啟動設備首選。
i.MXRT500內部有兩個雙通道8bit的FlexSPI模塊,比i.MXRT600單FlexSPI模塊有所增強,但是這兩個FlexSPI模塊在芯片I/O上都沒有引出Port B,只能使用一個Port(即Port A),因此在啟動連接方式上反而更簡單了。此外FlexSPI0設計上主要用於連接Flash(僅它在芯片內部連上了OTFAD,可實現在線解密),而FlexSPI1設計上是用於連接HyperRAM/PSRAM去拓展圖形顯示Buffer空間的。好,閑話少敘,咱們進入正文:
- Note1 : i.MXRT500 可啟動 NOR Flash 僅能掛載在 FlexSPI0 上,在系統映射地址空間分配上,給 FlexSPI0 分配的起始地址是 0x08000000,因此 XIP 應用程序需要從 0x08000000 之后的空間開始鏈接
一、FlexSPI連接模式
FlexSPI模塊IP本身支持兩種連接模式:Individual mode:多個Flash分時復用FlexSPI,同一時刻僅有一個Flash被操作;Parallel mode:同一時刻兩個Flash可以一起被操作,FlexSPI會自動合並/拆分數據(read/program)。但i.MXRT500上沒有Port B支持,所以實際上Individual mode是唯一選擇。
二、涉及FlexSPI引腳
i.MXRT500一共提供了兩種封裝(WLCSP141、FOWLP249),並且根據是否選配DSP和GPU,一共有9個型號。下文要介紹的FlexSPI NOR啟動連接方式並不一定適用所有封裝(主要是WLCSP141連接方式較少)。
我們可以在i.MXRT500芯片參考手冊Non-Secure Boot ROM這一章節找到BootROM指定的FlexSPI NOR引腳如下,是的,僅FlexSPI0引腳被用於Flash啟動設備連接:
三、單Flash連接方式(2種)
第一種Flash連接方式就是利用FlexSPI0 Port里的6根信號線連接四線QSPI Flash:
第二種Flash連接方式就是利用FlexSPI0 Port里的全部12根信號線連接八線Octal Flash(換成Hyper Flash也行)。
四、Flash+PSRAM連接方式
i.MXRT500-EVK給出了Flash+PSRAM連接示例,即FlexSPI0連接四線/八線Flash、FlexSPI1連接PSRAM,這也正好符合芯片設計初衷。當然FlexSPI0也可以去連接PSRAM,因為i.MXRT500可以從uSDHC接口去啟動(代碼存在SD/eMMC里)。
附錄、FOWLP249封裝下FlexSPI相關的引腳定義
至此,恩智浦i.MX RT500的FlexSPI NOR啟動的連接方式痞子衡便介紹完畢了,掌聲在哪里~~~
歡迎訂閱
文章會同時發布到我的 博客園主頁、CSDN主頁、知乎主頁、微信公眾號 平台上。
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。