痞子衡嵌入式:从i.MXRT600用户手册UM里一个关于FlexSPI LUT长度的勘误说起
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT全系列FlexSPI外设的LUT长度。
事情起源于一个 RT600 客户, 他们读芯片用户手册发现 FlexSPI 外设 LUT 长度为 128 words(这是 RT500/RT10xx/RT1170 上的两倍),他们想尝试用起来,发现后 64 words 不起作用。说实话,痞子衡用了这么久的 FlexSPI 外设,还真没注意到这个细节,原因是 64 words 的 LUT 已经能够支持实现 16 条时序,这对于大部分应用场景都绰绰有余。于是痞子衡找了一块 RT600 开发板测试了一下,发现确实有问题,这应该是 RT600 用户手册上的美丽勘误。借此机会痞子衡就和大家梳理一下 i.MXRT 全系列 LUT 长度与设计:
- Note: 该勘误存在于 RT600 UM Rev 1.8 以及 SDK v25.06 版本及之前
一、LUT设计差异
LUT 组件可以说是 FlexSPI 外设最核心的部分,关于其工作原理,详见痞子衡旧文 《从头开始认识i.MXRT启动头FDCB里的lookupTable》。客户在 RT600 手册以及 SDK 里发现的勘误主要是 FlexSPI 结构体原型定义里 LUT 长度 FLEXSPI_LUT_COUNT 被设为了 128,而实际上应该是 64(头文件一般是根据手册内容自动生成的)。

LUT 指标除了总长度之外,还有一个重要指标,即单条时序最大长度(也可认为子时序数量),大部分 i.MXRT 上 FlexSPI 单条时序支持的最多子时序为 8 条(每条子时序长度固定 2Bytes),即如下图。
- Note:这里需要注意,当某条时序中子时序不满 8 条时,剩余空间也不可另作它用,因为 FlexSPI->IPCR1[ISEQID] 里所标示的时序 index 对应得 LUT 里步长单位是时序最大长度。

RT700 上外设升级到了 XSPI,其单条时序支持的最多子时序为 10 条,即如下图所示,其余 LUT 用法和 FlexSPI 类似。

这里用一个表格做个总结,目前来看 RT1180 最强,支持的时序数量最多,不过对于其它 i.MXRT 也不用慌。如果工程里实际需要的时序大于 16,可以动态更新 LUT 表以分时复用空间,这样实际能实现的时序数量是不限的。
| 芯片 | 外设 | LUT长度 | 单Sequence长度 | Sequence总数 |
|---|---|---|---|---|
| i.MXRT10xx i.MXRT1160/1170 i.MXRT500/600 RW612 |
FlexSPI | 64 words | 4 words | 16 |
| i.MXRT1180 | 128 words | 32 | ||
| i.MXRT700 | XSPI | 80 words | 5 words | 16 |
二、LUT长度对驱动影响
当前 SDK 包里的 flexspi 驱动和例程是以 16 条时序来设计的,这对于除了 RT1180 之外的其它 i.MXRT 型号是合适的。而在 RT1180 上,例程里我们只需把 CUSTOM_LUT_LENGTH 改为 128,然后在 customLUT 里添加更多时序实现即可。
- 例程路径: \SDK\boards\evkmimxrt1180\driver_examples\flexspi\nor
#define CUSTOM_LUT_LENGTH 128
const uint32_t customLUT[CUSTOM_LUT_LENGTH] = {
// 时序...
};
而至于 fsl_flexspi.c 驱动(V2.7.0及之前),里面和 LUT 相关的就一个如下函数 FLEXSPI_UpdateLUT(),这个函数用于更新 LUT 表,在例程里我们是一次性更新进去,所以参数里的 index 检查没有问题;如果是动态单条更新 LUT,那么函数里面的第一句 assert() 检查就需要为 RT1180 做相应改动。

至此,i.MXRT全系列FlexSPI外设的LUT长度痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园、CSDN、微信公众号、知乎、与非网、电子技术应用AET、电子星球、51CTO 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:从i.MXRT600用户手册UM里一个关于FlexSPI LUT长度的勘误说起的更多相关文章
- 痞子衡嵌入式:i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项. 最近痞子衡在支持一个印度客户,这个客户项目主芯片选择 ...
- 痞子衡嵌入式:利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列ROM中的FlexSPI驱动API实现IAP. 痞子衡的技术交流群里经常有群友提问: i.MXRT中的FlexSPI驱动 ...
- 痞子衡嵌入式:利用i.MXRT1060,1010上新增的FlexSPI地址重映射(Remap)功能可安全OTA
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT部分型号上新增的FlexSPI Remap功能. OTA升级设计几乎是每个量产客户都绕不开的话题,产品发布后免不了要做固件( ...
- 痞子衡嵌入式:原来i.MXRT1xxx系列里也暗藏了Product ID寄存器
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx系列里暗藏的Product ID寄存器. MCU 厂商在定义一个产品系列时,通常是会预先规划产品发展路线的(即会有一 ...
- 痞子衡嵌入式:揭秘i.MXRT600的ISP模式下用J-Link连接后PC总是停在0x1c04a的原因(Debug Mailbox)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT600中的Debug Mailbox实现对JLink调试的影响. 事情缘起痞子衡的同事 - 喜欢打破砂锅问到底的Kerry小 ...
- 痞子衡嵌入式:快速定位i.MXRT600板级设计ISP[2:0]启动模式引脚上电时序问题的方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是一种快速定位i.MXRT600板级设计ISP[2-0]启动模式引脚上电时序问题的方法. 我们知道恩智浦i.MXRT600是主打音频市场的 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介绍(2)- RT685EVKA性能实测(Dhrystone)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(4)- OTP及其烧写方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的OTP. 在i.MXRTxxx启动系列第二篇文章 Boot配置(ISP Pin, OTP) 里痞子 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.1)- FlexSPI NOR连接方式大全(RT600)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT600的FlexSPI NOR启动的连接方式. 痞子衡前段时间一鼓作气写完了三篇关于i.MXRT1xxx系列Flex ...
- 痞子衡嵌入式:轻松为i.MXRT设计更新Segger J-Link Flash下载算法文件
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT设计更新Segger J-Link Flash下载算法文件. 想要在Flash中调试,基本是离不开Flash下载算法的,毕 ...
随机推荐
- 【HUST】网安|计算机网络实验|实验三 华为ENSP配置
我没有配置无线AP和AC,使用静态路由. 拓扑图文件链接:Gitee传送门. 在安装了ensp的情况下,解压即可使用. 1. 实验检查要求 2. 实验结果 2.1 我的拓扑图 2.2 我的IP地址划分 ...
- 堆叠、MLAG、VPC、VSS 技术对比及架构建议
堆叠.MLAG.VPC.VSS 技术对比及架构建议 1. 堆叠(Stacking) 技术实现: 多台物理设备通过专用堆叠线缆(如华为的Stack.华三IRF.思科StackWise)或普通光纤/以太网 ...
- 【语义分割专栏】:FCN原理篇
目录 前言 语义分割 背景介绍 FCN核心剖析 全卷积(Fully Convolution) 反卷积(deconvolution) 最近邻插值法 双线性插值 反卷积 跳跃连接(Skip Connect ...
- Java面试题:浅谈Spring Bean的生命周期
摘要:如果熟悉Spring 中 Bean的生命周期,可以加深对Spring的认知,故综述一下Bean的生命周期. 前言 Spring中Bean的生命周期是找工作的时候会被问到的高频面试题,主要用于 ...
- Mac Catalina关闭系统更新提示
catalina每隔一段时间就会提示更新,系统更新图标上会显示红色的更新提示,有没有觉得很烦? 如果有那就如下操作: 1.打开系统设置->软件更新 2.点击右下角高级 3.取消所有的勾选(这一步 ...
- 网络 | Linux ping任何ip均出现 Destination Host Unreachable 排查思路与方法
Linux ping任何地址出现 Destination Host Unreachable 基本的排错步骤如下: 1.ping 127.0.0.1ping的通说明tcp协议栈没有问题 2.ping 主 ...
- PINN做脆性材料裂纹扩展的损失函数设计
- 数据分析必备:GPS轨迹、软件签到、手机信令数据获取方式合集
本文对目前主要的出租车.公交车.行人GPS轨迹.社交软件签到.手机信令等数据产品的获取网站加以整理与介绍. 目录 6 GPS轨迹与签到数据 6.1 个人GPS轨迹数据 6.1.1 GeoLife ...
- 获取Harbor镜像仓库指定Project的容量使用并进行企业微信告警
简单说明 在镜像仓库的维护中,有时我们需要根据镜像仓库的使用情况进行及时的告警和扩容,避免镜像仓库容量满载时再进行扩容,这样会造成业务的阻塞. 这里我们使用Python简单写一个实现获取镜像仓库指定项 ...
- 基于 C# 编写的轻量级工控网关和 SCADA 组态软件
前言 今天大姚给大家分享一个基于 C# 编写.开源(LGPL-3.0 license)的轻量级工控网关和 SCADA 组态软件:SharpSCADA. 项目介绍 SharpSCADA是一个基于 C# ...