关于RA MCU如何读取Unique ID和Device Part Number

电子说

1.2w人已加入

描述

对于物联网的应用或者产品版本管理等场合,芯片的信息读取是用户非常关心的问题。本文介绍了瑞萨RA家族单片机读取Unique ID、Part Number和Mask Version信息的方法。

我们可以使用如下三个地址中存储的内容来获得相关信息,其地址如下:

单片机

注:FMIFRT寄存器的地址为0x407F_B19C。

关于FMIFRT寄存器:

FMIFRT是一个只读寄存器,存储Unique ID寄存器、Part Number寄存器和MCU Version寄存器的基址。

应该以32位单位读取FMIFRT。 

FMIFRT寄存器的地址为0x407F_B19C。

单片机

以下分别介绍如何通过程序代码读出Unique ID、Part Number和Mask Version,这里以RA2L1为例。

(1)Unique ID寄存器地址和读出方法

单片机

直接通过FSP的API“R_BSP_UniqueIdGet”就可以读出128位的Unique ID;

参考下面的命令:

 

const bsp_unique_id_t* unique_id = R_BSP_UniqueIdGet();

 

(2)Part Number寄存器地址和读出方法

单片机

FSP中没有读取Part Number的API,所以需要使用以下代码。

首先定义Part Number寄存器的地址和保存Part Number数组的结构体。

 

#define BSP_FEATURE_BSP_PART_NUMBER_POINTER                 (0x01001C10U)

typedef struct st_bsp_part_number

{

    union

    {

        uint32_t part_number_words[4];

        uint8_t  part_number_bytes[16];

    };

} bsp_part_number_t;

 

然后在用户代码中执行下面的命令,即可将Part Number读出。

 

const bsp_part_number_t* part_number = BSP_FEATURE_BSP_PART_NUMBER_POINTER;

 

(3)MCU Version寄存器地址和读出方法

单片机

FSP中也没有读取MCU Version的API,所以需要使用以下代码。

首先定义MCU Version寄存器的地址:

 

#define BSP_FEATURE_BSP_MASK_REVISIOM_POINTER               (0x01001C20U)

 

然后在用户代码中执行下面的命令,即可将MCU Version读出。

 

const uint8_t* mask_version = BSP_FEATURE_BSP_MASK_REVISIOM_POINTER;

 

调试状态下读出的结果如下(以RA2L1为例):

单片机
单片机
单片机

产品型号是用ASCII码编写的,这里以RA2L1为例做以下说明。

单片机

来源:瑞萨MCU小百科

  审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分