|
大家好,我是痞子衡,是正經(jīng)搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1xxx系列里暗藏的Product ID寄存器。: o) x/ ]+ u! O" F+ t$ z
MCU 廠商在定義一個產(chǎn)品系列時,通常是會預先規(guī)劃產(chǎn)品發(fā)展路線的(即會有一大波 MCU 型號面世,各型號間特性有差異),因此 MCU 內(nèi)部一般都會有一個專門的只讀寄存器用以存放 Product ID 值,應用程序可讀取這個 ID 值來識別當前 MCU 型號,這樣在設計軟件時可以讓代碼在這個 MCU 系列上通用,從而方便項目做 MCU 型號更換升級。
2 r7 `# ~4 s0 i前段時間,痞子衡做了一個面向 i.MXRT 全系列的 超級下載算法,需要用 Product ID 來區(qū)分型號,但當時苦無在 i.MXRT1xxx 系列上沒有找到這樣的寄存器,因此用了一個替代方法,詳見 《識別當前i.MXRT型號》 一文。不過最近痞子衡發(fā)現(xiàn) i.MXRT1xxx 系列上其實是有 Product ID 寄存器的,就是隱藏得比較深,今天我們把它挖出來:8 H- Y' L' i' S% e5 V
一、i.MXRT 系列 ID 寄存器i.MXRT1xxx 家族迄今為止一共出了 i.MXRT1010/1020/1050/1060/1170 五大主型號,基于主型號也擴展出了 i.MXRT1015/1024/1064/1160 四個特色型號,我們看看它們的 ID 寄存器是怎么設計的:' E( i) A: ]! ~0 {3 p3 s1 h1 I
1.1 第一代架構 i.MXRT10xx 上設計所有的 i.MXRT10xx 型號都屬于第一代架構,它們的 Product ID 寄存器都統(tǒng)一隱藏在 USB_ANALOG 模塊里。如下是 i.MXRT1050 里的 USB_ANALOG->DIGPROG 寄存器定義,這個寄存器值標明了 Chip Silicon Version,其中 DIGPROG[31:16] 是型號碼,DIGPROG[15:0] 是版本碼。) h# k* X. u3 g9 p
其中型號碼跟芯片真實 Part Number 沒有直接的聯(lián)系,需要轉(zhuǎn)譯,規(guī)律來看 DIGPROG[19:16] 記錄的是芯片推出順序,i.MXRT1050 是系列第一個型號,標 A;i.MXRT1020 是系列第二個型號,標 B...。 |
|