痞子衡嵌入式:原来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主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
痞子衡嵌入式:原来i.MXRT1xxx系列里也暗藏了Product ID寄存器的更多相关文章
- 痞子衡嵌入式:对比i.MXRT与LPC在RTC外设GPREG寄存器使用上的异同
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是对比i.MXRT与LPC在RTC外设GPREG寄存器使用上的异同. 本篇是 <在SBL项目实战中妙用i.MXRT1xxx里Syst ...
- 痞子衡嵌入式:恩智浦LPC系列MCU开发那些事 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是恩智浦LPC系列微控制器相关知识. 恩智浦半导体最早于2003年便开始推出LPC系列MCU,但早期的产品LPC2000/3000系列属 ...
- 痞子衡嵌入式:IVT里的不同entry设置可能会造成i.MXRT1xxx系列启动App后发生异常跑飞
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IVT里的不同entry设置可能会造成i.MXRT1xxx系列启动App后发生异常跑飞问题的分析解决经验. 事情缘起恩智浦官方论坛上的一 ...
- 痞子衡嵌入式:利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列ROM中的FlexSPI驱动API实现IAP. 痞子衡的技术交流群里经常有群友提问: i.MXRT中的FlexSPI驱动 ...
- 痞子衡嵌入式:了解i.MXRTxxx系列ROM API及其与i.MXRT1xxx系列的差异
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRTxxx系列ROM API设计细节. 痞子衡之前写过两篇文章 <利用i.MXRT1xxx系列ROM提供的FlexSPI ...
- 痞子衡嵌入式:系统时钟配置不当会导致i.MXRT1xxx系列下OTFAD加密启动失败
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是系统时钟配置不当会导致i.MXRT1xxx系列下OTFAD加密启动失败问题. 我们知道,i.MXRT1xxx家族早期型号(RT1050/ ...
- 痞子衡嵌入式:利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache. 关于i.MXRT1xxx系列内部通用数据协处 ...
- 痞子衡嵌入式:浅谈i.MXRT1xxx系列MCU时钟相关功能引脚的作用
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx系列MCU时钟相关功能引脚作用. 如果我们从一颗 MCU 芯片的引脚分类来看芯片功能,大概可以分为三大类:电源.时钟 ...
- 痞子衡嵌入式:在SBL项目实战中妙用i.MXRT1xxx里SystemReset不复位的GPR寄存器
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx里SystemReset不复位的GPR寄存器的小妙用. 我们知道稍大规模的项目代码设计一般都是多人协作完成的,在项目 ...
随机推荐
- WinForm PerformClick()
在Winfrom开发中,经常遇到调用Click事件,如:btn_click(null,null),其实winfrom也自带一个模拟点击事件:PerformClick(),区别就是:前者无论控件是否En ...
- SpringBoot - Bean validation 参数校验
目录 前言 常见注解 参数校验的应用 依赖 简单的参数校验示例 级联校验 @Validated 与 @Valid 自定义校验注解 前言 后台开发中对参数的校验是不可缺少的一个环节,为了解决如何优雅的对 ...
- 遗传算法 TSP(Python代码)
该代码是本人根据B站up主侯昶曦的代码所修改的. 原代码github地址:https://github.com/Houchangxi/heuristic-algorithm/blob/master/T ...
- 关于TreeSet集合的理解
TreeSet 集合主要是实现了Collection集合的实现类,主要框架为: 1. Set接口的框架: |----Collection接口:单例集合,用来存储一个一个的对象 |----Set接口: ...
- 【笔记】Bagging和Pasting以及oob(Out-of-Bag)
Bagging和Pasting以及oob(Out-of-Bag) Bagging和Pasting 前面讲到soft voting classifier和hard voting classifier两个 ...
- 「移动端」touch事件,touchEvent对象
随着智能手机普及,有越来越多的手机网页和网页版游戏,手机触摸.移动.旋转等等,多种操作.一般电脑的人机交互靠的是鼠标,而手机用的就是触摸.区别有: PC 端一个电脑只能有一个鼠标,而移动端有多点触摸. ...
- websocket在慕课网中的应用
网上资料都是介绍概念,我们来看看实际网站怎么使用websocket的吧.限于自身水平解读并不深入,慕课网上的websocket某些字段不知何用. 是什么 是一种应用层协议,有html5而推出,是一种全 ...
- mysql事务的4大特性
事务的四大特性(简称ACID) 1.原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做. 2.一致性(Consistency) 事务执行的结果必须是使数据 ...
- Linux md5sum校验文件完整性
使用场景: 远程备份大文件,防止网络异常断开,文件备份不完整,使用md5校验其完整性. 1. 获取文件md5值 [root@kvm-123 gitlab]# md5sum 1564248991_20 ...
- vue--三种组件中之间的传值
参考网址:https://www.jianshu.com/p/46573a741c29 一.父子组件之间的传值----props/$emit 组件之间的传值,我们比较常用到的是props/$emit ...