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.

[参考译文] MSP430F5310:退出 LPM3后的器件看门狗

Guru**** 2391415 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/984908/msp430f5310-device-watchdogs-after-exiting-lpm3

器件型号:MSP430F5310

你(们)好。

我尝试运行一段相当简单的代码、每100mS 脉冲一次 IO、然后进入 LPM3。

但每次运行它时、都会发生看门狗复位。 随附了代码。

有人对我在这里可能会做什么有任何建议吗? 我把头发撕开了:-)

e2e.ti.com/.../test-code.c

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

    我看不到您禁用看门狗的位置。 这应该尽快完成、因为它在很短的时间间隔内完成复位。 如果不这样做、则在初始化硬件时很容易触发。 (更改 SMCLK 也可以减少可用时间。)

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

    尊敬的 David:  

    感谢您回来。  

    在主代码执行之前、看门狗在启动代码中停止(不包括在内)。  

    我想问题是否与我以24MHz 运行 DCOCLK/MCLK、然后进入 LPM3的情况有关?  

    此致

    Trevor

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

    > void __attribute__((interrupt)) hal_dimer0_a0_isr (void)

    我认为这需要类似于[参考 MSP430 GCC UG (SLAU646F)第5.1.1节]

    > void __attribute__((interrupt (TIMER0_A0_vector)) hal_dimer0_a0_isr (void)

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

    您好、Bruce、  

    中断触发正常、实际上代码在重置前按预期工作几秒钟。  

    谢谢

    Trevor

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

    只需添加一些更多信息...  

    1) 1)复位条件似乎也取决于电压、如果我在 MCU VDD 为3.3V 时运行代码、一切正常、但如果我在 MCU VDD 为2.9V 时执行相同的测试、MCU 会通过看门狗复位。  

    2) 2)如果我进入 LPM0而不是 LPM3、一切都很好(由于电流消耗过高、LPM0在我的应用中不是一个选项)

    3) 3)如果在每次主循环迭代进入 LPM3之前额外延迟~20us 都很好。

    如果我能尝试解决这个问题、有任何意见/建议、我将不胜感激?  

    此致

    Trevor

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

    当我在 F5529 (Mitto v7.3.2.154)上运行此代码时、它永远不会调用计时器 ISR、它会在大约一秒钟后复位。

    当我进行指定的更改时、它会一直运行(好的、几分钟后我感到无聊)。

    我不确定我们在做什么不同(超出显而易见的范围)。