关于RX MCU如何读取Unique ID

电子说

1.3w人已加入

描述

对于物联网的应用或者产品版本管理等场合,芯片的信息读取是用户非常关心的问题。本文介绍了瑞萨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%20email%20phone%20profile%20MyRenesasUserInfo redirect_uri=https%3A//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小百科

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分