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:SWD 编程问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1290374/mspm0g3507-swd-programming-problem

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

您好!

我目前正尝试使用 SWD 亲自为此 IC 编程。

并且可参考"MSPM0 G 系列80MHz 微控制器技术参考手册"中第6章 NVM (闪存)的说明完成此过程。

目前、可以正常读取 READID、没有任何问题、但编程和擦除似乎有点异常。

每次我擦除 IC 并读取以确认 IC 为空白时、我都会发现闪存地址0x1E91每次读取0xFB、但在擦除之后、闪存应该为0xFF、对吧?

其他几个地址也是如此。 由于 IC 中的闪存很大、我没有逐一找到它们。

编程情况更加明显。 右侧是 IC 读取的内容、左侧是所编程文件的内容。

随机地址可能存在1位的差异。

您能帮助我分析我遇到的问题吗? 谢谢!

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

    您好!

    我还想知道读取异常问题是否与 ECC 有关?

    如果可以、如何使用 ECC 函数? 是否有任何关于 ECC 编程过程的参考信息?

    谢谢!

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

    您好!

    它可能与 ECC 功能有关。 我们几乎没有关于 ECC 编程的信息。 我想您可以 首先在 SDK 中参考 flashctl_program_with_ecc 代码示例。  

    是否已尝试使用 Uniflash 工具擦除然后读取数据? 它是否也有与您的问题相同的问题?

    此致、

    现金豪

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

    您好、

    打开 ECC 后、IC 确实可以正常编程! ! 谢谢! ! !

    但后来我发现 IC 似乎只能对前64KB 数据进行编程、而无法将 数据编程到后64KB 数据。

    如果我正确确认、该 IC 应为128KB。

    此外、是否有用于擦除的示例代码?

    由于我手头没有 Uniflash 工具来测试 IC、因此我使用 GPIO 来模拟 SWD 与 IC 的通信。

    如果可能、您能否帮助我分析轻微暴露的问题? 谢谢你。

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

    您好!

    64KB 编程问题的信息。 是否尝试过使用 CCS v12.4? 最新的 CCS 版本应该可以解决该问题。

    此致、

    现金豪

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

    您好、

    我已安装最新版本的 CCS、但似乎找不到相关的编程过程。

    您能告诉我将其放在哪里吗?

    或者、您也可以向我提供相关的屏幕截图信息。 谢谢! !

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

    您好、

    此外、我在测试时遇到了一个问题。

    我将 CMDWEPROTNM 写入全0并执行批量擦除。

    因此、IC 似乎不再能够通过 SWD 进行通信。

    尽管仍然可以读取 SWD ID、但无法再读取 IC 的 ID。

    有没有解决这个问题的办法? 谢谢。

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

    您好!

    NONMAIN 看起来已被擦除、因此您无法再连接到 MCU。 一些有用的链接、可以为您提供帮助。

    https://software-dl.ti.com/msp430/esd/MSPM0-SDK/latest/docs/english/tools/ccs_ide_guide/doc_guide/doc_guide-srcs/ccs_ide_guide.html#dssm-commands

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1237262/mspm0l1306-implementation-of-dssm-factory-reset-over-swd

    此致、

    现金豪

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

    您好、

    好的、感谢您提供的信息。

    我将尝试解锁手头上锁定的 IC、谢谢!

    但我目前想解决仅烧录前64KB 的问题。

    是否有我可以参考的任何相关程序代码?

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

    您好!

    您能否发送有关如何对 MSPM0进行编程的确切详细过程? 我可以向我们的软件团队寻求帮助、以检查是否存在任何问题。

    此致、

    现金豪

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

    您好、

    我发现除了 ECC 之外、我遇到的问题是擦除后的闪存读取不会全部为0xFF、并且最后64KB 无法进行编程。

    这些问题似乎与 IC 本身的问题有关。

    图片左侧是从客户端借来进行测试的 IC、右侧是从美国 TI 销售部门获得的用于另一个项目的 IC。

    右侧的 IC 可以进行编程、而不会出现任何问题。

    擦除后、IC 读取的内容全部为0xFF、并且所有128KB 闪存均可正常编程。

    左侧的 IC 将导致我遇到问题...

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

    您好!

    TI 标识左边的标记 是大规模生产版本。 正确的是预发布样片。  

    如果批量擦除无法完全擦除更高的64KB 区域。 您是否曾尝试改用扇区擦除?  

    此致、

    现金豪

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

    您好、

    是的、我已经尝试使用扇区擦除、但仍然无法完全擦除。

    事实上,我认为这可能并不意味着它不能被完全擦除。

    擦除后的状态是整个闪存中将有10个以上的0散射位。

    但擦除之后、所有值应为1。

    在任何情况下都不能写入高于64K 字节的块。

    这些问题会在我得到的大规模生产版本中发生、也就是图片左侧的 IC。

    图片右侧的 IC 根本没有这些问题。

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

    您好!

    我得到了您的信息、并将其发送给工具团队、告知您的问题。 下面等待他们对这个问题的评论。

    此致、

    现金豪

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

    您好、

    是否有任何更新?

    谢谢!

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

    您好!

    还没有反馈。 大多数团队成员都在假期,因为感谢。 从反馈中获取反馈需要一些时间。  

    此致、

    现金豪

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

    您好!

    软件团队反馈、他们希望检查您用于编程/擦除的代码。 您能在此处分享吗?

    此致、

    现金豪

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

    尊敬的 Cho:

    编程和擦除的程序流程如下。

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

    您好!

    获取团队的反馈。  

    "我看到客户正在使用寄存器级编程。 您是否可以建议客户从 DriverLib 示例 flashctl_program_with_ecc 开始、而只是修改示例以写入高64KB?

    客户发送屏幕截图确认其支持包版本也很好。"

    您可以通过"CCS"->"Help"->"About Code Composer Studio"->"Installation details"找到支持包版本

    此致、

    现金豪  

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

    尊敬的 Cho:

    我需要花些时间修改和测试我的程序。

    但我以前看过 flashctl_program_with_ecc 的内容。

    据我了解、程序的内容不应该有太大的不同、执行内容几乎是相同的。

    但他也说修改应该不难、只需要一点时间。

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

    您好!

    明白。 请在您有更新时告知我们。

    此致、

    现金豪

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

    您好、

    我已经根据 DriverLib 修改和测试了编程过程、但结果仍然是不完整的擦除。

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

    您好!

    问题发生在闪存的哪个区域?  您是否还可以共享您的代码以便我使用它进行测试? 谢谢!

    此致、

    现金豪