大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MXRT1180的FlexSPI NOR启动的连接方式。
这个 i.MXRT FlexSPI NOR 启动连接方式系列文章,痞子衡已经写过很多篇,把已面世的所有 i.MXRT 型号(RT500/RT600/1010/1015/1020/1050/1060/1064/1160/1170)都囊括了。最近属于 i.MXRT11xx 阵营的第二代旗舰 i.MXRT1180 正式发布了,今天咱们就来介绍它的 FlexSPI NOR 启动连接方式,在阅读本文前最好把 《FlexSPI NOR启动连接方式(RT1060)》 先看完,对 i.MXRT1xxx 系列有一个基本认识。
i.MXRT1180 系列是 i.MXRT1170 系列的升级架构,Cortex-M33 + Cortex-M7 双核产品,这里需要注意得是,RT1180 永远从支持 TrustZone 特性的 Cortex-M33 开始启动,因为其安全架构相比 RT1170 有了重大升级。对于一般启动特性而言,最大的改变就是 RT1180 引入了全新启动头 Container 结构,不再是之前的 IVT 结构。关于本文重点关注的 IP - FlexSPI,i.MXRT1180 内部集成了两个 FlexSPI 模块 (1个双通道8bit,1个双通道16bit),并且这两个 FlexSPI 端口均支持挂载 NOR Flash 去启动,这与 i.MXRT1170 保持一致。好,闲话少叙,咱们进入正文:
- Note1 : i.MXRT1180 可启动 NOR Flash 如果挂载在 FlexSPI1 上,在系统映射地址空间分配上,给 FlexSPI1 分配的起始地址是 0x28000000/0x38000000,因此 XIP 应用程序需要从 0x28000000/0x38000000 之后的空间开始链接
- Note2 : i.MXRT1180 可启动 NOR Flash 如果挂载在 FlexSPI2 上,在系统映射地址空间分配上,给 FlexSPI2 分配的起始地址是 0x04000000/0x14000000,因此 XIP 应用程序需要从 0x04000000/0x14000000 之后的空间开始链接
- Note3 : 注意 FlexSPI1 上还有一个以 0x02000000/0x12000000 起始的 32MB Aliase 空间,FlexSPI2 上也有一个以 0x22000000/0x32000000 起始的 32MB Aliase 空间
一、涉及FlexSPI引脚
我们可以在 i.MXRT1180 芯片参考手册 System Boot 这一章节找到 BootROM 指定的 FlexSPI NOR 引脚,痞子衡整理如下:


二、单Flash连接方式(12种)
在系统设计时使用一片 Flash 是最常用的情况,这片 Flash 负责存放应用程序代码(即所谓的Code Flash),i.MXRT 既可以在 Flash 中原地执行,也可以将应用程序拷贝到内部 RAM 中执行。
前七种 Flash 连接方式就是利用 FlexSPI PORTA 或 PORTB 里的 6 根信号线连接四线 QSPI Flash(其中 8bit FlexSPI1 的 PORTB 也可以单独接四线 QSPI 启动,这是 RT10xx 所做不到的)。

后五种 Flash 连接方式就是利用 FlexSPI PORT 里的全部12根信号线连接八线 Octal Flash 或者 Hyper Flash,注意 FlexSPI2 需要联合 PORTA 和 PORTB 组成 8bit,而 FlexSPI1 则单独 PORTA 或者 PORTB 就满足 8bit 了(对于启动而言,FlexSPI1 不支持联合 PORTA 和 PORTB 组 8bit)。

注意 FlexSPI2 有一些连接组合是 AON PAD 相关,由于 AON 自身最高翻转频率只能到 100MHz,因此连接 AON 启动的 Flash 速度不能超过 100MHz SDR/DDR。
至此,恩智浦i.MXRT1180的FlexSPI NOR启动的连接方式痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
