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.

[参考译文] MSPM0L2228:独立看门狗计时器 (IWDT) 会干扰闪存过程

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1511238/mspm0l2228-independent-watchdog-timer-iwdt-disturbs-flash-process

器件型号:MSPM0L2228
Thread 中讨论的其他器件: UNIFLASHMSPM0L1228

工具/软件:

您好:

我在 L2228 LaunchPad 上的 IWDT 存在一些问题。 主要与闪存过程有关。
为了使其更容易理解、我使用了示例 iwdt_periodic_reset_LP_MSPM0L2228_nortos_ticlang、并删除了用于复位 WDT 以模拟代码中的错误的命令。
之后、我无法再次刷写器件。 WDT 似乎会中断闪存过程。 我收到了几条不同的错误消息。 如果有趣、我可以在此处列出它们。

我使用了 CCS 12.8.1 和 uniflash 9.1.0。

为什么闪光或硬件复位不会停止 IWDT? 如何找回对器件的控制?

此致、
Timo

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

    更新后、我找到了恢复设备的方法。 我移除了 BAT 跳线、以不提供 LFSS(包括 IWDT)。 之后、我可以刷写器件。
    但这并没有解决我的主要问题。 如果 WDT 会进入闪存过程、如何使用?
    我们的目标器件是具有 32 个引脚的 MSPM0L1228。 它没有 BAT 引脚。 这是否意味着刷写 IWDT 项目后器件会一直锁定?
    需要明确的是、我尝试了几个 LaunchPad、它们都具有相同的行为。

    这是期望的行为吗? 《崇敬手册》并没有说明这一点。

    另一个问题、我尝试使用 L1306 LP 进行测试、syscfg 告诉我这个没有 IWDT。 如何确定哪些器件支持该功能?

    我希望有人能帮助我。

    此致、
    Timo

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

    您好、Timo、

    抱歉晚响应、是的、我也发现当启用 IWDT 时、调试不会保持 IWDT、以便进行 POR 复位、从而断开 SWD 连接、无法连接器件。 我将设置一个内部线程来跟踪此情况、希望我们可以在 CCS 的后续版本中得到修复。

    要检查哪个器件支持 IWDT、我们需要查看器件数据表以完成定稿。

    总之、MSPM0Lx22x、MSPM0Gx51x 具有 IWDT。 即将推出的器件几乎都包括一个 IWDT。

    B.R.

    Sal

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

    尊敬的 Sal:

    感谢您的回答。 但如果我理解正确、我无法继续使用 IWDT、直到 CSS 更新。 对吗?
    发布新版本 CCS 需要多长时间? UniFlash 也会产生这些问题、是否计划推出新版本?

    此致、
    Timo

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

    您好、Timo、

    但如果我理解正确、在更新 CSS 之前我无法继续使用 IWDT。 对吗?

    我们提供了一种强制 MCU 复位而不手动运行 IWDT 的方法:

    WAIT_FOR_debug DSSM 脚本、手动运行此脚本后、CCS 可以强制 MCU 处于高复位级别、然后不会损坏固件到器件中:

    您也可以在设计流程指南 — 解锁 MCU: MSPM0 设计流程指南中找到相关步骤

    发布新版本的 CCS 需要多长时间?

    我们还在项目属性中提供自动步骤:

    这种自动步骤比手动处理稍微弱一些、但也值得一试。 如果它不起作用、我可以在其他版本中提交执行一些升级的请求、您可以使用手动步骤进行最近调试。

    我的建议之一是、在验证 IWDT 行为后、只需在正常功能开发和测试期间禁用 IWDT、最后将 IWDT 组合在一起。  

    IWDT 触发 POR 将中断所有连接、如果它被 IWDT 定期复位锁定、则需要通过进入 BSL 触发 POR(在 PA18 连接到 VCC 的情况下重新上电、或在 PA18 连接到<xmt-block1> VCC</xmt-block> 的情况下下下下拉大于 1 的 NRST)。 VCC。

    B.R.

    Sal

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

    尊敬的 Sal:

    不幸的是、这无法解决问题

    如果器件被 IWDT “锁定“并且启动 WAIT_FOR_debug DSSM 脚本、则会看到“无法访问器件寄存器“错误。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。 (仿真包 20.0.0.3178)“


    在 MSPM0 设计流程指南一章中解锁您提到的 MCU、我没有找到有关 WDT 或 WaitForDebg skript 的信息。 只有 EraseFlash 和 FactoryReset 开关也不起作用。  

    在 Project 属性中启用函数等待调试 也不起作用。 我仍然收到各种错误消息。 此外、还使用 PA18 在 BSL 模式下启动 MCU。

    是否有其他解决方案可与 WDT 配合使用?

    此致、
    Timo

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

    您好、Timo、

    其他信息是、请确保您的 IWDT 当前正常工作。

    如果您未在固件中馈送 IWDT、则会发现 IWDT 触发 POR、发生 POR 将破坏所有 SWD 连接、并且还会清除 DSSM 邮箱中的消息。 因此脚本无法正常工作。 您也可以说 IWDT 锁定了器件。

    如果 IWDT 锁定了器件 (IWDT 定期触发 POR)、则剩余的方法是将 PA18 连接到 VCC、然后重新上电或下拉 NRST 超过 1s。 POR 复位后、器件将通过 POR 复位 IWDT、然后进入将正确连接的 BSL 模式。

    B.R.

    Sal

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

    尊敬的 Sal:

    另外、如果我正确地为 IWDT 馈电、就会遇到问题。 这是我的第一个问题,这促使我调查 IWDT 的行为。 不总是,但有时我得到错误  

    我想说、如果我使用短 IWDT 周期、会更频繁地发生这种情况。 例如、我使用了 93、75ms IWDT 周期、并每 50ms 将其复位一次。

    如果发生错误、则无法对器件进行闪存、批量擦除或恢复出厂设置。 另外、 WaitForDebug 脚本也不起作用。 Before flashed 软件不再正常运行。 下电上电也是不够的。 只有断开 Bat 电源才有助于器件恢复运行。 IWDT 似乎仍在闪存过程开始时运行、有时可以在 POR 之前停止 IWDT、有时不可以。

    这是期望的行为吗?

    对我来说、它感觉 IWDT 功能尚未完全完成。  请您确认一下 在这种情况下、我们将禁用它、直到 CCS 和 UniFlash 中将其修复。  但问题仍然存在、何时会进行修复?

    此致、
    Timo

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

    您好、Timo、

    感谢您提供信息。

    如果出现错误、我无法刷写、批量擦除或恢复出厂设置器件。 另外、 WaitForDebug 脚本也不起作用。 Before flashed 软件不再正常运行。 下电上电也是不够的。 只有断开 Bat 电源才有助于器件恢复运行。 似乎 IWDT 仍在闪存过程开始时运行、有时在 POR 之前停止 IWDT 是可以的、有时不可以。

    我创建了你在这里描述的相同场景,并获得相同的结果。 是的、这低于预期。

    由于 M0L2228 具有 VBAT、因此需要在 VBAT 电源域中进行 VABT 复位来使 IWDT 复位。 由 NRST 或 IWDT 生成的复位不会复位 VBAT 电源域。 以便 IWDT 将在后台运行。

    只要 MCU 停止并运行 DSSM 命令或固件、即由 IWDT 生成的 POR 并中断运行。

    这对于 具有 VBAT 功能的器件是唯一的。

    我将 在跟踪线程中添加其他说明、并检查 我们如何进行修复。 如果用户希望在大规模生产阶段重新加载固件、在这种情况下器件将被 IWDT 锁定、则确实存在风险。

    对于调试活动、有两个临时使用的操作:

    1.在 PA18 连接到 VCC 的情况下重新为电路板供电

    2、断开 VBAT 电源,使 IWDT 不工作

    对我来说、感觉 IWDT 功能还没有完全完成。  请您确认一下 在这种情况下、我们将禁用它、直到 CCS 和 UniFlash 中将其修复。  但问题仍然存在、何时会进行修复?

    当内部团队完成修复计划时、我将分享该计划。

    B.R.

    Sal

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

    尊敬的 Sal:

    感谢您的确认。 我甚至还没有想到大规模生产。 但您是对的、这也会导致一个大问题。  希望有一个简单的解决方案。  
    如果有固定流程的时间表、我很希望您能听到。

    此致、
    Timo

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

    您好、Timo、

    当然、当我们修复此问题时、我会随时向您发布。

    然后、 修复通常将在下一个 CCS 发布时间线中生效。 如果您对产品有任何重要的时间表、请告诉我。

    B.R.

    Sal