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.

[参考译文] TMS320F28035:CPU 软重启

Guru**** 664280 points
Other Parts Discussed in Thread: TMDSDOCK28035, TMDSCNCD28035
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1283867/tms320f28035-cpu-soft-restart

器件型号:TMS320F28035
主题中讨论的其他器件:TMDSCNCD28035、TMDSDOCK28035

您好、TI 团队。

我对从代码中软重启 CPU 有疑问。 从代码中重新启动 CPU 的最好方法是什么?

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

    执行此操作的最简单方法是将"错误"密钥值写入 WDCR 寄存器、这会立即复位器件。 请参阅 www.ti.com/lit/SPRUI10的第89页

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

    您好、 。 感谢您的信息。 因此、为了使看门狗在我的项目中完美运行、首先我需要禁用看门狗、下一个初始化外设、下一个启用看门狗、然后我可以使用以下示例:

        EALLOW;
        SysCtrlRegs.WDCR= 0x0068;
        EDIS;

    我对吗?

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

    无需在以后禁用和启用 WD。 您可以选择不禁用 WD、但定期对其进行维护、以防止其复位器件。 可以通过两种方法进行软重启:

    1. 不要维修 WD。 也就是说、允许 WD 计数器溢出、这将复位器件。
    2. 向 WDCR.WDCK 字段写入一个"错误"值、这将立即复位器件。 值0x68只会禁用 WD。 您可以写入0x00以复位器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 。 好的、我采用了 example_280s Sci_Echoback 示例、并输入代码:

        EALLOW;
        SysCtrlRegs.WDCR= 0x0000;
        EDIS;

    在接收到"x"字符之后。 但 MCU 会暂停、但不会重新启动。

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

    如果连接到 CCS 调试器、请在独立模式下尝试。

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

    好的、我从 CSS 调试器断开连接、但 MCU 仍然只是停止、而不是重新启动。

    我正在将 TMDSCNCD28035 F28035 Piccolo controlCARD 与 TMDSDOCK28035 F28035 Piccolo 实验板套件配合使用。

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

    我不明白您所谓的"暂停"是什么意思。 器件可能"暂停"的唯一方式是将器件置于三种低功耗模式(空闲、待机或停机)之一。 否则、只要您在为器件供电(和提供时钟)、器件就必须在做 一些东西 。 例如、如果您只是为闪存中没有内容的器件加电、WD 会超时并持续复位器件。 您可以在-XRS 引脚中看到脉冲。 如果您不及时处理 WD 或写入错误的密钥值、器件 将会 获取重置。 此问题可能在 如何 您确定复位已置位 WD。 这是你必须在代码中处理的事情、恐怕我无法在代码中为你提供帮助。

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

    您好、 。 我来解释一下。 我采用 Example_280S Sci_Echoback 示例、当我通过 SCI 接收到一条"reset"命令时、我想实现软复位功能。 但是当我放:

        EALLOW;
        SysCtrlRegs.WDCR= 0x0000;
        EDIS;

    CPU 不会重新启动、但不能使用此 SCI 模块-不发送结束接收任何数据。

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

    我建议您编写一个单独的代码来测试它。 复位结束后、禁用 WD 并切换 GPIO 引脚。 在长延迟后、启用 WD 并将0x0000写入 WDCR。 这将重置器件、并且周期应反复不断。