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.

[参考译文] TPS26750:TPS26750:在没有 EEPROM 的情况下无法进入应用程序模式—补丁下载异常

Guru**** 2770585 points

Other Parts Discussed in Thread: TPS26750, TPS25751

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1611195/tps26750-tps26750-failure-to-enter-application-mode-without-an-eeprom-abnormal-patch-download

器件型号: TPS26750
主题中讨论的其他器件: TPS25751

我们的设计中使用了 TPS26750(非 EEPROM)。  

根据使用嵌入式控制器 (EC) 将补丁捆绑包直接加载到 TPS25751 或 TPS26750、严格执行补丁下载过程。 但是、在发出 PBMc 命令后、从 CMD1 寄存器读取的返回值为 0x0。 相比之下、读取 DATAx 寄存器时、输出 DataX 响应是 0x03 而不是 0、数据表中未提及这种情况。

image.png

 

image.png

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

    Chen、

    完整字节是否等于 0x03、这意味着 acReturnIndicator 为 0x3、rpReturnIndicator 为 0x0? 我通过查看实现来了解正在发生的情况、只是想了解您所看到的内容是否正确。  

    此致、
    Tim

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

    您还能告诉我您获得的 DevicePatchCompleteStatus 位的信息吗?

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

    我怀疑您可能尝试在器件已处于 APP 模式时发出 PBMc 命令。 在这种情况下、固件将拒绝该任务、并默认使用标准任务返回代码:

     在发出 PBMC 命令之前、您能否确认 MODE 寄存器(0x03 偏移)实际上处于 PTCH 模式而不是 APP 模式?

    此致、
    Tim

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

    尊敬的 Timothy:

     acReturnIndicator 为 0x3、 rpReturnIndicator 为 0x0、我们读取此寄存器前 64 个字节的值:0x03 0x00 0x00 0x00 0x30 0x32 0x00……(所有后续值均为 0。)

    此致、

    Chen

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

    DevicePatchCompleteStatus 为 0x00

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

    为了验证器件在发送 PBMc 命令之前是否已进入 APP 模式、我们在发送补丁后读取模式寄存器以进行确认、但读取结果表明它处于 PTCH 模式。

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

    Chen、

    作为参考、我们在此处提供了一个扩展代码示例(适用于 TPS25751、但也适用于 TPS26750):

    https://github.com/TexasInstruments/usb-pd/tree/main/examples/tps25751/mspm0g3507/tps25751_patch_load_from_mcu

    将数据通过管道传递到 TPS25751 时、您是否更改了从器件地址、对吗? 这应与您在 PBMs 数据写入中设置的内容相匹配:

    在代码示例中为 0x30。 当您切换回 PBMc 命令时、它应该返回到原始从器件地址(代码示例/EVM 中为 0x21)。

    此致、
    Tim  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tim
    我们已重建的过程 “加载补丁捆绑包“ 根据您上传的代码。 在测试过程中、我们发现在执行步骤后 “正在发送 PMBs 命令“ 、随后的步骤 “读取输出数据以验证命令成功“ 始终失败。 这是因为输出数据的值是一致的 0x03
    我们想问、这一问题是否有任何有效的解决办法。 例如、在执行 PMB 或 PMBc 命令之后、在读取输出数据之前添加一定的延迟(等待特定的时间)是否可行?
    此致、
    Chen
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Chen、

    您可以添加延迟、但更确定的方法是在 IRQ 线路的下降沿等待并触发 CMD1 完成事件:

    如果您想快速测试是否存在此问题、只需在发出 4CC 命令后添加 5ms 延迟等信息。  

    您是否有来自 I2C 分析仪等设备的完整 I2C 流量日志? 如果需要、您可以向我发送离线消息。 下面提供了成功执行固件更新的完整日志、以供参考:

    github.com/.../logic.sal

    此致、
    Tim