痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1160/1170)
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MXRT1160/1170两款MCU的FlexSPI NOR启动的连接方式。
这个 i.MXRT FlexSPI NOR 启动连接方式系列文章,痞子衡在一年前写过四篇,把当时已面世的所有 i.MXRT 型号(RT600/1010/1015/1020/1050/1060/1064)都囊括了。最近这一年里,i.MXRT 系列又新增了两个型号,分别是属于 i.MXRTxxx 阵营的二号选手 i.MXRT500、属于 i.MXRT1xxx 阵营的第一代旗舰 i.MXRT11xx (包含1160,1170),所以痞子衡要继续更文了。
痞子衡今天要介绍的是 i.MXRT1160/1170 的 FlexSPI NOR 启动连接方式,在阅读本文前最好把 《FlexSPI NOR启动连接方式(RT1060)》 先看完,对 i.MXRT1xxx 系列有一个基本认识。
i.MXRT11xx 系列是继 i.MXRT10xx 系列之后推出的第二代架构,Cortex-M7 + Cortex-M4 双核产品,在 IP 数量上也进一步增多,尤其是本文重点关注的 IP - FlexSPI,i.MXRT1160/1170 内部集成了两个 FlexSPI 模块 (1个双通道8bit,1个双通道16bit),并且这两个 FlexSPI 端口均支持挂载 NOR Flash 去启动,这是其与 i.MXRT10xx 系列最大的区别。好,闲话少叙,咱们进入正文:
- Note1 : i.MXRT1160 与 i.MXRT1170 在启动特性方面是完全一致的,因此本文合并在一起介绍。
- Note2 : i.MXRT1160/1170 可启动 NOR Flash 如果挂载在 FlexSPI1 上,在系统映射地址空间分配上,给 FlexSPI1 分配的起始地址是 0x30000000,因此 XIP 应用程序需要从 0x30000000 之后的空间开始链接
- Note3 : i.MXRT1160/1170 可启动 NOR Flash 如果挂载在 FlexSPI2 上,在系统映射地址空间分配上,给 FlexSPI2 分配的起始地址是 0x60000000,因此 XIP 应用程序需要从 0x60000000 之后的空间开始链接
一、涉及FlexSPI引脚
我们可以在 i.MXRT1160/1170 芯片参考手册 System Boot 这一章节找到 BootROM 指定的 FlexSPI NOR 引脚,痞子衡整理如下:
二、单Flash连接方式(10种)
在系统设计时使用一片 Flash 是最常用的情况,这片 Flash 负责存放应用程序代码(即所谓的Code Flash),i.MXRT 既可以在 Flash 中原地执行,也可以将应用程序拷贝到内部 RAM 中执行。
前六种 Flash 连接方式就是利用 FlexSPI PORTA 或 PORTB 里的 6 根信号线连接四线 QSPI Flash(其中 8bit FlexSPI1 的 PORTB 也可以单独接四线 QSPI 启动,这是 RT10xx 所做不到的)。
下表里最后一组连接方式在设计上没有 DQS 信号,所以连上此引脚的四线 Flash 仅能跑在SDR 60MHz低速下(DQS信号配成 internal loopback 模式)。
后四种 Flash 连接方式就是利用 FlexSPI PORT 里的全部12根信号线连接八线 Octal Flash 或者 Hyper Flash,注意 FlexSPI1 需要联合 PORTA 和 PORTB 组成 8bit,而 FlexSPI2 则单独 PORTA 或者 PORTB 就满足 8bit 了(对于启动而言,FlexSPI2 不支持联合 PORTA 和 PORTB 组 8bit)。
至此,恩智浦i.MXRT1160/1170两款MCU的FlexSPI NOR启动的连接方式痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
相关文章
- VS Code使用Git可视化管理源代码详细教程
- Visual Studio使用Git忽略不想上传到远程仓库的文件
- 使用git处理github中提交有冲突的pull request
- Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器和Supervisor守护服务
- Linux CentOS上安装 MySQL 8.0.16
- Linux系统彻底卸载MySQL数据库
- Git分布式版本控制器常用命令和使用
- Linux常用基本命令
- Linux安装Nginx二-基于源码编译安装
- Linux安装Nginx1-基于yum安装
- git commit 代码提交规范
- git status 查看状态文件名乱码
- MySQL server has gone away
- PHP 中的 final 关键字
- PHP 命令行指令
- PHP 代码复用机制 trait
- git stash 命令详解(保存开发进度)
- .git 目录结构内容解析
- linux 命令之查看文件内容
- git fetch 命令详解