对于物联网的应用或者产品版本管理等场合,芯片的信息读取是用户非常关心的问题。本文介绍了瑞萨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小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。