新闻动态
NEWS FEED
您现在的位置:
首页
-
-
-
系统看门狗WDOG1在i.MX RT系统启动中的应用及影响

系统看门狗WDOG1在i.MX RT系统启动中的应用及影响

  • 分类:行业动态
  • 作者:痞子衡@NXP
  • 来源: 恩智浦MCU加油站
  • 发布时间:2022-09-28 00:42
  • 访问量:

【概要描述】看门狗模块(WDOG)在MCU应用里可以说是非常基础的功能模块。对于一个产品级的应用程序,如果它没有使能主控内部的看门狗模块,一般都不能算是一个合格的软件设计。 有的时候,硬件工程师觉得片内看门狗不可靠,还会在板级设计里再加入外部看门狗电路。 总之看门狗对于产品工作稳定性具有很重要的意义。 最近有一个i.MX RT客户注意到了芯片手册System Boot章节里提及了WDOG应用,想使能这个功能,并且要确认该功能真实生效以及评估对后续应用程序的影响。

系统看门狗WDOG1在i.MX RT系统启动中的应用及影响

【概要描述】看门狗模块(WDOG)在MCU应用里可以说是非常基础的功能模块。对于一个产品级的应用程序,如果它没有使能主控内部的看门狗模块,一般都不能算是一个合格的软件设计。
有的时候,硬件工程师觉得片内看门狗不可靠,还会在板级设计里再加入外部看门狗电路。
总之看门狗对于产品工作稳定性具有很重要的意义。
最近有一个i.MX RT客户注意到了芯片手册System Boot章节里提及了WDOG应用,想使能这个功能,并且要确认该功能真实生效以及评估对后续应用程序的影响。

  • 分类:行业动态
  • 作者:痞子衡@NXP
  • 来源: 恩智浦MCU加油站
  • 发布时间:2022-09-28 00:42
  • 访问量:
详情

看门狗模块(WDOG)在MCU应用里可以说是非常基础的功能模块。对于一个产品级的应用程序,如果它没有使能主控内部的看门狗模块,一般都不能算是一个合格的软件设计。

有的时候,硬件工程师觉得片内看门狗不可靠,还会在板级设计里再加入外部看门狗电路。

总之看门狗对于产品工作稳定性具有很重要的意义。

最近有一个i.MX RT客户注意到了芯片手册System Boot章节里提及了WDOG应用,想使能这个功能,并且要确认该功能真实生效以及评估对后续应用程序的影响。

借助客户的问题,我们来细聊下这个话题。

 

一、WDOG模块简介

首先我们来了解一下i.MX RT1xxx系列内部的WDOG模块,在i.MX RT1xxx内部一共有三个WDOG模块(WDOG1/2/3),虽然WDOG本质上就是个特殊功能定时器,但因为芯片设计时为其赋予的超时触发行为不同,所以其应用场合并不一样。

1.1 系统看门狗WDOG1/2

WDOG1和WDOG2属于系统看门狗,前者用于系统级复位(产生WDOG_RESET_B_DEB信号给SRC模块)防止系统发生异常,后者用于系统SNVS域安全警报(不会产生复位效果)。

不过从模块寄存器角度,WDOG1和WDOG2是一样的,因此除了超时触发行为外,它们其余方面特性是一样的:

 

  1. 模块内部两个计数时钟源是固定的,来自ipg_clk_32k以及anatop_xtal32k_clk 。

  2. 模块内部8bit定时器(Time-Out Counter)用于产生WDOG_RESET_B_DEB复位信号,计时精度固定为0.5秒,超时可设范围为0.5秒到128秒。

  3. 块内部定时器(Power Down Counter)用于产生对外输出的复位信号WDOG_B,其超时时间固定为16秒。

  4. 模块对外输出的信号最多有三个: WDOG_RST_B_DEB、WDOG_B、WDOG_ANY(仅WDOG1)。

  5. 模块使能信号WDOGx->WCR[WDE]可多次设置(并不是一次复位期间仅可write one once)。

  6. 模块配置寄存器与定时器计数值可直接修改。

  7. 模块Time-Out Counter默认是关闭的,Power Down Counter默认是开启的。

1.2 内核看门狗WDOG3(4)

WDOG3有时候又叫RTWDOG(对于i.MX RT1170,还存在用于默认CM4从核的WDOG4),属于内核看门狗,主要用于复位内核,防止程序陷入死循环。其模块寄存器跟WDOG1/2完全不同,更接近于一般的定时器模块设计:

1. 模块内部计数时钟源有四种选择,Bus clock / LPO clock / INTCLK / ERCLK 。

2. 模块内部16bit定时器(Time-Out Counter)用于产生内核复位信号。

3. 模块使能信号WDOGx->CS[EN]可多次设置(但是其属于write-once属性)。

4. 模块配置寄存器write-once bits与定时器计数值需要特殊unlock时序才可以修改。

5. 模块Time-Out Counter默认是开启的。

 

二、系统ROM里对WDOG的使用

i.MX RT1xxx系列芯片上电默认都是先执行系统BootROM,在BootROM里会有对看门狗的处理。默认情况下BootROM是不启用看门狗做代码执行守护的,只有当用户烧写了指定的eFuse位,看门狗功能才会生效。BootROM并没有使用默认开启的 WDOG3,而是将其关闭并打开了WDOG1作为看门狗。

2.1 看门狗使能

i.MX RT10xx系列芯片BootROM看门狗在eFuse里配置如下,包含eFuse 0x460[21]使能位与eFuse 0x6D0[15:13]超时时间设置。

i.MX RT1160/1170 芯片BootROM看门狗在eFuse里配置如下,包含eFuse 0x9A0[15]使能位与eFuse 0x9B0[2:0]超时时间设置,以及多了eFuse 0x9B0[5:3]关于WDOG_B外部信号脚选择设置。

 

2.2 看门狗作用

对于i.MX RT10xx系列,BootROM看门狗主要用于Serial Downloader分支程序下(SDP 模式BT_MODE = 2'b01,或者Device Boot模式BT_MODE = 2'bx0下启动失败进入了Serial Downloader)检测与主机通讯情况,只要在设置的超时时间里没有通信交互行为,看门狗就会复位整个系统(并不是单次通信就可以的,任意超时时间内都得保持交互)。如果在Device Boot模式下能够正常启动程序,则看门狗不会被使能。

对于i.MX RT1160/1170系列,BootROM看门狗不仅在Serial Downloader分支程序中有效,其在Device Boot模式下(BT_MODE = 2'bx0)也同样被使能了,这样做主要有两个用意:

  1. 如果因板级电路干扰导致首次启动程序失败,BootROM正常是直接跳转到了SDP模式不会再做启动程序行为。但是使能了看门狗,则在SDP模式下等待超时时间后系统复位会重新尝试启动程序,这样不断尝试直到板级干扰消失。

  2. 如果启动程序成功,BootROM会直接跳转到目标应用程序,但无法检验目标程序是否能够正常执行。但是使能了看门狗,如果应用程序不对看门狗做有效处理,系统还是会复位回来,这样相当于做了应用程序是否执行的验证。

 

三、使能WDOG后对i.MX RT开发的影响

现在回到文章开头提到的客户问题,如何判断BootROM中WDOG已经生效了,这个其实特别简单,在SDP模式下插上USB线,在资源管理器里观察是不是有HID设备每隔一段时间就会重新枚举一次,没错就是WDOG捣的鬼。

那么对于应用程序的开发,有什么注意事项呢?对于i.MX RT10xx其实没有任何影响,而对于i.MX RT1160/1170,则必须在应用程序里增加对WDOG1的处理。

在恩智浦提供的头文件system_MIMXRT1xxx.c文件里SystemInit()函数中其实有关于看门狗相关代码,默认是将全部的看门狗都关一遍(DISABLE_WDOG=1),这部分代码对于i.MX RT10xx程序是可以不做的,但是对于i.MX RT1160/1170就必须要做了。

关注威旺达网站及微信公众号,了解 NXP MCU更多信息.

 

关键词:

扫二维码用手机看

相关新闻

      i.MX 95实力打造:经济高效、安全可靠的电子驾舱解决方案!

i.MX 95实力打造:经济高效、安全可靠的电子驾舱解决方案!

微电子和软件技术的快速发展正在深刻地改变车载娱乐中控和安全系统设计,重新定义驾驶体验。
2024-11-18
专为边缘AI打造的i.MX RT700跨界MCU,到底强在哪?

专为边缘AI打造的i.MX RT700跨界MCU,到底强在哪?

i.MX RT700系列提供了高性能、高集成度、先进功能和高能效的优化组合,为支持智能AI的边缘端设备赋能,例如可穿戴设备、消费电子医疗设备、智能家居设备和HMI设备。
2024-11-18

20多年专注半导体

为国内各行业广大用户提供高品质的NXP半导体产品

SINCE 1997

 为您量身定制解决方案

联系我们

电话

全国统一服务热线

地址:北京市朝阳区广渠路15号金茂府小区23号院

公众号

威旺达公众号

Copyright © 2022  北京威旺达电子科技有限责任公司  All rights reserved