关于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引入了全新启动头Containe结构,不再是之前的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。





