介绍
ra系列单片机是瑞萨推出的32位arm单片机,在某些产品中需要通过安规认证,如iec60730(class b),芯片硬件本身已经通过iec60730认证了,今天主要说ra芯片软件自检函数库。
目前包括ra2a1、ra2l1、ra4m1、ra6m1四个系列芯片的例程。mcu自检分为两个部分:初始化自检和循环调用自检,可以分为以下:cpu、rom、ram、clock、iwdt、voltage、adc、temperature、poe、gpio共10个部分,其中gpio检测需要动作gpio电位只能初始化时自检。
移植class b代码
1、将selftestlib(class b测试代码文件)和srec(crc脚本及其配置参数文件)加入自己工程中,并加入工程的includes目录中如下图1。并根据芯片的特性,排除不需要的模块,如ra2系列mcu没有fpu模块,需排除,否则编译报错。
图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。
图2
4、设置一个周期性中断调用class b周期性自检,周期时间长短可根据安规公司要求调整。
按照上述步骤作者成功编写移植了瑞萨官方提供的函数库,并编译通过无报错,见图3。
图3
class b各个模块自检介绍
cpu
cpu的测试方式为向寄存器内写入数据,然后读出校验其是否能正常写入、读出,在写入数据和完成后会有将之前工作数据入栈(push {r0-r7})和恢复数据的出栈指令(pop {r0-r7})等,运行cpu自检程序时,不能被其他程序打断,否则会发生数据运行错误。
rom
rom测试方式为引入外部脚本srec计算出crc值写入内存的最后一位并与ra单片机内部crc计算值对比,从而完成对rom的计算,外部脚本写入地址如u图4中所示。
图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
图5
结论
作者移植成功iec60730安规认证库发现上电初始化自检大概需要70ms,且每隔一段时间会定时自检各个模块,其中最长的一次模块自检须用时长1.48ms,加入库代码时要考虑此时间长度是否对自身逻辑有无影响。注意循环测试中cpu自检不应该被任何中断打断,鉴于cpu测试时间比较短(小于1ms),建议开始cpu测试之前关闭中断、cpu测试完成后再打开中断,若强行打断cpu自检会导致程序跑飞、栈溢出等严重后果。此外gpio自检会动作io电平,对于大多数应用来说是不允许的,可跟安规公司沟通酌情添加此模块自检函数。
赛普拉斯其USB-C? 芯片出货量突破10亿片大关
2012年职业排行榜:软件工程师高居榜首
碳化硅外延片全球首个SEMI国际标准发布,瀚天天成主导
中国铁塔在港公布2020年中期业绩
研发一套数字孪生应用平台
RA CLASS B认证函数库使用简介
智能语音电话机器人的强大功能都有哪些
如何在融合多种定位技术和通信技术的条件下实现万物互联
中国第一款自动驾驶车用ASIC芯片将于下周由地平线正式首发
iPhone12值得买吗?阻止我买iPhone12的理由
根系分析仪的用途以及功能特点的简单介绍
骁龙®X70 5G调制解调器或将实现全新里程碑
串联谐振过电压原因
苹果春季发布会将至 盘点iPhone8隐藏的五大黑科技
诺基亚宣布将要率先推出4G、5G网络切片方案
华为Mate9保时捷版明日开卖!正面保时捷Logo 配双充电头
边缘计算和云计算协同工作实现物联网效益最大化
深兰科技与西班牙BOMAPA集团签署AI工业解决方案合作协议
地线带电是什么原因
人工智能可帮助我们更快地实现利润增长