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.

[参考译文] MSP430F5308:WDT 在首次触发 RST/NMI (BOR) 04事件或 BOR 02时错误地将其触发

Guru**** 2562120 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/601849/msp430f5308-wdt-incorrectly-fires-a-rst-nmi-bor-04-event-or-bor-02-the-the-first-time-it-is-triggered

器件型号:MSP430F5308

您好!  

客户希望将 SYSRSTIV 捕获为16、以确保他正确处理 WDT 事件。

但从冷启动开始、第一次触发 WDT (使用无限循环)时、器件会触发 BOR 而不是 PUC、SYSRSTIV 包含一个04 (RST/NMI)或一个02 I (BOR)代替预期的 WDT。  随后的触发器产生预期的16。

工程师花了几天时间对其进行故障排除、昨天我坐了2个小时提出了一些想法、但似乎没有什么帮助。

这是他的 WDT 控制:

  WDTCTL =(WDTPW | WDTCNTCL | WDTSSEL_ACLK | WDTIS_5); // WDT 间隔8192

有什么关于去哪里看的想法?

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

    他们的系统中是否启用了其他任何功能(可能是触发复位的其他功能?)
    我还想知道、它们观察 SYSRSTIV 值的方式是否会影响它。 SYSRSTIV 是一个读取敏感的、因为它是一个中断矢量-如果您读取它、它将清除最高优先级的源。 我怀疑4或2来自调试器、当您加载该部件或在调试器中进行复位时将其复位、并且直到您第一次检查该部件后、该值才会被清除。 我建议在代码开始时将值读取到一个变量中、然后查看变量-这样做的原因是在您第一次从调试器启动器件时清除初始 SYSRSTIV 值、 当它有一个高优先级复位源(例如4h)时。 如果在将 SYSRSTIV 读取到变量后有一个断点、那么在实际设置看门狗之前、第一次点击它就会在代码开始处、并且它应该从加载代码等中读出值 然后、当您第二次点击它时、看门狗超时应为16h。 这有道理吗?

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

    你的建议很完美! 他还发现他可以在 SYSRSTIV 中直接写入0、该值也起作用。 我将由他决定他最终将使用哪一个。

    他很早就想退出使用调试器、因为它会导致他的问题。

    非常感谢您的建议-为我们节省了大量的来回调试工作。

    此致、

    Blake
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很棒! 我很高兴能够提供帮助。 :-)
    -Katie