干货 | NXP KW38 COP 看门狗介绍

一、前言

        本文将介绍 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看门狗例程演示

演示前准备:

  1. MCUXpresso IDE 安装了 FRDM-KW38 SDK。MCUXpresso IDE 和 SDK 的下载,安装请参考《MCUXpresso_IDE_Installation_Guide》,在此不再赘述。
  2. 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

更多资讯,请扫码关注我们!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值