痞子衡嵌入式:从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下载算法的,毕 ...
随机推荐
- Font Awesome文档使用手册
Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小.颜色.阴影以及任何可以用CSS的样式. 使用文档:https://fa4.uihtm.com/ Font Awesome 是一套 ...
- 操作系统综合题之“用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码(水果进箱问题-代码补充)”
1.问题:假设一个水果赛选系统由三个进程A.B.C组成.进程A每次取一个水果,之后存放在货架F上,F的容量为每次只能存放一个水果.若货架上存放的是苹果则让进程B取出,并存放到苹果箱中:若货架上存放的是 ...
- k8s之statefulset控制器
operator: statefulset:有状态副本集 特点 运行在: 1,稳定且唯一的网络标识符 2,稳定且持久的存储 3,有序,平滑地部署和扩展 4,有序,平滑地删除和终止 5,有序的滚动更新 ...
- 【语义分割专栏】先导篇:评价指标(PA,CPA,IoU,mIoU,FWIoU,F1)
目录 前言 混淆矩阵 计算混淆矩阵 评价指标 像素准确率(Pixel Accuracy,PA) 类别像素准确率(Class Pixel Accuracy,CPA) 类别平均像素准确率(Mean Pix ...
- 一个低PE的股票池--选股策略
EP因子即市盈率因子,常被投资者使用的几个估值因子之一.一般使用PE,即Price to Earning,维基百科上的解释:市盈率指每股市价除以每股收益盈利(Earning Per Share,EPS ...
- codeup之Day of Week(给定日期判断周几
题目描述 We now use the Gregorian style of dating in Russia. The leap years are years with number divisi ...
- jdk11.0.2下载安装-环境配置
下载 JDK下载地址https://www.oracle.com/technetwork/java/javase/downloads/index.html 然后同意,选择自己适合的版本 PS: 1.z ...
- Java 使用ListUtils对List分页处理
背景分析 工作中,经常遇到需要用Java进行分页处理数据,例如把1000万条Excel数据写入MySQL数据库,如果把这1000w数据一股脑的丢给MySQL,保证把数据库玩完,故需要批量写入,如每 ...
- CentOS使用yum update更新时不升级内核的方法
RedHat/CentOS/Fedora使用 yum update 更新时,默认会升级内核.但有些服务器硬件(特别是组装的机器)在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦.所以 ...
- 【2020.11.28提高组模拟】T1 染色(color) 题解
[2020.11.28提高组模拟]T1 染色(color) 题解 题意描述 给长度为n的数列染色,若\(i-j\)为质数那么\(i,j\)异色.求最小需要的颜色种类并构造出一组. \(n\le10^4 ...