关于RX MCU如何读取Unique ID

发布日期:2025-01-04 16:47    点击次数:142
对于物联网的应用或者产品版本管理等场合,芯片的信息读取是用户非常关心的问题。本文介绍了瑞萨RX家族单片机读取Unique ID的方法。 对于RX族MCU来讲,读取Unique ID分为以下两种方式: 注:由于Unique ID存储在闪存的非编址区域中,用户无法改写,所以需要使用Unique ID读取命令读取寄存器值来获取。 1、RX110、RX111、RX113、RX130、RX13T:使用使用Firmware Integration Technology(FIT)的Unique ID读取(UID)模块来获得MCU的Unique ID。 UID模块能够读取存储在非编址区域中的32字节Unique ID,并将其存储在指定区域中。以下将该模块称为UID FIT模块。具体可以扫描下方二维码查看参考应用笔记(需要登录后查看): https://www2.renesas.cn/jp/zh/oauth2/default/v1/authorize?client_id=0oa2ixjskq8o2hdJB357 response_type=code scope=openid email phone profile MyRenesasUserInfo redirect_uri=https://www2.renesas.cn/openid-connect/renesas-okta state=GT4jM6d9Q-UuNCLokJdUeayOpaGTqYTCHQ6VOBpzjEY UID FIT模块利用闪存的自编程功能从非编址区域读取Unique ID。定序器首先进入ROM P/E模式,由于在该模式下无法读取ROM中的值,因此程序将会被传送到RAM并在RAM中执行。读取Unique ID后,程序会再次返回到ROM中继续执行程序。 在工程中UID FIT模块可以通过API函数的调用来实现。 读取唯一ID的步骤如下: ● 调用R_UID_Open()函数。 将程序从ROM转移到RAM。 ● 调用R_UID_Read()函数。 跳转到RAM。 进入P/E模式(该模式下无法读取ROM)。 执行Unique ID读取命令。 返回读取模式(该模式下可以读取ROM)。 通过跳转返回到ROM。 UID FIT模块的处理示例如下所示: 注意,该模块有以下限制: ROM或E2 DataFlash中的区域不能指定为存储读取的Unique ID的区域。 RX130的Unique ID读出结果参考如下: UIDR0: 0x32UIDR8: 0xff UIDR16: 0x1cUIDR24: 0xff UIDR1: 0x23UIDR8: 0xffUIDR17: 0x0eUIDR25: 0xff UIDR2: 0x7aUIDR10: 0xffUIDR18: 0x19UIDR26: 0xff UIDR3: 0xf3UIDR11: 0xffUIDR19: 0xffUIDR27: 0xff UIDR4: 0xffUIDR12: 0xffUIDR20: 0xffUIDR28: 0xff UIDR5: 0xffUIDR13: 0xffUIDR21: 0xffUIDR29: 0xff UIDR6: 0xffUIDR14: 0xffUIDR22: 0xffUIDR30: 0xff UIDR7: 0xffUIDR15: 0xffUIDR23: 0xffUIDR31: 0xff 2、除RX110、RX111、RX113、RX130、RX13T以外的RX MCU:通过寄存器UIDR0、UIDR1、UIDR2和UIDR3可以获取MCU的唯一ID。 因iodefine.h中的定义不同,对于RX65N、RX24T、RX231等,请使用以下代码: unsigned long id[4] = {0, 0, 0, 0}; id[0] = FLASHCONST.UIDR0; id[1] = FLASHCONST.UIDR1; id[2] = FLASHCONST.UIDR2; id[3] = FLASHCONST.UIDR3; 对于RX140等,请使用以下代码: unsigned long id[4] = {0, 0, 0, 0}; id[0] = FLASH.UIDR0; id[1] = FLASH.UIDR1; id[2] = FLASH.UIDR2; id[3] = FLASH.UIDR3; 几个RX MCU的Unique ID读出结果参考如下: RX65N(R5F565NEDDFP) UIDR0:0x3647384e UIDR1:0x20203830 UIDR2:0x00380001 UIDR3:0x0f041189 RX24T(R5F524TAADFP) UIDR0:0x1b011001 UIDR1:0x31352a09 UIDR2:0x3d0006ff UIDR3:0x574b2500 RX140(R5F51406ADFN) UIDR0:0x1a071501 UIDR1:0x09391b0b UIDR2:0x3a0003ff UIDR3:0x574b1500 RX231(R5F52318ADFP) UIDR0:0x0b031101 UIDR1:0x59061d11 UIDR2:0x0b0015ff UIDR3:0x574b2b00 来源:瑞萨MCU小百科 审核编辑:汤梓红