|
大家好,我是痞子衡,是正經(jīng)搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1xxx系列里暗藏的Product ID寄存器。
, B5 ^( X! {4 u* A0 X" c/ wMCU 廠商在定義一個產品系列時,通常是會預先規(guī)劃產品發(fā)展路線的(即會有一大波 MCU 型號面世,各型號間特性有差異),因此 MCU 內部一般都會有一個專門的只讀寄存器用以存放 Product ID 值,應用程序可讀取這個 ID 值來識別當前 MCU 型號,這樣在設計軟件時可以讓代碼在這個 MCU 系列上通用,從而方便項目做 MCU 型號更換升級。
& ^. l, G/ Z5 f4 L/ m( E9 |6 Q前段時間,痞子衡做了一個面向 i.MXRT 全系列的 超級下載算法,需要用 Product ID 來區(qū)分型號,但當時苦無在 i.MXRT1xxx 系列上沒有找到這樣的寄存器,因此用了一個替代方法,詳見 《識別當前i.MXRT型號》 一文。不過最近痞子衡發(fā)現(xiàn) i.MXRT1xxx 系列上其實是有 Product ID 寄存器的,就是隱藏得比較深,今天我們把它挖出來:; g' c$ w, i# a) e/ C- ~4 @
一、i.MXRT 系列 ID 寄存器i.MXRT1xxx 家族迄今為止一共出了 i.MXRT1010/1020/1050/1060/1170 五大主型號,基于主型號也擴展出了 i.MXRT1015/1024/1064/1160 四個特色型號,我們看看它們的 ID 寄存器是怎么設計的:% n+ z! i# [* G# a7 K8 k2 n5 }2 F
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] 是版本碼。9 R: G, w8 j( _, G- H6 w5 N
其中型號碼跟芯片真實 Part Number 沒有直接的聯(lián)系,需要轉譯,規(guī)律來看 DIGPROG[19:16] 記錄的是芯片推出順序,i.MXRT1050 是系列第一個型號,標 A;i.MXRT1020 是系列第二個型號,標 B...。 |
|