對(duì)于物聯(lián)網(wǎng)的應(yīng)用或者產(chǎn)品版本管理等場(chǎng)合,芯片的信息讀取是用戶非常關(guān)心的問(wèn)題。本文介紹了瑞薩RX家族單片機(jī)讀取Unique ID的方法。
對(duì)于RX族MCU來(lái)講,讀取Unique ID分為以下兩種方式:
注:由于Unique ID存儲(chǔ)在閃存的非編址區(qū)域中,用戶無(wú)法改寫(xiě),所以需要使用Unique ID讀取命令讀取寄存器值來(lái)獲取。
1、RX110、RX111、RX113、RX130、RX13T:使用使用Firmware Integration Technology(FIT)的Unique ID讀?。║ID)模塊來(lái)獲得MCU的Unique ID。
UID模塊能夠讀取存儲(chǔ)在非編址區(qū)域中的32字節(jié)Unique ID,并將其存儲(chǔ)在指定區(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模式,由于在該模式下無(wú)法讀取ROM中的值,因此程序?qū)?huì)被傳送到RAM并在RAM中執(zhí)行。讀取Unique ID后,程序會(huì)再次返回到ROM中繼續(xù)執(zhí)行程序。
在工程中UID FIT模塊可以通過(guò)API函數(shù)的調(diào)用來(lái)實(shí)現(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模式(該模式下無(wú)法讀取ROM)。
執(zhí)行Unique ID讀取命令。
返回讀取模式(該模式下可以讀取ROM)。
通過(guò)跳轉(zhuǎn)返回到ROM。
UID FIT模塊的處理示例如下所示:
注意,該模塊有以下限制:
ROM或E2 DataFlash中的區(qū)域不能指定為存儲(chǔ)讀取的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:通過(guò)寄存器UIDR0、UIDR1、UIDR2和UIDR3可以獲取MCU的唯一ID。
因iodefine.h中的定義不同,對(duì)于RX65N、RX24T、RX231等,請(qǐng)使用以下代碼:
unsigned long id[4] = {0, 0, 0, 0};
id[0] = FLASHCONST.UIDR0;
id[1] = FLASHCONST.UIDR1;
id[2] = FLASHCONST.UIDR2;
id[3] = FLASHCONST.UIDR3;
對(duì)于RX140等,請(qǐng)使用以下代碼:
unsigned long id[4] = {0, 0, 0, 0};
id[0] = FLASH.UIDR0;
id[1] = FLASH.UIDR1;
id[2] = FLASH.UIDR2;
id[3] = FLASH.UIDR3;
幾個(gè)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
來(lái)源:瑞薩MCU小百科
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
459文章
52471瀏覽量
440447 -
mcu
+關(guān)注
關(guān)注
146文章
17964瀏覽量
366415 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2930文章
46210瀏覽量
392085
發(fā)布評(píng)論請(qǐng)先 登錄
RX140 MCU的快速原型板 數(shù)據(jù)手冊(cè)和設(shè)計(jì)資料

如何在VS Code中使用瑞薩RX系列MCU

S32G399A調(diào)用Mcu_PerformReset()接口執(zhí)行功能復(fù)位,復(fù)位后使用Mcu_GetResetReason()讀取不到了,為什么?
瑞薩電子RX261/RX260 32位觸摸控制MCU數(shù)據(jù)表與技術(shù)手冊(cè)
火語(yǔ)言如何循環(huán)讀取表格

【RA-Eco-RA4E2-64PIN-V1.0開(kāi)發(fā)板試用】讀取RA4E2單片機(jī)的128位身份證號(hào)碼
ADS1292R讀取不到ID號(hào)是怎么回事?
Jtti:節(jié)點(diǎn)ID變化過(guò)于頻繁如何解決
hdc1080可以正常讀取設(shè)備ID,但是當(dāng)讀取溫濕度值時(shí)總是0,為什么?如何解決?
基于瑞薩電子RX MCU的電機(jī)控制解決方案

評(píng)論