0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RA CLASS B认证函数库使用简介

瑞萨MCU小百科 来源:未知 2023-01-18 12:25 次阅读

介绍

RA系列单片机瑞萨推出的32位ARM单片机,在某些产品中需要通过安规认证,如IEC60730(CLASS B),芯片硬件本身已经通过IEC60730认证了,今天主要说RA芯片软件自检函数库。

主要内容

RA的IEC60730例程可以识别下方二维码或复制下方网址在浏览器中打开进入瑞萨官网直接获取(需登录官网):

f55ffaf2-96e6-11ed-bfe3-dac502259ad0.png

https://www.renesas.cn/cn/zh/document/scd/ra-family-iec-6073060335-self-test-library-ra-mcu-cm4cm23

目前包括RA2A1、RA2L1、RA4M1、RA6M1四个系列芯片的例程。MCU自检分为两个部分:初始化自检和循环调用自检,可以分为以下:CPUROMRAM、Clock、IWDT、Voltage、ADC、Temperature、POE、GPIO共10个部分,其中GPIO检测需要动作GPIO电位只能初始化时自检。

移植CLASS B代码

1

将SelfTestLib(CLASS B测试代码文件)和srec(CRC脚本及其配置参数文件)加入自己工程中,并加入工程的includes目录中如下图1。并根据芯片的特性,排除不需要的模块,如RA2系列MCU没有FPU模块,需排除,否则编译报错。

f56f4048-96e6-11ed-bfe3-dac502259ad0.png

图1

2

可根据自身芯片的FLASH大小更改CRCcalcCmdXXKB.txt和CRCcalcCmdDebugXXKB.txt对应的数值。

3

添加CRC计算脚本,加入脚本命令arm-none-eabi-objcopy -O srec "${ProjName}.elf" "Original.srec" & ${ProjDirPath}/srec/srec_cat @${ProjDirPath}/srec/CRCcalcCmd64KB.txt,并利用仿真将CRC计算后的值写入ROM内存中的最后一个32位字节,如图2。

f57d4558-96e6-11ed-bfe3-dac502259ad0.png

图2

4

设置一个周期性中断调用CLASS B周期性自检,周期时间长短可根据安规公司要求调整。

按照上述步骤作者成功编写移植了瑞萨官方提供的函数库,并编译通过无报错,见图3。

f58d5696-96e6-11ed-bfe3-dac502259ad0.png

图3

CLASS B各个模块自检介绍

CPU

CPU的测试方式为向寄存器内写入数据,然后读出校验其是否能正常写入、读出,在写入数据和完成后会有将之前工作数据入栈(PUSH {R0-R7})和恢复数据的出栈指令(POP {R0-R7})等,运行CPU自检程序时,不能被其他程序打断,否则会发生数据运行错误。

ROM

ROM测试方式为引入外部脚本srec计算出CRC值写入内存的最后一位并与RA单片机内部CRC计算值对比,从而完成对ROM的计算,外部脚本写入地址如u图4中所示。

f59a57c4-96e6-11ed-bfe3-dac502259ad0.png

图4

RAM

RAM模块检验方式是向MCU的RAM区域进行读写测试,完成RAM校验。

CLOCK

CLOCK可采用内部或是外部时钟检验MCU主时钟,本例程中选中IWDTCLOCK时钟作为基准时钟。其中CLOCK的校验函数ClockMonitor_Init(HOC

O , IWDTCLK , CLOCK_FREQ_MAIN , 15000 , Clock_Test_Failure);

参数1:目标时钟

参数2:基准时钟

参数3:目标时钟频率

参数4:基准时钟频率

参数5:错误时回调函数

VOLTAGE

VOLTAGE检验是MCU打开LVD电压监控模式,如果MCU电源电压低于设定电压时MCU调用不可屏蔽中断NMI,进入报错函数。电压检测调用VoltageMonitor_Init(VOLTAGE_MONITOR_LEVEL_2_79);本例程中电源低于2.79V进入报错函数。

ADC

MCU内部有个ADC CRC模块,可以将ADC引脚接入CRC模块中,模块会产生0V基准、VCC/2基准、VCC电压基准来校验ADC,需要实时查看ADC引脚上的电压,看ADC模块能否正常转换电压。

TEMPERATURE

MCU内部有温度传感器TSN,可实时查看温度情况,一旦超过设定范围,可进入报错。

GPIO

GPIO检验功能在将GPIO设置为输出模式,然后读取管脚输出电平,既而判断完成检验。在GPIO外接电路时,可能会接上容性负载,GPIO管脚电平变化时可能是缓慢变化,所以设置完输出后要根据电路连接适当延时检测,从而避免发生错误。

作者对CLASS B自检各个模块项目所用时间长度做了大致的测算如图5

f5abec1e-96e6-11ed-bfe3-dac502259ad0.jpg

图5

结论

作者移植成功IEC60730安规认证库发现上电初始化自检大概需要70ms,且每隔一段时间会定时自检各个模块,其中最长的一次模块自检须用时长1.48ms,加入库代码时要考虑此时间长度是否对自身逻辑有无影响。注意循环测试中CPU自检不应该被任何中断打断,鉴于CPU测试时间比较短(小于1mS),建议开始CPU测试之前关闭中断、CPU测试完成后再打开中断,若强行打断CPU自检会导致程序跑飞、栈溢出等严重后果。此外GPIO自检会动作IO电平,对于大多数应用来说是不允许的,可跟安规公司沟通酌情添加此模块自检函数。

更多内容欢迎查看

RA生态工作室

f5b79780-96e6-11ed-bfe3-dac502259ad0.png

https://www.ramcu.cn/


原文标题:RA CLASS B认证函数库使用简介

文章出处:【微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。


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

    关注

    146

    文章

    17123

    浏览量

    350991
  • 瑞萨
    +关注

    关注

    35

    文章

    22308

    浏览量

    86240

原文标题:RA CLASS B认证函数库使用简介

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    **【RA-Eco-RA4E2-64PIN-V1.0开发板试用】+小白折腾瑞萨RA系列全过程01**

    0 说在前面 非常感谢RA生态工作室和电子发烧友论坛提供这次试用机会!我在工作和生活中使用过各种各样的芯片,有STM32,N32,AT32和PY32等等,除了PY32仅支持HAL之外(PS:就算是
    发表于 12-16 13:12

    HAL函数调用示例

    HAL(Hardware Abstraction Layer,硬件抽象层)是STM32等微控制器中常用的,它为开发者提供了访问和控制硬件设备的接口。以下是一些常用的HAL库函数及其调用示例: 一
    的头像 发表于 12-02 14:01 319次阅读

    常用SQL函数及其用法

    SQL(Structured Query Language)是一种用于管理和操作关系数据的编程语言。SQL 提供了丰富的函数库,用于数据检索、数据更新、数据删除以及数据聚合等操作。以下是一些常用
    的头像 发表于 11-19 10:18 232次阅读

    RA8D1试用活动】RA8D1B-CPKCOR开发板移植linux

    RA8D1试用活动】RA8D1B-CPKCOR开发板移植linux
    的头像 发表于 11-16 01:02 220次阅读
    【<b class='flag-5'>RA</b>8D1试用活动】<b class='flag-5'>RA8D1B</b>-CPKCOR开发板移植linux

    RA-Eco-RA2E1-48PIN-V1.0开发板试用】简介、环境搭建、工程测试

    RA-Eco-RA2E1-48PIN-V1.0开发板试用】简介、环境搭建、工程测试 本文主要介绍了 RA-Eco-RA2E1-48PIN-V1.0 开发板,包括 PCB 各模块及功能、开发板原理图
    发表于 11-05 15:47

    怎么在TMDSEVM6678: 6678自带的FFT接口和CUDA提供CUFFT函数库选择?

    请教一下gpgpu上包括4个Riscv cpu和一个DPU, 没有6678,要替换原来信号处理用的6678,该怎么在6678自带的FFT接口和CUDA提供CUFFT函数库选择?
    发表于 09-27 07:20

    利用vMeasure eMobilityAnalyzer函数库分析电机性能

    本文利用vMeasure eMobilityAnalyzer函数库中的克拉克变换功能,将三相电机定子电流或电压转换为两相电流或电压,帮助工程师更有效地、可视化地分析电机的行为并对控制算法进行针对性的优化,从而提高电机的性能和效率。
    的头像 发表于 09-13 11:37 385次阅读
    利用vMeasure eMobilityAnalyzer<b class='flag-5'>函数库</b>分析电机性能

    RA6T2的16位模数转换器操作 [12] 应用项目简介

    RA6T2的16位模数转换器操作 [12] 应用项目简介
    的头像 发表于 06-10 08:06 346次阅读
    <b class='flag-5'>RA</b>6T2的16位模数转换器操作 [12] 应用项目<b class='flag-5'>简介</b>

    雅特力AT32 IEC 60730 Class B软件使用指南

    特殊的危险。本文主要介绍针对其中B类软件而开发的CLASSB软件包,安全相关代码基本是独立于芯片外设IP,软件包中各型号的example都是基于AT-START开
    的头像 发表于 05-20 08:15 1691次阅读
    雅特力AT32 IEC 60730 <b class='flag-5'>Class</b> <b class='flag-5'>B</b>软件<b class='flag-5'>库</b>使用指南

    使用STM32FEBKC6T6开发FOC,如何使用函数库

    本人使用STM32FEBKC6T6 开发FOC,但是,不知道如何使用她的函数库, 在ST Motor Control Workbench 4.0中生成《stm32f30x_MC_it.c文件》里面
    发表于 05-15 08:22

    RA2在e² studio环境生成LIB操作

    RA2在e² studio环境生成LIB操作
    的头像 发表于 05-15 08:06 472次阅读
    <b class='flag-5'>RA</b>2在e² studio环境生成LIB<b class='flag-5'>库</b>操作

    CMSIS的DSP数字信号处理函数库应用

    为了使用DSP数据,需要在IAR开发环境中,对工程文件选项General中的连接设置中,选择CMSIS DSP。在程序中增加arm math头文件即可。
    发表于 03-25 10:52 1433次阅读
    CMSIS的DSP数字信号处理<b class='flag-5'>函数库</b>应用

    TC264有矩阵或三角函数的加速吗?

    在 illd 上搜索了很长时间,并使用了 Google 等搜索引擎。我似乎没有找到矩阵或相关的三角函数库。不过,我倒是找到了一个类似于 atan2 的反正切加速函数
    发表于 03-05 07:47

    在开源的hbird-e-sdk中,怎么用软件实现三角函数的计算,有没有数学函数库可以调用?

    想请问在开源的hbird-e-sdk中,怎么用软件实现三角函数的计算,有没有数学函数库可以调用?类似于“math.h”
    发表于 01-10 07:06

    博途用户自定义的使用

    博途官方提供了很多,比如:基本函数库、通信、安全、驱动等等,用户可以使用中的
    的头像 发表于 12-25 10:08 914次阅读
    博途用户自定义<b class='flag-5'>库</b>的使用