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