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

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

3天内不再提示

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

RA生态工作室 2023-11-17 08:06 次阅读

介绍

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

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

移植CLASS B代码

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

wKgaomWeGAWAQevPAAJrv7rKOLY589.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。

wKgZomWeGA2Aa1YcAAFK5yKZ-J0920.png

图2

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

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

wKgaomWeGBeAWGTeAAK5QnNPCyU127.png

图3

CLASS B各个模块自检介绍

CPU

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

ROM

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

wKgZomWeGG-AVhWqAAOFjJcmu28251.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

wKgaomWeGHmAB0-bAABVqs1UF5E938.png

图5

结论

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

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

    关注

    0

    文章

    16

    浏览量

    24594
  • Class
    +关注

    关注

    0

    文章

    52

    浏览量

    19524
  • 函数库
    +关注

    关注

    1

    文章

    82

    浏览量

    32345
收藏 人收藏

    评论

    相关推荐

    求labview的函数库

    我的定时选板里没有这个绿色背景的时间计数器别人告诉我是需要下载相关的才行 哪位前辈能给我一个函数库我不知道怎么弄
    发表于 02-21 19:06

    matlab函数库查询手册

    matlab函数库查询手册
    发表于 05-05 21:41

    LV密码类应用函数库

    LV密码类应用函数库.zip
    发表于 08-11 16:28

    LabVIEW CRC校验函数库

    8周实战上手labview视觉项目编程特训营课程推荐:http://url.elecfans.com/u/f09b88b676包括CRC8、CRC16、CRC32函数库和应用演示程序。
    发表于 10-12 10:41

    函数库.dll问题

    labview能调用两个函数库吗?在标题栏能切换两个吗?
    发表于 03-31 14:24

    PIC的官方函数库在哪里

    PIC的官方函数库在哪里,MPLAB IDEXC16,是在编译器的安装目录下吗?想要用里面的函数,可是没有找到传说中的函数库
    发表于 05-18 10:34

    STM32固件函数库资料分享!

    函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函 数还包括每一个外设的驱动描述和应用实例。通过使用本固件函数库,无需深入掌握细节,用户也
    发表于 08-31 17:26

    研华板卡1245函数库

    第一次使用研华板卡,型号是1245L‘但是函数库加载不到Labview里面,研华的卡的函数库是从工具里面导入共享的吗’,但是解析出来的是空的,怎么办,各位大神求解
    发表于 09-04 08:22

    什么是STM32函数库

    文章目录- 自己写—构建库函数雏形1. 什么是 STM32 函数库2. 为什么采用来开发及学习?3. 实验:构建库函数雏形3.1 外设寄
    发表于 08-05 07:30

    使用函数库编程控制GPIO口输出

    使用函数库编程控制GPIO口输出看了网上许多人的代码以及各类开发板所带的例程,大多数使用的都是官方发布的函数库来编程,通过查询后发现,使用函数库来编程可以简化开发过程,并不需要追溯到各个寄存器,通过
    发表于 08-05 06:30

    为什么采用来开发及学习STM32函数库

    什么是STM32函数库?为什么采用来开发及学习STM32函数库呢?
    发表于 10-29 07:39

    Labview任意精度函数库(高精度函数库

    自己编写了一系列Labview任意精度函数库,现在提供给大家免费使用。任意精度的意思是能以任何精度计算。为了加快计算速度,部分函数目前限制1000位十进制计算,如果需要更高精度可另外联系作者。由于
    发表于 12-27 16:35

    ZNetAdv配置函数库数据手册

    ZNetAdv 配置函数库是支持致远电子有限公司以太网产品的通用配置函数库,此函数库 支 持 的 以 太 网 产 品 有 : ZNE-100, ZNE-100T, ZNE-100TI
    发表于 10-31 07:54

    怎么封装函数库

    怎么封装函数库,只留一些回调函数和引脚定义,完整程序不让人看
    发表于 11-08 08:12

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

    介绍 RA系列单片机是瑞萨推出的32位ARM单片机,在某些产品中需要通过安规认证,如IEC60730(CLASS B),芯片硬件本身已经通过IEC60730认证了,今天主要说
    的头像 发表于 01-18 12:25 1147次阅读