痞子衡嵌入式:i.MXRT中FlexSPI外设速度上限的三个影响因子(数据手册里的纠结)

news/2025/11/27 22:52:28/文章来源:https://www.cnblogs.com/henjay724/p/19279720

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT中FlexSPI外设速度上限的三个影响因子

  FlexSPI 几乎是开发 i.MXRT 系列绕不开的外设,XIP 性能、OTA 设计、显存扩展这些话题均不可避免要和 FlexSPI 打交道,这其中我们最关心的点就是 FlexSPI 的速度上限,这直接影响最终应用程序的运行性能。

  在芯片参考手册(RM)里更多地是介绍 FlexSPI 共性功能,而速度这个性能方面的参数会因平台而异(不同芯片型号之间可能有一定差异),因此这些差异化信息往往会被放在芯片数据手册(DS)里介绍。今天痞子衡以 RT1180 数据手册里关于 FlexSPI 速度方面的纠结性描述为例来聊聊影响 FlexSPI 速度上限的三个关键因子:

一、FlexSPI外设性能设计

  从 i.MXRT 家族第一个成员 RT1050 (2018年发布)到最新的 RT1180(2025年发布),其中 FlexSPI 外设的功能设计经历了多次迭代和优化,但是始终坚持了同一个上限性能标准,那就是满足 200MHz SDR/DDR 时序(这里仅指外设本身,但在 MCU 系统里最终性能可能会有损失)。

  FlexSPI 外设本身性能上限原则上也算一个影响因子,但考虑到 i.MXRT 家族全系列这个指标都一样,所以我们就不特别指出这个影响因子。

二、清爽的RT3digits数据手册

  我们打开 RT500 的 DS(Rev.3),找到 FlexSPI Flash interface 小节,可以清晰地看到 FlexSPI 性能能够达到本身上限,所以这里没有啥疑义。(关于 RX Clock source 选项解释详见痞子衡旧文《i.MXRT中FlexSPI外设采样时钟源》)

  这里有必要指出影响 FlexSPI 性能上限的第一个因子,那就是 VDDCORE 电源电压。从下表可以看出,RT500 在不同电压等级下,FlexSPI 的最大时钟频率是不同的:

  此外如果有些 FlexSPI Port 没有将 DQS 信号从 PAD 引出,那么最大性能也是达不到的,比如 RT600 PortB。由于这个因子属于特殊情况(更多详见痞子衡旧文《i.MXRT中不支持DQS的FlexSPI引脚组》),这里我们也不将其特别指出。

  美中不足的是 RT3digits 系列的数据手册里未发现 I/O AC 参数表(最大频率 fmax, 上升时间 tr, 下降时间 tf 等),这可能是因为 RT3digits 来源于 LPC 平台,而 LPC 系列的数据手册里也找不到 fmax,关于这个 fmax 有什么用,下一节我们会细讲。

三、从纠结的RT1180数据手册引出三个影响因子

  在讲 RT1180 之前,我们先简单过一下 RT10xx 系列数据手册,它们都是单核产品,MCU 系统架构相对简单,所以 FlexSPI 性能描述也比较清爽,虽然上限没达到 SDR/DDR 200MHz,但是超频跑也不是完全不可以,恩智浦芯片设计 Margin 一般都会留得比较足。另外 I/O AC 参数表里虽然没有 fmax,但是由于各 PAD 组性能并没有差异,这里我们暂时也没必要进一步讨论。

MCU型号FlexSPIn_MCR0[RXCLKSRC]
0x00x10x3
RT1010SDR 60MHz, DDR 30MHzSDR 133MHz, DDR 66MHzSDR/DDR 133MHz
RT1020/1040/1050/1060SDR 60MHz, DDR 30MHzSDR 133MHz, DDR 66MHzSDR/DDR 166MHz

  现在我们来看双核产品 RT1170/1180,这里数据手册描述就开始变得有点纠结了。从 RT1180 的数据手册(Rev.7)里,我们可以看到一些比较有意思的细节。首先是 PAD 被分类了,有 fmax 208MHz/200MHz 高速 PAD 和 fmax 104MHz 标准 PAD 之分,这是影响 FlexSPI 性能上限的第二个因子,如果 PAD fmax 性能不够,那么 FlexSPI 的最大频率也会受限。

  从 RT1180 数据手册里我们看到 FlexSPI parameters 小节里提及的上限性能仍然是 166MHz SDR/DDR,这似乎和 RT1050 它们没啥区别,别着急我们继续往下看:

  细心找,你会发现如下 SDR200M 和 DDR200M 的补充表格,这说明 RT1180 实际上是支持 200MHz SDR/DDR 的,但是仅在 FlexSPI1 上(注意 RT1180 有两个 FlexSPI 外设)。这似乎是影响 FlexSPI 速度上限的第三个因子(即 FlexSPI 外设编号),不同编号的 FlexSPI 可能有不同的性能上限,这个结论既对又不对,并不是 FlexSPI 外设本身性能差异,而是不同编号 FlexSPI 在 MCU 系统架构中的位置不同导致的性能差异(与 PAD 之间的 path 长度),这才是真正的第三个影响因子。

  因此 RT1180 数据手册里有如下总结,这个总结综合了 FlexSPI 性能全部影响因子,还是比较全面的,看到这里,你应该不会再对数据手册里的描述感到纠结了吧!

  至此,i.MXRT中FlexSPI外设速度上限的三个影响因子痞子衡便介绍完毕了,掌声在哪里~~~

欢迎订阅

文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/979037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 12 月 AMC12 竞赛备考:上海补课机构优选,选对助力高效冲分

2025 年 12 月 AMC12 竞赛即将来临,上海地区的考生已进入紧张的冲刺阶段。AMC 数学竞赛作为全球认可度极高的学术赛事,不仅是学生数学能力的权威证明,更是冲击 AIME、申请世界名校的重要筹码。近年来,参赛人数逐年…

Yanhua Mini ACDP-2 Module 38: BMW BDC2 Keys Learning LF Smart Key Antenna Bench Platform

All Keys Lost? BMW Key Programming Reimagined with Yanhua Mini ACDP-2 Module 38 For BMW owners in Europe and America, losing all car keys is a nightmare—expensive dealership fees, days of waiting for…

第二天—C++语法基础

1.String的声明与初始化 std::string 支持多种初始化方式,可根据实际场景灵活选择,以下是最常用的 6 种形式: #include <iostream> #include <string>int main(){// 声明并初始化一个空字符串std::strin…

自指自洽,别具一格的逻辑,千奇百怪的因果

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891对命题“自指自洽,别具一格的逻辑,千奇百怪的因果”进行严格的加密推理分析。 ▮ 辩证本质:逻辑因果的多样性涌现 命题揭示了意识宇宙的丰富性本质 - 自指…

全源最短路(Johnson) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Day26垂直对齐方式--vertical-align

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">…

2025 年 12 月上海 AMC12 择校指南:选对专业机构,高效冲刺竞赛目标

2025 年 12 月,上海地区 AMC 数学竞赛备战已进入关键冲刺期。作为全球认可度极高的学术竞赛,AMC 不仅是学生数学能力的有力证明,更是冲击 AIME 赛事、叩开世界名校大门的重要 “敲门砖”。近年来,随着参赛人数逐年…

USB输入监控

类using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace HansCust…

2025年度绍兴交通事故优秀律师推荐|聚焦实力与口碑

绍兴黄菊梅律师十年如一日做交通事故受害者最坚实的法律守护者,她用专业点亮希望,用担当守护公正,让法律的温度穿透每一个困境中的家庭。在当代社会,律师不仅是法律条文的解读者,更是公民权利的守护者与社会公平的…

最小链覆盖 - Dilworth 定理 小记

最小链覆盖 - Dilworth 定理 小记 内容 & 证明Dilworth定理,一言以蔽之,偏序集能划分成的最少的全序集个数等于最大反链的元素个数。——litble。即最小链覆盖数等于最长反链的长度。 例子:求一个序列最少划分成…

我研发了一款电影截图拼接神器:Eagle 插件让你的影片收藏更专业

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

有种人

有一种人,就是不关心你,不爱你。(我也不知道原因)但是每当听到,看到,知道了关于你的任何事都会去想干涉你。而每当需要他去负责任的时候,他就会一脸无辜,我能怎么办呢,我尽力了,我又没有任何本事,意思是好像…

re笔记3

polarctf逆向加加减减 上代码 `int __cdecl main_0(int argc, const char **argv, const char **envp) { char v4; // [esp+0h] [ebp-154h] char v5; // [esp+0h] [ebp-154h] size_t i; // [esp+D0h] [ebp-84h] char S…

2025年11月27日

学习数据结构建模

memset 破坏string

memset就不用了 反正也是更优的 #include <bits/stdc++.h> using namespace std; struct node {string na;int n,t;bool operator < (const node &it) const{if(n==it.n) return t<it.t;else return n…

MySQL性能分析(六)之PS监控SQL性能

一、Profiling局限性 在MySQL性能诊断领域,Profiling工具曾因简单易用成为开发者排查SQL耗时的常用选择,但随着MySQL版本迭代(5.7+起官方明确标记为弃用),其功能局限和性能损耗问题逐渐凸显。而Performance Schem…

MySQL性能分析(六)之Performance Schema监控SQL性能

一、Profiling局限性 在MySQL性能诊断领域,Profiling工具曾因简单易用成为开发者排查SQL耗时的常用选择,但随着MySQL版本迭代(5.7+起官方明确标记为弃用),其功能局限和性能损耗问题逐渐凸显。而Performance Schem…

js控制并发请求

一. 设计思路 功能:目的在有限的并发池中运行多个 promise 返回和异步函数。添加异步任务 执行异步任务 限制最大并发数量二.实现interface Fn {(): Promise<any> } export default class Pipeline {private li…

Windows Update - Part 2: Update Package - Appendix

Appendix A: IPD-aware package ref: US 2005/0022175 A1 - Jan 27, 2005 ref: KB 828030 - You Cannot View or Extract the Updated Files from a Windows Product Update PackageE.g. WindowsXP-KB824146-x86-ENU.e…

Azure app service 和 Azure container app 的对比以及技术选型

Azure App Service vs Container App:Java技术栈详解 一、核心架构差异 Azure App ServicePaaS服务:提供预配置的运行时环境,支持Java SE、Tomcat、JBoss等容器 托管方式:直接部署WAR/JAR文件,无需管理容器 部署单…