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