一、前言
本文将介绍 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
更多资讯,请扫码关注我们!