您好!
我想检测上一次 MCU 复位是否是由于看门狗造成的。 为此、我会在收到 UART 消息时诱导看门狗复位(启用看门狗、但从不对其进行服务)。 然后、我尝试通过 检查 WDCR 寄存器中的 WDFLAG 位是否= 1来检测复位。 但是、情况绝不是这样、即使我确实要使用看门狗复位 MCU 也是如此。 我是否会错过一些内容? 启用看门狗时、我还向 WDFLAG 写入1以清除之前锁存的状态。
作为替代方案、是否有任何在复位时未被清零的可写寄存器可用于此目的?
谢谢、
Aditya
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我想检测上一次 MCU 复位是否是由于看门狗造成的。 为此、我会在收到 UART 消息时诱导看门狗复位(启用看门狗、但从不对其进行服务)。 然后、我尝试通过 检查 WDCR 寄存器中的 WDFLAG 位是否= 1来检测复位。 但是、情况绝不是这样、即使我确实要使用看门狗复位 MCU 也是如此。 我是否会错过一些内容? 启用看门狗时、我还向 WDFLAG 写入1以清除之前锁存的状态。
作为替代方案、是否有任何在复位时未被清零的可写寄存器可用于此目的?
谢谢、
Aditya
您好、Haresh、
感谢您提供更多信息。 虽然它非常有用、但 它并未完全解决我们所看到的内容。 在本例中、从未设置 WDFLAG。 我将能够在复位时发布 XRS 引脚的示波器图(希望在星期一)以验证时序。
我对您的链接感到困惑的一部分是、如果 XRS 引脚在我们的板上保持悬空、是否预计会检测到看门狗复位。 我的理解是有一个内部上拉电阻器、但我不知道它的时序是什么。
谢谢、
Aditya
XRS 的上升速度可能不够快。 请发布-XRS 的示波器捕获。
[引用]我对您的链接感到困惑的部分是、如果 XRS 引脚在我们的板上保持悬空、是否预计会检测到看门狗复位。 [/报价]
如果该引脚保持悬空、它应快速上升、因此应检测到 WD 复位。 请发布连接到-XRS 引脚的电路原理图。 您可以通过好友请求将其私下发送给我。
[引述]我的理解是有一个内部上拉电阻器、但我不知道时间是多少。 [/报价]
内部 PU 是弱 PU。 该值在数据表中给出。
只应在延迟后检查 WDFLAG 位;不应在 WD 初始复位后立即检查。 以下内容非常重要、也是我在另一篇文章中讲的内容:"请注意、WDFLAG 仅在 WDRST 失效(变为高电平)后(8192 * 4)个 OSCLK 周期后进行设置。 由于 WDRST 的宽度为512个 OSCLK 周期、因此在 WDRST 开始后(当它变为低电平时)、WDFLAG 标志将被设定~3.7ms。" 如果您过早读取、则可能看不到 WDFLAG 集。 仔细检查随附的测试用例。