對于物聯(lián)網(wǎng)的應(yīng)用或者產(chǎn)品版本管理等場合,芯片的信息讀取是用戶非常關(guān)心的問題。本文介紹了瑞薩RX家族單片機(jī)讀取Unique ID的方法。
對于RX族MCU來講,讀取Unique ID分為以下兩種方式:
注:由于Unique ID存儲在閃存的非編址區(qū)域中,用戶無法改寫,所以需要使用Unique ID讀取命令讀取寄存器值來獲取。
1、RX110、RX111、RX113、RX130、RX13T:使用使用Firmware Integration Technology(FIT)的Unique ID讀取(UID)模塊來獲得MCU的Unique ID。
UID模塊能夠讀取存儲在非編址區(qū)域中的32字節(jié)Unique ID,并將其存儲在指定區(qū)域中。以下將該模塊稱為UID FIT模塊。具體可以掃描下方二維碼查看參考應(yīng)用筆記(需要登錄后查看):
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模塊利用閃存的自編程功能從非編址區(qū)域讀取Unique ID。定序器首先進(jìn)入ROM P/E模式,由于在該模式下無法讀取ROM中的值,因此程序?qū)粋魉偷?a href="http://www.nxhydt.com/tags/ram/" target="_blank">RAM并在RAM中執(zhí)行。讀取Unique ID后,程序會再次返回到ROM中繼續(xù)執(zhí)行程序。
在工程中UID FIT模塊可以通過API函數(shù)的調(diào)用來實現(xiàn)。
讀取唯一ID的步驟如下:
● 調(diào)用R_UID_Open()函數(shù)。
將程序從ROM轉(zhuǎn)移到RAM。
● 調(diào)用R_UID_Read()函數(shù)。
跳轉(zhuǎn)到RAM。
進(jìn)入P/E模式(該模式下無法讀取ROM)。
執(zhí)行Unique ID讀取命令。
返回讀取模式(該模式下可以讀取ROM)。
通過跳轉(zhuǎn)返回到ROM。
UID FIT模塊的處理示例如下所示:
注意,該模塊有以下限制:
ROM或E2 DataFlash中的區(qū)域不能指定為存儲讀取的Unique ID的區(qū)域。
RX130的Unique ID讀出結(jié)果參考如下:
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讀出結(jié)果參考如下:
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小百科
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
454文章
50460瀏覽量
421971 -
mcu
+關(guān)注
關(guān)注
146文章
17019瀏覽量
350374 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2904文章
44306瀏覽量
371460
發(fā)布評論請先 登錄
相關(guān)推薦
評論