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.

[参考译文] MSPM0G3507:编程后、如果 BSL_invoke 引脚在器件复位后处于活动状态、会发生什么情况?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1347767/mspm0g3507-what-happens-if-bsl_invoke-pin-is-active-after-device-reset-after-programming

器件型号:MSPM0G3507
主题中讨论的其他器件:SEGGER

您好!

我们面临这样的情况:如果在刷写二进制文件后由编程器/调试器复位器件、则 BSL_invoke 引脚可能会处于高电平。

这是一种 PoC 设计、因此硬件不是100%正确、尽管如此、我们想知道这种情况下的行为。

  • 当使用调试器对器件进行编程、然后由调试器复位以启动并且 BSL_invoke 引脚处于活动状态时 、根据 BSL 指南、 器件应进入引导加载程序、并检查 I2C 和 UART 接口上的活动。 如果没有跳线、则器件转至 标准 。  如果检测到某些活动但到达的数据包无效、则引导加载程序将使器件进入 睡眠 测试模式。 从这种待机和睡眠模式中有哪些恢复操作?  

我们观察到、当使用调试器(SEGGER Ozone)进行编程时、调试器有时会在编程后触发复位之后突然"失败/报告错误"。 我们认为发生这种情况是因为 BSL_invoke 引脚为高电平、并且已进入引导加载程序。

然后此状态仍然存在、我们无法连接调试器。  此外、将 BSL_invoke 引脚拉至低电平(非活动状态)并重新尝试也没有效果。

虽然我们仍然可以使用 SEGGER JFlash 等进行编程、但我们无法再进行调试。 多个电路板上已经发生了这种情况。

有任何线索/提示在这里发生了什么?

版本集:

  • MSPM0  G3507S TIX368x AL07 G4 (可能是一些早期生产样片?)
  • 外壳:VQFN32
  • MSPM0 SDK 1.20.1.6
  • SEGGER JLink V792 (与最新版本相同)
  • SEGGER Ozone V330b (与最新版本相同)

此致 Marco

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

    您的意思是:"虽然我们仍然可以使用 SEGGER JFlash 等编程、但我们无法再进行调试。  "? 调试会发生什么情况呢?

    您可以在 SYSCTL 中禁用 BSL 函数吗?

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

    我们仍然可以使用 JSlah 和 Ozone 将二进制文件编程到 MCU。 然而 在 Ozone 调试器中、当程序被启动并且调试器应该在 main 暂停 MCU (在编程步骤后)时、调试器报告一个错误-不幸的是、我无法重现它、因为硬件现在已完全锁定。 我甚至无法再使用调试器连接到目标。

    我们将不使用 CCS IDE、而是使用 VS 代码和 CMake。 因此我无法在 SYSCTL 中取消选择"Enable BSL"。 能否告诉我、如果我取消选择"Enable BSL"选项、SYSCTL 会更改驱动程序库中的哪些设置? 然后我可以应用这些在外设置.. 但它可能是复杂的,因为引导配置区域在闪存是特别保护...

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

    我创建了一个设置,可以将我们的硬件与 TI 调试器和 CCS 配合使用。 我为 LP_MSPM0G3507选择了 empty_driverlib 示例、但仅未选中"启用 BSL"选项。 然而在启动 TI 调试器时、我得到下面用红色圈出的错误。 有人知道原因是什么吗?

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

    您需要写入单击项目并启用 NOMAIN (执行 MCU 配置的受保护存储器)控制:

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

    允许我禁用 BSL 的 THx。 此外、我将把 BSL_invoke 拉至低电平。 因此、我假设无法再进入引导加载程序。

    仍然从 Ozone 收到以下错误消息

    我可以使用在另一个 E2E Thread 中找到的"335.Unlock MSPM0 1.1.pptx"恢复器件。 然后、我可以使用 Ozone 只对该器件编程一次并进行调试。 这2个引脚。 弹出上述错误编程。

    有什么建议吗?

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

    您是说、在对器件进行编程后、您会正确遇到误差吗?

    您可以使用示例代码进行检查吗? 我想检查问题是否与软件或硬件设置有关。  

    请同时分享原理图。

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

    伊森您好!

    对不起应答时间太长了。 我取得了一些进展与 SEGGER 交谈.. 因此、我认为这个是可以实现的。