痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.B)- FlexSPI NOR连接方式大全(RT500)


  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦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主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

posted @ 2021-05-11 21:38  痞子衡  阅读(618)  评论(0编辑  收藏  举报