介紹
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電平,對于大多數應用來說是不允許的,可跟安規公司溝通酌情添加此模塊自檢函數。
-
RA
+關注
關注
0文章
19瀏覽量
24678 -
Class
+關注
關注
0文章
53瀏覽量
19730 -
函數庫
+關注
關注
1文章
84瀏覽量
32433
發布評論請先 登錄
相關推薦
評論