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.

[参考译文] TMS320F28033:连接至目标时出错:器件可能在低功耗模式下运行。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/964501/tms320f28033-error-connecting-to-the-target-device-may-be-operating-in-low-power-mode

器件型号:TMS320F28033

您好!

我的客户正在使用 F28033进行大规模生产。

它们使用相同的软件刷写设备。 但在某些器件中、它们将面临以下问题(约10%)。

通过单击 OK (确定)、问题再次出现。

通过将 GPIO34拉至低电平以设置为等待模式、我们能够连接目标、擦除闪存并对正确的软件进行编程。 然后拉高 GPIO34、我们仍然能够对软件进行编程。

这种问题的原因可能是什么?

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

    Howard、

    我们通常建议客户将器件置于等待引导模式、以避免在建立仿真连接之前执行任何代码。  上述消息通常是由于代码安全模块(CSM)被激活、这将不允许 JTAG 连接完成。  如果器件未解锁、则 MCU 从 CSM 保护区域执行代码时会发生这种情况。

    您能评论一下客户通常设置的引导模式吗?如果这种情况发生在出厂时的新器件上(所有器件都来自 TI 已擦除)、或者发生在之前编程的器件上吗?

    最棒的
    Matthew

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

    这种情况发生在新器件上。  

    典型的引导模式是引导至闪存。

    我们编程到器件中的软件不对密码进行编程、CSM 全部为0xFFFF。

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

    Howard、

    让我向团队内部的其他一些人征求更多意见。  当我们看到某些群体显示这种行为时、根据我的经验、这意味着我们依赖于引脚的默认状态(以及它的弱内部拉电阻)或不受复位门控的寄存器。  即使是等待引导模式、也应该解释这种情况的发生方式。  我将回复 Tomm。

    最棒的

    Matthew

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

    Matt、

    谢谢你。

    我们以前也对 CSM 有疑问、我们怀疑编程期间器件可能会由于某些未知原因被复位锁定。

    但是、如果器件由于编程期间的复位而使用随机密码锁定、即使在等待模式下、我们也无法解锁和编程器件。

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

    Howard、

    今天我无法解决这个问题、我需要另外一天的时间来研究更多问题。

    最棒的

    Matthew

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

    Howard、

    以下是我可以提出的方案:

    引导模式为闪存引导:

    1)器件处于擦除状态/从 TI 发货为新

    在这种情况下、器件将尝试跳转到闪存入口点。  由于它被擦除、它将尝试执行运行代码0xFFFF。  这不是有效的运算代码、将转换为非法指令(ITRAP1)。  然后、这将跳回到 Brom 中的陷阱 ISR。  这里的行为是永久启用 WD 和 LOOP。  WD 超时后、它将启动 XRSn、引导过程将再次开始。   

    如果此时尝试仿真连接、则由于 Brom 不安全、因此初始连接的可能性非常大(请记住、即使器件没有密码、仍必须读取 CSM 位置才能完全解锁器件)。  

    但是、存在一个持续存在的问题;在这种情况下、如果客户不停止器件(通过连接/停止)、最终代码将由于看门狗复位而重新获取闪存入口点。  执行此操作时、它将执行闪存中的单个指令、这仍然是安全的、并终止 JTAG 连接。

    2)器件已编程:


    假设客户没有将 CSM 密码编程到器件中、只要他们已经通过 CSM 读取其闪存代码来解锁器件; 调试连接应该是可以的、因为无论器件从哪个存储器执行、都将是不安全的、并且不会触发 CSM JTAG 断开逻辑。

    在一个小窗口中、代码已经开始从闪存执行、但在客户解锁器件之前、这将导致 JTAG 连接问题、因为将存在到一个安全区域的存储器访问。  如果客户等了足够的时间让器件通过这部分代码、我认为这不太可能。

    3)等待引导模式:

    这可以解决上述任何潜在问题(包括客户是否已编程密码并且未解锁器件)。  在这种情况下启用 WD;但代码始终在不安全的 Brom 之外执行、因此任何 JTAG 连接都应该起作用。  请注意、即使在这种情况下、如果客户在解锁器件之前尝试从安全存储器中读取/执行、则在建立 JTAG 连接后、它仍将导致仿真断开。  我认为 CCS 中有 GEL 文件的默认操作来在连接时对 CSM 进行虚拟读取、以防止在 CSM 中没有密码时发生这种情况。  因此、这可能不会对客户造成问题。

    最棒的

    Matthew

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

    Matt、

    谢谢。

    根据您的答案、误差

    "连接到目标时出错:器件可能在低功耗模式下运行"

    是否仍然与器件锁定的原因相关、对吧?

    那么、为什么错误报告"器件已锁定"?

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

    Howard、

    是的,我同意你的发言。  我认为、如果代码从一个安全区域执行、那么这里的问题就是操作;这是器件终止 JTAG 连接的问题。  CCS 将其解释为器件处于低功耗状态、因为它无法建立连接。

    这不同于尝试使用正确的密码对器件进行编程。  在这种情况下、器件不会在 CSM 被锁定的情况下从安全存储器中运行、因此 JTAG 连接不会断开、但器件可以返回一条消息、指出闪存已被锁定、无法编程。

    最棒的

    Matthew