介紹
RA系列單片機是瑞薩推出的32位ARM單片機,在某些產品中需要通過安規認證,如IEC60730(CLASS B),芯片硬件本身已經通過IEC60730認證了,今天主要說RA芯片軟件自檢函數庫。
主要內容
RA的IEC60730例程可以識別下方二維碼或復制下方網址在瀏覽器中打開進入瑞薩官網直接獲取(需登錄官網):
![f55ffaf2-96e6-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/10/wKgaomToKI6AfXoKAAAE908tWm4460.png)
https://www.renesas.cn/cn/zh/document/scd/ra-family-iec-6073060335-self-test-library-ra-mcu-cm4cm23
目前包括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模塊,需排除,否則編譯報錯。
![f56f4048-96e6-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/10/wKgaomToKI6ADgjNAAJrv7rKOLY206.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](https://file1.elecfans.com//web2/M00/A0/10/wKgaomToKI6AG49RAAFK5yKZ-J0349.png)
圖2
4
設置一個周期性中斷調用CLASS B周期性自檢,周期時間長短可根據安規公司要求調整。
按照上述步驟作者成功編寫移植了瑞薩官方提供的函數庫,并編譯通過無報錯,見圖3。
![f58d5696-96e6-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/10/wKgaomToKI-AdDRrAAK5QnNPCyU767.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](https://file1.elecfans.com//web2/M00/A0/10/wKgaomToKI-APqWaAAOFjJcmu28232.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](https://file1.elecfans.com//web2/M00/A0/10/wKgaomToKI-AEmouAABVqs1UF5E492.jpg)
圖5
結論
作者移植成功IEC60730安規認證庫發現上電初始化自檢大概需要70ms,且每隔一段時間會定時自檢各個模塊,其中最長的一次模塊自檢須用時長1.48ms,加入庫代碼時要考慮此時間長度是否對自身邏輯有無影響。注意循環測試中CPU自檢不應該被任何中斷打斷,鑒于CPU測試時間比較短(小于1mS),建議開始CPU測試之前關閉中斷、CPU測試完成后再打開中斷,若強行打斷CPU自檢會導致程序跑飛、棧溢出等嚴重后果。此外GPIO自檢會動作IO電平,對于大多數應用來說是不允許的,可跟安規公司溝通酌情添加此模塊自檢函數。
更多內容歡迎查看
RA生態工作室
![f5b79780-96e6-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/10/wKgaomToKI-AfCkvAAACsz8xKWw391.png)
https://www.ramcu.cn/
原文標題:RA CLASS B認證函數庫使用簡介
文章出處:【微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
146文章
17324瀏覽量
352657 -
瑞薩
+關注
關注
35文章
22310瀏覽量
86757
原文標題:RA CLASS B認證函數庫使用簡介
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
TimSort:一個在標準函數庫中廣泛使用的排序算法
**【RA-Eco-RA4E2-64PIN-V1.0開發板試用】+小白折騰瑞薩RA系列全過程01**
HAL庫的函數調用示例
常用SQL函數及其用法
【RA-Eco-RA2E1-48PIN-V1.0開發板試用】簡介、環境搭建、工程測試
怎么在TMDSEVM6678: 6678自帶的FFT接口和CUDA提供CUFFT函數庫選擇?
利用vMeasure eMobilityAnalyzer函數庫分析電機性能
![利用vMeasure eMobilityAnalyzer<b class='flag-5'>函數庫</b>分析電機性能](https://file1.elecfans.com/web2/M00/06/48/wKgZombjs1yABVQCAAARvr-FzZg829.jpg)
雅特力AT32 IEC 60730 Class B軟件庫使用指南
![雅特力AT32 IEC 60730 <b class='flag-5'>Class</b> <b class='flag-5'>B</b>軟件<b class='flag-5'>庫</b>使用指南](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
使用STM32FEBKC6T6開發FOC,如何使用函數庫?
CMSIS的DSP數字信號處理函數庫應用
![CMSIS的DSP數字信號處理<b class='flag-5'>函數庫</b>應用](https://file1.elecfans.com/web2/M00/C6/89/wKgaomYA57SAWp1AAABXjOBcrGk842.png)
評論