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.

[参考译文] MSP430F5659:代码在启动时的某个时间挂起、

Guru**** 2538950 points
Other Parts Discussed in Thread: MSP430F5659

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/570118/msp430f5659-code-hangs-sometime-on-start-up

器件型号:MSP430F5659

您好!

我正在使用我的定制板处理基于 MSP430F5659的控制器、使用内部 SMCLK 8MHz 来执行 CPU

我有薄膜开关来打开/关闭。 电路板。

当我按下滤膜开关系统时、有时不能正确打开(没有代码运行)、即使微控制器也具有3.3V 的电源、这是检查的。

我不知道 代码损坏是发生还是重置矢量损坏,因为在电源期间执行错误的代码。  

是否有系统电源处理问题导致了这种情况? 由于电源已经可用、或者某些外部电路消耗更多电流、导致这种情况?  

由于我们具有24V 生成逻辑、因此定制板上也存在 USB 集线器。  

如何确保由于复位矢量损坏、任何 h/w 问题、系统电压未正确处理而导致该问题?

如果我再次按下、即在系统正常启动2-3次后、不会出现任何问题。

请帮助解决此问题、提前感谢

Nitesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在这种情况下、有两个最常见的问题:1)启动时的低级初始化所需的时间长于 WDT 周期并且系统永远不会退出 WDT 复位环路;2) VCC/freq 冲突- VCC 不在标称电平时过早增加系统时钟、这会导致 MCU 崩溃。

    1)要解决潜在问题1)、您应在代码中添加以下内容:
    int _low_level_init (void){
    WDTCTL = WDTPW + WDTHOLD;//停止 WDT (看门狗计时器)
    返回1;

    要在进入 main()并禁用 WDT 后立即解决问题2),您应在设置高频时钟之前添加一些延迟,如__delay_cycles (100000 )
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的输入、

    我忘记了在我的应用中使用 TI RTOS、并将单独的 WDT 任务用于处理外部 WDT、我在运行调度程序之前禁用内部 WDT。我将再检查一次是否禁用内部 WDT。
    即使我将尝试在设置 CLK 之前添加延迟。 对于 MSP430F5659控制器、我可以达到的最大频率为8MHz。
    根据示例代码、我设置了 CLK。

    是否需要更改 PMM 模式?

    请建议我、提前感谢
    Nitesh