一、 概述
本文將會介紹 SemiDrive E3 MCAL Wdg 模塊的基本配置,並且會結合實際操作的介紹,幫助新手快速了解並掌握這個模塊的使用,文中的 MCAL 是基於 PTG3.0 的版本,開發板是官方的 E3640 網關板。
二、 Wdg 模塊的主要配置
Wdg 模塊的配置主要有兩大部分,一個是通用配置,另一個是針對每個 Wdg 實例的配置,我們先看通用配置,具體配置如圖 2.1 所示。
圖 2.1 Wdg 模塊通用配置
關於以上配置選項的說明如下:
- WdgDevErrorDetect:勾選決定是否使能 Wdg 模塊的 Dev 錯誤檢測功能
- WdgDisableAllowed:勾選決定是否允許關閉看門狗功能
- WdgInitialTimeout:配置看門狗的初始超時時間,單位為秒,最大可以配置為 65.535 秒
- WdgMaxTimeout:配置看門狗的最大超時時間,單位為秒,最大可以配置為 65.535 秒,Det 檢查時會用到。
- WdgRunArea,該功能目前不支持,不需配置。
接著針對每個 Wdg 實例進行配置,首先添加 Wdg 實際,操作如圖 2.2 所示。
圖 2.2 添加 Wdg 實例
接著如圖 2.3 所示,進入 Wdg 具體實例的配置界面。
圖 2.3 進入 Wdg 實例配置界面
如圖 2.4 和圖 2.5 所示為 Wdg 實例的配置界面,
圖 2.4 Wdg 模塊實例配置一
圖 2.5 Wdg 模塊實例配置二
具體每個配置項的作用如下:
- WdgChannelId:這個是自增的 ID,用戶無需修改,改了會報錯
- WdgDefaultMode:該 Wdg 模塊調用初始化接口後的默認工作模式,總共有三種可以選擇,WDGIF_FAST_MODE 和 WDGIF_SLOW_MODE 這兩種模式本質上沒有區別,對應兩套配置,這兩套配置的參數都是獨立的,具體如圖 2.5 所示。看門狗初始化後超時時間參數還是 WdgInitialTimeout 配置的時間,如果需要使用 Fast/Slow 模式下的時間參數,可以調用 Wdg_140_Instance(x)_Wdg_SetMode() 或者 Wdg_140_Instance(x)_SetTriggerCondition()。 除此之外還有 WDGIF_OFF_MODE,該模式會把超時值設置為 0,而 Wdg 是從 1 開始計數的,因此 0 永遠不能達到,故不會發生超時。
- WdgInstanceIndex:選擇使用哪個看門狗
- WdgTimeoutNotification:看門狗的中斷回調函數
- WdgExternalSignalApi:可以配置一個 Gpio,超時後電平從高拉到低
- WdgClockFrequency:Wdg 的時鐘,為 24MHz,不可修改
- WdgTimeoutPreiod:Fast/Slow 模式下的超時時間,單位為 ms。
- WdgTimeoutBehavior:Wdg 模塊超時後的行為,可以選擇復位、中斷、或者兩者都執行。
- WdgTiggerCondition:可以配置為 NO_CONDITION_MODE 或者 WINDOW_BASED_MODE,前者為普通模式,後者為窗口模式。
- WdgRefleshTime:用來配置窗口模式的時間,超過這個值才可以進行餵狗,單位為 ms,最大可以配置為 65535。
三、 實際操作
下面我們基於 MCAL 3.0 的例程來進行 Wdg 模塊的驗證,基於我們上面的 Wdg 模塊配置,我們配置 Wdg4 的超時時間為 1200 ms,觸發動作為中斷,我們在例程中對 Wdg4 進行初始化並且設置為 Fast 模式,然後不進行餵狗,這樣的話會每 1.2 s 進入一次中斷函數,我們在中斷回調函數中進行列印,具體測試代碼如圖 3.1 所示。
圖 3.1 看門狗的測試代碼
接著進行實際操作,將代碼燒錄到板子後啟動運行,在串口終端中輸入命令“runcase 1500”,此時會運行 sint32_Wdg4_irq_test1 這個函數,可以看到串口會每隔 1.2 s 列印一次 WDT4_IRQ,如圖 3.2 所示。
圖 3.2 串口列印
四、 使用注意事項
E3 的 Wdg 模塊在使用上有以下注意事項:
- E3 系列 MCU 最多支持 7 個 WatchDog,其中 WatchDog1~6 支持中斷和重啟,WatchDog8 只支持中斷。
- 當觸發重啟操作時,除了 RTC 域以外其他域全部重新上電。
- 當 WdgTimeoutBehavior 模式選擇為 Both 時,在系統重啟前會先觸發中斷,中斷和重啟之間的間隔是固定的,大約 7 ms。
- 每個看門狗只允許在一個核中運行,禁止調用其他核的看門狗。
- 在窗口模式下,如果沒有在窗口內餵狗會失敗,並且沒有提示信息。
- 如果某路看門狗未配置,禁止調用這路看門狗的任何接口
- Wdg 的時鐘取決於 FS_24M 的配置,如果配置為 RC,看門狗時鐘為 RC 24M,如果配置為 FS_24M,則看門狗時鐘為外部晶振 24M。
五、 參考資料
1.《Semidrive_Wdg_User_Manual.pdf》,2022.05
2.《SemiDrive_E3_MCAL_User_Guide_Rev03.00.pdf》,2023.08
評論