大家好,我是痞子衡,是正經搞技術的痞子,今天痞子衡給大家介紹的是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/
與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]
可以關注痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式專案,
關于專欄文章有任何疑問請直接在博客下面留言,痞子衡會及時回復免費(劃重點)答疑,
痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/308074.html
標籤:嵌入式
