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.

[参考译文] TMS570LS3137:用 LPO 引导

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1396677/tms570ls3137-boot-with-lpo

器件型号:TMS570LS3137

工具与软件:

你(们)好

当外部振荡器出现故障而只使用集成的 LPO 时、是否能在 RST/PORRST 引导之后引导?

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

    您好、Varban、

    我认为在软件中我们不能做到这一点、  

    我记得、在其中一个旧线程中、他们确实将 OSCIN 引脚与 GND 短接、并进行了上电复位。 我们执行该操作后、OSCFAIL 将获得触发、且代码将在 LPO 下执行。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    在 Launchpad 套件上、我将执行以下操作:
    1) 1)使用外部振荡器启动 MCU -程序运行正常

    2) 2)我通过将 OSCIN 短接至 GND (通过跳线)引发振荡器故障-程序继续运行正常

    3) 3)我 用跳线在 OSCIN 和 GND 之间保持短路、然后:

    • 尝试 RST -程序无法启动
    • TRY PORRST -程序无法启动
    • 通过 USB 电缆重新启动-程序无法启动

    4) 4)我移除短路、在不进行 RST/PORRST 的情况下、观察振荡器开始工作、然后 再次将 OSCIN 短接至 GND、并重复第3点-程序仍然无法启动。

    IMHO 看起来好像如果我在这种情况下保持振荡器故障(OSCIN 到 GND)、MCU 以某种方式永远保持在复位状态。

    从中获取能量的唯一方法是从外部振荡器开始。

    我是否遗漏或误解了某件事?

    谢谢!

    Varban

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

    您好、Varban、

    您如何验证程序行为? 是否在调试模式下进行测试?

    程序未启动

    "那你打算怎么办?" 您如何能够知道它还没有开始?

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    [报价 userid="524805" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1396677/tms570ls3137-boot-with-lpo/5349454 #5349454"]

    您如何验证程序行为? 是否在调试模式下进行测试?

    [报价]
    我有一个简单程序、 通过 RTOS 任务使 LED 闪烁、还提供  通过 UART 发送单个字节的按钮按压中断。
    我正在调试模式之外进行测试、即使是在 刷写电路板后通过 USB 对电路板进行下电上电。
    [报价 userid="524805" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1396677/tms570ls3137-boot-with-lpo/5349454 #5349454"]

    "那你打算怎么办?" 您如何能够知道它还没有开始?

    [报价]
    一旦我在保持 OSCIN 短接至 GND (通过跳线)的同时执行 RST/PORRST、LED 从不会开始闪烁、按下按钮不会向 UART 发送任何内容。 在插入跳线的同时进行下电上电也具有完全相同的影响。
    我的结论是程序没有启动- Hercules 没有切换到 LPO、或者 CPU 仍然停留在复位状态。
    谢谢!
    Varban
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Varban、

    首先、您可以尝试在没有 RTOS 工程的情况下进行测试。

    在 while (1)中使一个简单的 LED 保持闪烁、没有其他内容。

    这是因为在振荡器发生故障后、UART 和其他外设将不工作、

    如图所示、UART 正由 VCLK1驱动、而波特率由 VCLK1驱动

    这个 VCLK1也来自 HCLK 或 GCLK

    因此、如果 HCLK 和 GCLK 由 PLL1驱动、在上述情况下它们大约为180Mhz、对吧?

    如果振荡器发生故障且 GCLK 由频率为10MHz 的 HF LPO 驱动、该怎么办:

    请查看我们的时钟速率可降至10MHz GCLK 和5MHz VCLK1

    UART 输入时钟也从90Mhz 下降到5MHz、这意味着频率降低18倍。 因此、相应的波特率也会降低18倍、这意味着如果您配置一些9600波特率、它将成为533波特率。

    同样、如果用户使用 RTI 中断使 LED 闪烁、该中断也会受到该时钟更改的影响。

    所以、我的建议是只要移除 RTOS、在 while (1)循环中仅使一个 LED 闪烁、而不发生中断、并且仅针对循环延迟、现在创建 OSC 故障、那么您会看到 LED 闪烁速率将发生变化。 例如、在这个情况下、它的速度应该比振荡器工作前慢18倍。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    关于频率:我完全理解你,并同意上面提到的,但我的情况是不同的。  我已经均衡了外部振荡器 PLL 和 LPO 到10MHz  (在两种情况下我都使用10MHz 向 GCM 馈送) -这样我就能够保留外设时钟(像 UART 波特率)并实现从外部振荡器到 LPO 的透明故障转移(即使在调试模式下、我仍然在 CCS 控制台上收到 printf ()消息、也不会中断或出现任何问题)。

    关于 RTOS:我还在没有 RTOS 的情况下进行了测试、仅限裸机使用 RTI 使 LED 闪烁(按照 www.ti.com/.../3871660449001上的教程) -我观察到完全相同的行为。 这些频率是默认频率:

    • 外部振荡器的 PLL 之后的160MHz
    • 来自 LPO 的10MHz

    谢谢!  

    Varban

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

    您好、Varban、

    关于频率:我完全理解您并同意上述说法、但我的方案有所不同。  我已将外部振荡器 PLL 和 LPO 均衡为10MHz  (在两种情况下、我都使用10MHz 向 GCM 馈电)[/QUOT]  

    在这种情况下、它不应该改变行为、我认为它也应该适用于 OSCFAIL。

    关于 RTOS:我也在没有 RTOS 的情况下进行了测试、仅使用裸机、使用 RTI 使 LED 闪烁(按照 www.ti.com/.../3871660449001中的教程) -我观察到完全相同的行为

    这是奇怪的,

    我以前从未在我的终端进行过测试、因此我想测试它并更新我的结果。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    [报价 userid="524805" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1396677/tms570ls3137-boot-with-lpo/5352398 #5352398"]

    在这种情况下、它不应该改变行为、我认为它也应该适用于 OSCFAIL。

    [报价]

    实际上、它运行得很好。 我已经配置了 ESM 中断和 nERROR 引脚反应。 生成示波器。 故障、我得到了中断并切换了 nERROR 引脚、程序继续透明运行、而不会导致外设发生任何中断。   

     

    然而、我仍然无法只在 LPO 上启动 MCU。 今天、 我还测试了如何移除 Launchpad 套件上的晶体-以便模拟真正的振荡器故障、而无需将 OSCIN 短接至 GND (如果晶体/振荡器发生故障、在现实中可能永远不会发生这种情况、我怀疑这可能会阻止 MCU 正常启动)。 不幸的是、没有任何变化、问题仍然存在。

    [报价 userid="524805" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1396677/tms570ls3137-boot-with-lpo/5352398 #5352398"]

    我以前从未在我的终端进行过测试、因此我想测试它并更新我的结果。

    [报价]

    很好、提前感谢!

    此致!

    Varban

     

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

    您好、Varban、

    [报价 userid="208956" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1396677/tms570ls3137-boot-with-lpo/5353077 #5353077"]但是、我仍然无法只使用 LPO 启动 MCU。 今天、 我还测试了如何移除 Launchpad 套件上的晶体-以便模拟真正的振荡器故障、而无需将 OSCIN 短接至 GND (如果晶体/振荡器发生故障、在现实中可能永远不会发生这种情况、我怀疑这可能会阻止 MCU 正常启动)。 不幸的是、没有任何变化、问题仍然存在。

    我认为最好关闭该主题、因为您已经提出了与此相关的新主题:

    (+) TMS570LS3137:与无外部振荡器的 LPO 配合使用-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    请仅提供您对上方主题的评论。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    当然、让我们继续另一个线程。