痞子衡嵌入式:聊聊系统看门狗WDOG1在i

大家好,我是痞子子衡,一个正经的科技痞子。今天痞子衡就给大家介绍一下系统看门狗WDOG1在i中的应用和影响。系统启动。

软件看门狗模块(WDOG)可以说是MCU应用中非常基础的功能模块。对于生产级应用,如果没有启用主控内部的看门狗模块,一般不认为是合格的软件设计。有时,硬件工程师觉得软件看门狗不可靠,会在板级设计中增加外部看门狗电路。总之,看门狗对产品的稳定性意义重大。

最近一位i.MXRT客户注意到芯片手册Boot章节中提到了WDOG应用,想开启该功能,并确认该功能是否真正生效,并评估对后续应用的影响借助客户的提问,我们来详细聊聊这个话题。

一、WDOG模块介绍

首先,让我们看一下 i.d 内部的 WDOG 模块。系列。 i 中有三个 WDOG 模块。 3),虽然WDOG本质上是一个特殊功能的定时器,但由于芯片设计时赋予它不同的超时触发行为,它的应用是不同的。

1.@ >1 系统看门狗 WDOG1/2

WDOG1 和 WDOG2 是系统看门狗。前者用于系统级复位(产生信号给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 有时会被调用(对于 ,默认CM4从内核也有WDOG4),属于内核看门狗,主要用于复位内核,防止程序陷入死循环.它的模块寄存器与WDOG1/2完全不同,更接近一般的Timer模块设计:

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的使用

p>

我。系列芯片默认上电,系统先执行,看门狗在那里处理。默认情况下,看门狗作为代码执行保护不被启用,只有当用户编程时,看门狗功能只有在使用指定的 eFuse 位时才会生效。而不是使用默认启用的 WDOG3,而是将其关闭并打开 WDOG1 作为看门狗。

2.1 看门狗启用

我。系列芯片看门狗在eFuse中配置如下,包括eFuse 0x460[21]使能位和eFuse 0x6D0[15:13]超时设置。

i./1170芯片看门狗在eFuse中配置如下,包括eFuse 0x9A0[15]使能位和eFuse 0x9B0[2:0]超时设置,以及更多关于外部信号管脚选择的eFuse 0x9B0[5:3]设置。

2.2看门狗功能

对于 i。系列中,看门狗主要用于分在支持程序下(SDP模式=2’b01,或者Boot模式=2’bx0无法进入)来检测与主机的通信,只要内部没有通信交互设置超时时间,看门狗将重置整个系统(不可能进行单个通信,并且必须在任何超时时间内保持交互)。如果程序在Boot模式下可以正常启动,则看门狗不会开启。

对于i./1170系列,看门狗不仅在分支程序中有效,在Boot模式下也启用(= 2’bx0),主要包括两个意图:

三、启用WDOG后对i.MXRT开发的影响

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

那么开发应用有哪些注意事项呢?为我。其实并没有什么影响,而且对于i./1170,必须在应用程序中加入对WDOG1的处理。在NXP提供的头文件中file.c文件的()函数中其实有看门狗相关代码。默认关闭所有看门狗(=1),这部分代码对于i.程序可以省略,但是对于i./1170必须这样做。

至此,系统看门狗WDOG1在i中的应用。系统启动及其影响介绍完毕,掌声在哪里~~~

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容