一、UID 简介
UID (Unique ID) 是芯片的唯一标识符,在 i.MX RT1050 的 Reference Manual 的 Fusemap Descriptions Table 中可以找到,可以看到 UID 是位于 Fuse 中的 64bit 数据,如下图。
图 1. Fusemap Descriptions Table
二、读取 UID
由于 UID 位于 Fuse 中,所以可以通过读取 Fuse 的方式来读取 UID。
我们先从 SDK 导出烧写 Fuse 的例程 ocotp_example,在该例程的基础上来进行 UID 读取。
在 MIMXRT1052.h 的 OCOTP_Type 中看到各寄存器,这里的排列顺序是与 Fusemap 的地址顺序对应的,其中 64bit 的 UID 对应 CFG0 和 CFG1 (每个 32bit),如下图。
图 2. OCOTP_Type
所以,我们可以直接通过取寄存器的方式读取,也可以通过 Read Fuse 的 API 读取,如下图所示。
图 3. 读取 UID
图 4. 串口信息
三、参考资料
(1)RT1050 Reference Manual,可在 NXP 官网下载,网址如下:
https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true
(2)NXP Community 问题《Read UID(Unique ID) on i.MXRT RT1050》,网址如下:
https://community.nxp.com/t5/i-MX-RT/Read-UID-Unique-ID-on-i-MXRT-RT1050/m-p/1202637