0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

恩智浦MCU加油站 来源:恩智浦MCU加油站 作者:恩智浦MCU加油站 2022-06-09 09:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

看门狗模块(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是一样的,因此除了超时触发行为外,它们其余方面特性是一样的:

0fca1e1a-e78b-11ec-ba43-dac502259ad0.png

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

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

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

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

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

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

模块Time-Out Counter默认是关闭的,PowerDown Counter默认是开启的。

1.2 内核看门狗WDOG3(4)

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

10065ace-e78b-11ec-ba43-dac502259ad0.png

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

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

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

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

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

二、系统ROM里对WDOG的使用

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

2.1 看门狗使能

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

103e119e-e78b-11ec-ba43-dac502259ad0.png

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

108eab54-e78b-11ec-ba43-dac502259ad0.png

2.2 看门狗作用

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

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

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

如果启动程序成功,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就必须要做了。

10ce6cb2-e78b-11ec-ba43-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    608

    浏览量

    72624
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129207
  • 定时器
    +关注

    关注

    23

    文章

    3361

    浏览量

    121884

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

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中科芯CKS32F107XX系列MCU的独立看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),它们
    的头像 发表于 11-28 14:51 3620次阅读
    中科芯CKS32F107XX系列MCU的独立<b class='flag-5'>看门狗</b>介绍

    CW32A030看门狗和SysTick定时器

    CW32A030的看门狗有独立看门狗和窗口看门狗如下: 1、 独立看门狗(IWDT) 独立看门狗
    发表于 11-27 07:52

    i.MX RT1180实现EtherCAT+伺服控制的终极实践

    今天继续为大家介绍i.MX RT1180实现EtherCAT+伺服控制的终极实践:双电机控制与Ethercat资源使用。
    的头像 发表于 11-26 08:19 2866次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180实现EtherCAT+伺服控制的终极实践

    “喂狗”的艺术:看门狗不叫,才是系统

    看门狗选哪只好呢? 中间那只看起来不错。 咳咳搞错了,自动化项目中说的看门狗是PLC的看门狗,那这个有什么用呢?难道真的是看大门的
    的头像 发表于 11-25 10:50 115次阅读
    “喂狗”的艺术:<b class='flag-5'>看门狗</b>不叫,才是<b class='flag-5'>系统</b>好

    看门狗定时器、复位源、异常处理机制科普

    嵌入式开发系统一旦“跑飞”,工程师最怕的不是bug,而是程序卡死无人知。这时,芯片自身的自我保护机制就至关重要。看门狗、复位源和异常处理机制,是保证
    的头像 发表于 11-17 10:53 787次阅读
    <b class='flag-5'>看门狗</b>定时器、复位源、异常处理机制科普

    恩智浦i.MX RT1180跨界处理器如何选型

    i.MX RT1180 跨界处理器包含众多的型号,以满足客户对不同性能与价格的需求,今天就先给大家说说如何选型。
    的头像 发表于 09-28 14:01 2117次阅读
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180跨界处理器如何选型

    T113-I打造高可靠性嵌入式系统,1.12秒极限下的看门狗喂狗之法

    前言:嵌入式系统使用看门狗(Watchdog)是保障系统稳定性的重要机制之一,守护着系统
    的头像 发表于 08-22 08:30 1285次阅读
    T113-<b class='flag-5'>I</b>打造高可靠性嵌入式<b class='flag-5'>系统</b>,1.12秒极限下的<b class='flag-5'>看门狗</b>喂狗之法

    德州仪器TPS3436-Q1汽车级窗口看门狗定时器技术解析

    Texas Instruments TPS3436-Q1精密窗口看门狗定时器是一款超低功耗(250nA典型值)器件,提供可编程窗口看门狗定时器。TPS3436-Q1可提供具有多种功能的
    的头像 发表于 08-18 14:54 704次阅读
    德州仪器TPS3436-Q<b class='flag-5'>1</b>汽车级窗口<b class='flag-5'>看门狗</b>定时器技术解析

    TPS3430-Q1 具有可编程复位延迟的汽车级窗口看门狗定时器数据手册

    TPS3430-Q1 是一款独立的汽车窗口看门狗定时器,具有可编程看门狗窗口和可编程看门狗复位延迟,适用于汽车应用。TPS3430-Q1
    的头像 发表于 04-10 14:15 740次阅读
    TPS3430-Q<b class='flag-5'>1</b> 具有可编程复位延迟的汽车级窗口<b class='flag-5'>看门狗</b>定时器数据手册

    TPS3435-Q1 汽车级纳米静态电流精密超时看门狗定时器数据手册

    TPS3435-Q1 是一款超低功耗 (典型值为 250nA) 器件,提供可编程超时看门狗定时器。 TPS3435-Q1 提供高精度超时看门狗定时器,具有许多功能,适用于各种应用
    的头像 发表于 04-09 14:34 618次阅读
    TPS3435-Q<b class='flag-5'>1</b> 汽车级纳米静态电流精密超时<b class='flag-5'>看门狗</b>定时器数据手册

    i.MX RT 1176上正常运行代码时与使用IAR调试代码时存在一些奇怪的差异,为什么?

    ,并且调试时一切都按预期工作,但我发现当处理器正常启动时,它根本不使用重置向量的 SP 值,而是将其设置为(大约)0x20241d80。 我的理解是,i.MX
    发表于 03-17 07:26

    RT1170EVKB如何设置CM7和CM4内核来实现它们自己的看门狗外设?

    使用 WDOG1 进行系统复位,那么 CM4 的看门狗应该如何设置以防止意外的代码执行故障?CM4 应该使用 WDOG3/4 还是其他 (EWM)?
    发表于 03-17 07:03

    看门狗,你真的会用吗?

    嵌入式系统开发看门狗是一种重要的机制,用于程序异常时自动重启系统,保障其稳定性。本文将深入探讨看门
    的头像 发表于 03-12 11:37 4635次阅读
    <b class='flag-5'>看门狗</b>,你真的会用吗?

    安利给工程师!看门狗相关知识

    适当的参数来确保系统正常运行和故障场景下都能自动恢复。​ ▼ 看门狗简介 ▼ 看门狗(Watch Dog Timer,WDT) ——是一种监控电路,主要应用于嵌入式
    的头像 发表于 12-31 14:29 965次阅读
    安利给工程师!<b class='flag-5'>看门狗</b>相关知识

    抄作业!看门狗定时器必备知识

    具体示例解析,教你如何在一个简单的LuatOS项目中集成看门狗定时器,设置适当的参数来确保系统正常运行和故障场景下都能自动恢复。 Air201最新资料下载: www.air201.cn ▼
    的头像 发表于 12-30 14:44 1121次阅读
    抄作业!<b class='flag-5'>看门狗</b>定时器必备知识