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.

[参考译文] TM4C1231D5PM:版本7器件的 ROM 引导加载程序问题

Guru**** 2874300 points

Other Parts Discussed in Thread: TM4C1231D5PM

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/982990/tm4c1231d5pm-rom-bootloader-issues-with-version-7-silicon

器件型号:TM4C1231D5PM
主题中讨论的其他器件: TM4C123

我的产品在器件版本6中成功运行了 TM4C1231D5PM。 我们刚刚在中添加了新的电路板和版本7器件、现在遇到了从已擦除器件进入 ROM 引导加载程序的问题。 将 V6 MCU 换入新板即可正常工作。  将 V7 MCU 交换到旧板上不起作用、因此问题出在 V7 MCU。  

应用:MCU 由主机处理器引导、如果没有程序、主机处理器将重置 MCU、发送自动波特序列、对 MCU 执行 ping 操作、然后通过 ROM 引导加载程序继续更新固件。 此过程用于对工厂新 MCU 进行编程、并且一直运行良好。

自动波特字节之间没有延迟地发送、之后立即发送 ping 命令。

对于 v7器件、MCU 不响应自动波特字节或 ping 命令。 测试表明、在自动波特字节之间添加延迟(~2ms)可以解决该问题。

我想在投入生产之前澄清一下为什么版本7芯片的行为有所不同。 是否有任何文档阐明了自动波特率和后续命令的时序要求?

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

    您好 Brian、

     这是我第一次遇到像您一样的报告。 我有一个带有版本7 MCU 器件的 Launchpad。 我只需使用 LM 闪存编程器和 sflash.exe 实用程序来执行 ROM 引导加载。 在这两种情况下、使用 ROM 引导加载程序引导 MCU 不会出现问题。 我启用了自动波特率。

    使用 sflash.exe

    使用 LM 闪存编程器。

     您能回答我一些问题吗?

     -您是否在您拥有的所有 v7 MCU 上发现了 v7问题?

     -您能否在 v7 MCU 上尝试 LM 闪存编程器或 sflash.exe? 您看到问题了吗? 我想知道这是否与下载工具相关。  

     -如果您有 TM4C123 LaunchPad 版本7、您是否可以尝试使用主机处理器引导它? 我想知道这是否与电路板相关。  

      

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

    [引用用户="Charles Tsaa"]我有一个带有版本7 MCU 芯片的 Launchpad。 我只需使用 LM 闪存编程器和 sflash.exe 实用程序来执行 ROM 引导加载。 [/引号]Charles、您是否可以使用示波器或 LSA 来测量测试中自动波特率字节之间的延迟?

    刚才提到、由于 Brian 提到了自动波特率字节之间的延迟、因此问题就会消失、并且当 PC 使用 USB 转串行适配器时、不确定字节之间的延迟是多少。

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

    Chris、感谢您的回复。  要回答您的问题:

    我们尝试对31个装配体进行编程、其中2个装配体成功。  这让我相信这是一个时间问题。

    我可以尝试 LM 闪存编程器(具有一些创造性的连接)、但其他人没有问题、所以我没有。

    为了确定它是与电路板还是 MCU 相关、我们完成了组件交换、问题出在 V7 MCU。 因此、新电路板、旧电路板、V6和 V7 - V7器件是共同的分母。  所有其他组合都起作用。

    以下是该问题的一些示波器截图:

    首先、在自动波特字节之间或之后没有延迟的 V7芯片:

      

    这是 V7芯片、每个自动波特字节后延迟2ms。  它已经过缩小、因此解码不会读出、您可以从 MCU 引导加载程序 ROM 响应的跟踪中看到这一点。  它还成功地执行了程序。

      

    出于完整性考虑、这里是无延迟的 V6器件。

    如果在我的初始开发过程中发生了这种情况、我将不会在延迟之后再增加太多时间来让事情变得快乐。  我只是想了解一下为什么硅版本会对此产生任何影响。  我无法找到任何记录时序要求的文件。  我怀疑这主要是因为没有多少人从主机处理器运行引导加载程序。

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

    您好 Brian、

     感谢您提供捕获。 我不知道第6版和第7版在这方面有什么区别。 也许我不知道在版本6和版本7之间对 ROM 引导加载程序进行了一些更新。 我需要咨询可能知道的人。 我会试着给你回。

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

    您好 Brian、

     您之前说过、在31个装配体中、您有两个装配体在工作。 如果失败是由于版本7导致的、那么我倾向于认为所有31个装配体都应该失败。 您从主机处理器生成的波特率是多少? 您能否尝试不同的波特率、可能是较慢的波特率、如115200或较慢? 它会产生影响吗? 如果可能、您可以使用在 PC 上运行的 LM 闪存编程器吗? 目前、我找不到任何人能够解释 v6和 v7在这方面的区别。 我将尝试询问。 同时,如果你的工作出现延误,我建议你继续处理。  

     我发现这篇文章可能会带来一些见解。  

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

    您好、Charles、

    我已通过芯片勘误表查找 v6中未出现的 v7问题。  只有3个问题、它们都与 EEPROM 相关、因此没有任何问题。  引导 ROM 更新是一种很好的可能性。  希望您能找到对此有了解的人。

    我同意29/31板故障很有趣。  我的解释是、某件事必须在功能范围的边缘、也就是计时理论的边缘。 主机处理器在与 ROM 引导加载程序交互时设置为115200波特、因此它已经很慢了。

    最终、它可以处理额外的延迟、这就是我必须发布的内容。 我只是希望能得到对差异的解释。

    感谢您花时间了解这一点!

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

    您好 Brian、

     我现在将您的帖子标记为已解决。 如果我知道两个版本之间在自动波特字节之后添加延迟的原因、我将向帖子报告。  

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

    感谢你的帮助。