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.

[参考译文] TMS320F28379D:禁用看门狗时看门狗复位的原因

Guru**** 2546100 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1321788/tms320f28379d-watchdog-reset-reason-with-watchdog-disabled

器件型号:TMS320F28379D

您好!

我有一个应用、有时 MCU 会被复位。 尝试调查我正在使用  SYSCTL_getResetCASE  停止。 MCU 报告了看门狗复位(WDRSn)、但在我的应用中禁用了看门狗(我在两个 CPU 中都仔细检查了这一点)。 这怎么可能呢?

在另一方面,我注意到,  SYSCTL_getResetCASE  该函数从不返回1 (POR 位启用)。 我认为它应该在每个下电上电时启用、所以我不确定能否信任函数的返回值。

此致、

路易斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Luis,

       您能在 CCS 中显示 RESC 寄存器吗? 我想知道寄存器保存的值是多少。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Luis,

       我在器件上尝试过此操作、在上电后确实看到了 WDRSn 位的设置、但没有看到 POR 位。 让我来和我们的设计团队确认一下。 需要几天时间才能做出响应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hareesh。

    这是我从 RESC 寄存器读取的内容。  

    请注意、在看门狗被禁用时 WDRSn 引脚被置位(在两个 CPU 中)

    目前、最重要的是确定  在我们不使用看门狗时如何触发 WDRSn。

    感谢您的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Luis,

             让我们将这一员额分为两类:

    1. 当 WD 实际禁用时、会设置 WDRSn 位。 请注意、我也看到在上电后会设置该位。 在初始化过程中、是否清除此位?
    2. 未设置 POR 位。 与我们的设计团队一起了解这一点。

        

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luis:

    您能否检查 RESC 在刚刚连接器件时是否已设置 WDRSn 位?

    如果有、可以向 RESCCLR 寄存器写1来清零 WDRSn 的 RESC 位。

    WDRSn 位只能通过 POR 或如果我们向 CLR 寄存器写入值1来清除。  

    并尝试运行您的应用、然后查看 MCU 是否仍因 WDRSn 而复位。

    谢谢

    阿斯温

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Aswin、

    是的、我可以确认在启动应用程序时该位始终为低电平、而仅在检测到复位后该位才设置为高电平。 每次执行测试之间始终有一个下电上电操作、因此 WDRSn 位一直被一个 POR 清除。

    谢谢

    路易斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luis:

    从图表中可以明显看出、有了 WDRSn 的可能性(TRM 中的第3.9节看门狗计时器)

    1) 1)默认情况下将启用看门狗、因此如果您 提供错误的密钥、则在禁用时会提供 WDRSn。

    2)如果计数器已过期。

    3) 3)当 WDCNTR 小于 WDWCR 时、任何对看门狗进行维护的尝试都会触发看门狗中断或复位。 (请查看第3.9.2节"最小窗口检查")

    是否可以针对该问题进行进一步调试、比如您可以进入看看哪个部分导致了复位?

    以便我们能有更多的清晰度。

    谢谢

    阿斯温

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Aswin、

    看门狗在初始化期间被禁用、我们从不对其进行维护、清除它或执行任何与之相关的操作。 该问题是随机出现的、大约5%的下电上电周期会发生。 我想如果看门狗出现问题、我们会更频繁地看到这个问题。

    此外、还要提醒 WDDIS 位设置为1、因此在查看图3-13后、我认为不应该触发看门狗  

    这是禁用看门狗的文件、

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此问题是随机的,大约发生5%的电源周期。

    上述特性使得调试极具挑战性。 这是我们最畅销的器件之一、至今已交付数百万个器件。 这是 以确保不会在该器件中发现任何问题。 只是5%的故障率问题到目前为止会引起我们的注意。

    1. 在初始化过程中、我认为您将 RESC 寄存器中的 WDRS 位清零。 您是否会回读该寄存器以确保您的清零操作顺利进行?
    2. 这种问题出现在多少个电路板上?
    3. 在独立模式下、即未连接 JTAG 连接器时、代码是否能够正常运行?
    4. 假设在 TI 设计的 controlCARD/LaunchPad 等电路板中运行该应用是实用/可行的、那么这些电路板中会出现问题吗?
    5. XRS 引脚是否由开漏器件驱动?
    6. 您是否愿意私下与我们分享原理图
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Luis,

       似乎 WD 正在您的应用程序中重新启用。 可能发生这种情况的一个原因是当 ITRAP 被置为有效时。 ITRAP ISR (在引导 ROM 中)可启用 WD。 你需要调查为什么 ITRAP 发生在你的系统。 一个原因是非法的操作码。 您的系统可能会受到噪声的影响、这可能会破坏程序计数器、从而导致器件执行产生 ITRAP 的垃圾处理。 还可能某些 RAM 位置损坏、从而出现类似的情况。 噪声的可能性更大、因为这种情况只有5%的时间发生。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我注意到  SYSCTL_getResetCASE  函数从不返回1 (启用 POR 位)。

    事实证明、引导 ROM 清除这个位。 我将提交一个请求单、以便在 TRM 中添加此说明。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hareesh。

    这是很好的了解! 噪音是我们的主要怀疑之一,但当故障发生时,我们无法掌握。  我们对电源的监控毫无希望。 MCU 是否可能受到其他来源的噪声的影响? 时钟、GPIO 等?

    感谢您的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Luis,

      我将关闭该帖子、因为我们将离线讨论此问题。