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**** 2046040 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/566943/msp430f5659-software-reset-instruction-needed

器件型号:MSP430F5659

您好!

我在 MSP430F5659控制器的软件复位方面遇到问题。

任何人都可以帮助我 进行软复位、以便我的所有硬件以 正确的复位状态重新启动。  

我尝试跳转以重置向量  ->(void (*)() 0x0FFFE)();但 不起作用

已尝试 WDTCTL = 0;不工作

尝试跳转到主例程、但无法正常工作

请为我提供一个执行软复位的指南?

Nitesh

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

    您需要什么类型的复位、BOR、POR 或 PUC? 这些可由 PMMSWBOR、PMMSWPOR 和安全装置密码违规触发。

    要尽可能重新初始化硬件、请执行 BOR:

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

    您好!

    感谢您的快速回复。

    我正在查看 POR、以便我可以重新初始化所有低级硬件。 我在 MSP430F5659控制器的构建 USB 中使用。 因此、还需要重新启动 USB。

    请告诉我为何 WDT START 无法正常工作?

    我的复位代码

    USB_DISCONNECT ();

    USB_disable();

    SYSBSLC &=~(SYSBSLPE);

    //确保 BSL 期间没有触发应用程序中断

    _disable_interrupt ();

    WDT_A_START (WDT_A_BASE);

     

    执行时、我看到 USB 已断开连接、但系统无法重新启动。

    我将尝试您的建议并告知您

    再次感谢

    Nitesh

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

    我可以在没有任何问题的情况下重置系统、但我有疑问
    我正在使用 USB 设备如果我正在执行软复位、我看到如果我想再次与设备通信、我已经断开电缆连接
    软复位时。
    但在主例程中,我也在初始化 USB,仍然需要重新连接?
    请帮助。
    Nitesh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的代码中可能有问题。 您尚未显示的内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我在执行软复位之前调用 USB 断开连接、如上一条评论中所述。 还需要什么、  

    我怀疑 PC 端需要在 连接前关闭。

    由于我看到设备正在重新启动而没有任何问题、因此我只需要断开电缆连接并重新连接到 PC 才能启动。

    请告诉我紧急情况。

    谢谢

    Nitesh  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    猜测一下、但可能是断开连接和重新连接之间的时间太短、主机无法注意到这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、但是我在尝试固件升级时在我们的系统中观察到的另一件事、即将我的 PC 推至 BSL 地址(0x1000)。
    当我调用 Jump to 0x1000 (BSL)时,我将获得系统复位,因为我正在系统中使用外部看门狗。 为了解决这个问题、我们添加了针对外部 WDT 的禁用处理。 现在、如果我不禁用外部 WDT、我将得到复位、并且能够在复位后无任何问题地连接到 USB。

    对于我们所做的系统重置处理,我还怀疑主机无法按照您的说明识别设备的连接和断开连接。

    那么,在没有 WDT 禁用的情况下,我是否可以执行相同的跳转至0x1000? 这是一种处理方式吗?

    请分享您的想法、等待您的回复。

    提前感谢、

    Nitesh