痞子衡嵌入式:原来i.MXRT1xxx系列里也暗藏了Product ID寄存器
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1xxx系列里暗藏的Product ID寄存器。
MCU 厂商在定义一个产品系列时,通常是会预先规划产品发展路线的(即会有一大波 MCU 型号面世,各型号间特性有差异),因此 MCU 内部一般都会有一个专门的只读寄存器用以存放 Product ID 值,应用程序可读取这个 ID 值来识别当前 MCU 型号,这样在设计软件时可以让代码在这个 MCU 系列上通用,从而方便项目做 MCU 型号更换升级。
前段时间,痞子衡做了一个面向 i.MXRT 全系列的 超级下载算法,需要用 Product ID 来区分型号,但当时苦无在 i.MXRT1xxx 系列上没有找到这样的寄存器,因此用了一个替代方法,详见 《识别当前i.MXRT型号》 一文。不过最近痞子衡发现 i.MXRT1xxx 系列上其实是有 Product ID 寄存器的,就是隐藏得比较深,今天我们把它挖出来:
一、i.MXRT 系列 ID 寄存器
i.MXRT1xxx 家族迄今为止一共出了 i.MXRT1010/1020/1050/1060/1170 五大主型号,基于主型号也扩展出了 i.MXRT1015/1024/1064/1160 四个特色型号,我们看看它们的 ID 寄存器是怎么设计的:
1.1 第一代架构 i.MXRT10xx 上设计
所有的 i.MXRT10xx 型号都属于第一代架构,它们的 Product ID 寄存器都统一隐藏在 USB_ANALOG 模块里。如下是 i.MXRT1050 里的 USB_ANALOG->DIGPROG 寄存器定义,这个寄存器值标明了 Chip Silicon Version,其中 DIGPROG[31:16] 是型号码,DIGPROG[15:0] 是版本码。
其中型号码跟芯片真实 Part Number 没有直接的联系,需要转译,规律来看 DIGPROG[19:16] 记录的是芯片推出顺序,i.MXRT1050 是系列第一个型号,标 A;i.MXRT1020 是系列第二个型号,标 B...。
1.2 第二代架构 i.MXRT11xx 上设计
以 i.MXRT1170 为代表的型号属于第二代架构,它们的 Product ID 寄存器都统一放在了 ANADIG_MISC 模块里。如下是 i.MXRT1170 里的 ANADIG_MISC->MISC_DIFPROG 寄存器定义,这个寄存器值标明了 Chip Silicon Version,其中 MISC_DIFPROG[23:8] 是型号码,MISC_DIFPROG[7:0] 是版本码。
其中型号码直接就是芯片真实 Part Number 中的数字,简单明了,希望接下来的新型号保持这种风格。
二、i.MXRT 系列 ID 值
最后收录下 i.MXRT1xxx 目前全部型号的 Product ID 值,均是在板子上实测读取的(注意:部分芯片参考手册上的值是错的),以这里的值为准。
i.MXRT型号 | ID寄存器类型 | ID寄存器值 | 备注 |
---|---|---|---|
i.MXRT1011 | USB_ANALOG->DIGPROG | 0x006D0000 | / |
i.MXRT1015 | USB_ANALOG->DIGPROG | 0x006B0000 | 基于i.MXRT1021的特色型号 |
i.MXRT1021 | USB_ANALOG->DIGPROG | 0x006B0000 | / |
i.MXRT1024 | USB_ANALOG->DIGPROG | 0x006B0000 | i.MXRT1021的SIP版 |
i.MXRT105x | USB_ANALOG->DIGPROG | 0x006A0001 | / |
i.MXRT106x | USB_ANALOG->DIGPROG | 0x006C0000 | / |
i.MXRT1064 | USB_ANALOG->DIGPROG | 0x006C0000 | i.MXRT106x的SIP版 |
i.MXRT116x | ANADIG_MISC->MISC_DIFPROG | 0x001160A0 | 基于i.MXRT117x的特色型号 |
i.MXRT117x | ANADIG_MISC->MISC_DIFPROG | 0x001170B0 | / |
至此,i.MXRT1xxx系列里暗藏的Product ID寄存器痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
最后欢迎关注痞子衡个人微信公众号【痞子衡嵌入式】,一个专注嵌入式技术的公众号,跟着痞子衡一起玩转嵌入式。



衡杰(痞子衡),目前就职于某全球顶级半导体原厂MCU系统部门,担任高级嵌入式系统应用工程师。
专栏内所有文章的转载请注明出处:http://www.cnblogs.com/henjay724/
与痞子衡进一步交流或咨询业务合作请发邮件至 hengjie1989@foxmail.com
可以关注痞子衡的Github主页 https://github.com/JayHeng,有很多好玩的嵌入式项目。
关于专栏文章有任何疑问请直接在博客下面留言,痞子衡会及时回复免费(划重点)答疑。
痞子衡邮箱已被私信挤爆,技术问题不推荐私信,坚持私信请先扫码付款(5元起步)再发。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
2020-09-15 痞子衡嵌入式:职场上有效地向师傅请教问题的几点建议
2020-09-15 《痞子衡单片机排行榜》 索引
2020-09-15 痞子衡嵌入式:IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink)