一、前言
本文將介紹 NXP KW38 晶片的 COP 看門狗模塊,KW38 無線 MCU 不僅集成了藍牙低功耗 5.0,還配備了 FlexCAN 模塊。這種設計使得 KW38 MCU 能夠輕鬆集成到汽車車載或工業 CAN通信網絡中。FlexCAN 模塊支持 CAN FD,從而提升了帶寬並降低了延遲。文中的例程使用 MCUXpresso IDE 作為開發環境,MCUXpresso IDE 為基於 Arm Cortex-M 內核的 NXP MCU 開發者提供了一個易於使用的 Eclipse 基礎開發環境,包括其通用,跨界和無線 MCU。MCUXpresso IDE 提供高級編輯、編譯和調試功能,並新增了 MCU 特定的調試視圖、代碼跟蹤和分析、多核調試以及集成配置工具。
看門狗是一個非常關鍵的硬體功能,用於監控嵌入式系統的運行狀態。它通過定期檢查系統的活動情況,如程序是否正常運行或是否出現故障,來確保系統的穩定性和可靠性。如果系統未能在預定時間內餵狗,看門狗將觸發復位信號,強制系統重新啟動,從而避免長時間的死機或無響應狀態。KW38 包含了一個 COP 看門狗模塊,COP(Computer operating properly )中文含義為計算機正常運行。接下來我們來介紹一下 COP 看門狗模塊。
二、COP 看門狗概述
COP 看門狗的目的是在應用軟體未按預期執行時強制系統復位。為了防止 COP 定時器觸發系統復位(當其啟用時),應用軟體必須定期復位 COP 計數器(餵狗)。如果應用程序出錯並未能在 COP 計數器超時之前復位計數器,則會生成系統復位,強制系統復位。
三、COP 看門狗寄存器
SIM_COPC 寄存器
BIT0(COPW):COPW=0 為標準模式,COPW=1 為窗口模式,在這個模式中窗口在超時時間的四分之三處打開,只有在這段時間內才能刷新 COP,如果在其他時間刷新 COP 都會導致系統復位。
BIT1(COPCLKS): COPCLKS=0 表示 COP 配置成短超時模式,COPCLKS=1 表示 COP 配置成長超時模式。
BIT2-3(COPT) : COPT 和 COPCLKS 欄位一起定義了 COP 超時時間,其中,BIT2-3=00 表示 COP 被禁用。BIT2-3=01 表示 2^5 個周期後將會觸發短超時或 2^13 個周期後觸髮長超時。BIT2-3=10 表示 2^8 個周期後將會觸發短超時或 2^16 個周期後觸髮長超時。BIT2-3=11 表示 2^10 個周期後將會觸發短超時或 2^18 個周期後觸髮長超時。
在任何復位之後,COP 看門狗都會被啟用。如果不需要在應用中再次使用 COP 看門狗,可以通過清除寄存器 SIM_COPC的[COPT] 位來禁用它。
BIT4(COPSTPEN): COPSTPEN=0 表示在停止模式中 COP 被禁用且計數器會被復位,COPSTPEN = 1 表示使能停止模式。
BIT5(COPDBGEN): COPDBGEN = 0 表示在 Debug 模式中 COP 會被禁用且計數器會復位。COPDBGEN=1 表示在 Debug 模式中 COP 使能。
BIT6-7(COPCLKSEL):用來選擇 COP 的時鐘源, COPCLKSEL=00 配置時鐘源為 LPOclock(1Hz),為默認配置。COPCLKSEL=01 配置時鐘源為 MCGIRCLK,COPCLKSEL=10 配置時鐘源為 OSCERCLK,COPCLKSEL=11 配置時鐘源為 Bus clock。
SIM_SRVCOP寄存器
通過在選定的超時時間內按順序向 COP(SIM_SRVCOP)寄存器地址寫入 0x55 和 0xAA(按此順序),可復位 COP 計數器。寫操作不會影響 SRVCOP 寄存器中的數據。一旦寫入序列完成,COP 超時時間將重新開始。如果程序未能在超時時間內執行此重啟,微控制器將復位。此外,如果向 SRVCOP 寄存器寫入除 0x55 或 0xAA 以外的任何值,微控制器將立即復位。
四、COP看門狗例程演示
演示前準備:
- MCUXpresso IDE 安裝了 FRDM-KW38 SDK。MCUXpresso IDE 和 SDK 的下載,安裝請參考《MCUXpresso_IDE_Installation_Guide》,在此不再贅述。
- WPI Foxe_KW38_Board。

下面是 COP 例程的 main 函數:

燒錄和列印結果如下:
晶片上電後,檢測看門狗復位,如果沒有檢測到看門狗復位則啟用 COP,執行 COP_Init 之後,SIM_COPC 寄存器默認值為 0xC,與上文一致。餵狗十次之後等待看門狗復位,看門狗復位之後重新執行 main,檢測到看門狗復位執行 COP_Disable,SIM_COPC 寄存器為 0x00 禁用 COP 與預期一致。
五、總結
通過本講,我們介紹 COP 看門狗重要的寄存器,演示了 COP 看門狗的應用實例,COP(Computer Operating Properly)看門狗是一個重要的功能,用於監控系統的運行狀態,以確保系統的穩定性和可靠性。它通過定期檢查系統的活動情況,防止程序跑飛或死循環等問題。本文大部分參考 NXP 官方提供的文檔希望能為您在學習和實踐中提供一些啟發 。
六、參考文檔
[1]MKW38A512RM.PDF
歡迎在博文下方留言評論,我們會及時回復您的問題。
如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com 作者:mose
更多資訊,請掃碼關注我們!
評論