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.

[参考译文] TPS25762-Q1:补丁更新未完成

Guru**** 2461540 points
Other Parts Discussed in Thread: TPS25762-Q1

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1517017/tps25762-q1-patch-update-not-completing

器件型号:TPS25762-Q1

工具/软件:

大家好:

我正在尝试将补丁下载到 TPS25762-Q1、但似乎没有完成。

正在通过 I2C2发送补丁。

一个初始问题是、修补程序数据应该以256个字节的块发出。  我假设是 patch_size/256 +1个块、每个块从地址和数据寄存器开始。  当补丁未进行256字节对齐(就像我的情况一样)时会发生什么情况?  只发送剩余的数据或填充256字节中的其余部分?

一切都进展顺利、直到告知补丁完成。  发出 PBMC 后、CMD2和 DATA2寄存器的读数均为零、但 MODE 寄存器会保持在 PTCH 中、直到5秒超时到期(然后恢复为 APP)。  直到在5秒超时之后、IRQ 才会置为无效。  

下面是流程和结果:

读取 INT_EVENT2、直到它不为零 (不是 INT_EVENT1、因为我们使用 I2C2)
结果: 0x0B

读取模式、直至其为"PTCH"
结果:0x04 0x50 0x54 0x43 0x48 (PTCH)

配置补丁:
写入 DATA2: (补丁大小为15744/0x3D80)补丁地址为0x35
0x23 (地址)
0x11 (DATA2寄存器)
0x06 (长度)
0x80 (补丁 LSB)
0x3D (补丁 MSB)
0x00 (补丁上部 LSB)
0x00 (补丁上部 MSB)
0x35 (补丁地址)
0x32 (补丁超时- 5秒)

将 PBM 写入 CMD2
0x23 (地址)
0x10 (CMD2寄存器)
0x04 (命令长度)
0x50 (P)
0x42 (B)
0x4D (M)
0x73 (s)

读取 CMD2:
等待字节1为零且字节1-4不是"!CMD"
结果:0x04 0x00 0x00 0x00 0x00 0x00 0x00

读取 DATA2:
等待字节1为零
结果:0x40 0x00 0x00 0x00……


以256字节的块写出补丁:
循环:
   0x35 (补丁地址)
   0x11 (数据寄存器)
   0x?? (补丁数据- 256字节长)
结束循环


等待1ms

将 PBMC 写入 CMD2
0x23 (地址)
0x10 (CMD2)
0x04 (命令长度)
0x50 (P)
0x42 (B)
0x4D (M)
0x63 (c)

读取 CMD2、直到字节1为零且字节1-4不是"!CMD"
结果:CMD2:0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x00

读取 DATA2直到字节1为零
结果:Data2:0x40 0x00 0x00 0x40 0x80……

(IRQ 在超时之前从不置为无效)


读取模式、直至处于"APP"状态
结果:模式:0x04 0x50 0x54 0x43 0x48 (PTCH)

持续到超时、然后切换到 APP。

我要清楚地谈谈器件、但我不能完全确定为什么它会保持在 PTCH 模式、而不是进入 APP 模式。  我不发出 PBMe 命令、因为一旦下载补丁并且 CMD2和 DATA2寄存器为0x00、便应释放 IRQ。  不幸的是、这并没有发生。

如有任何建议、将不胜感激!

-马特

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

    您好 Matt、

    • 是否 在 MCU 模式(TVSP 索引1或3)下引导 TPS25762-Q1?
    •  在写入补丁捆绑包数据并从 CMD2和 DATA2读取0后、无论 IRQ 状态如何、您是否尝试了写入 PBMe 4CC 命令?
    • 您是否尝试过一次全部而不是256字节数据包发送补丁捆绑包? 在突发模式(而不是在256B 数据包中)下写入补丁捆绑包数据也会有效并缩短写入时间。

    下面随附了通过 PBM 写入补丁捆绑包的 Saleae 捕获结果。  我不会在开始时检查 INT_EVENT1寄存器、而是在 GPIO9被拉至低电平时启动协议。

    e2e.ti.com/.../TPS257x2_5F00_MCU_5F00_BOOT_5F00_PBM.sal 

    谢谢、此致、

    Seong

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

    您好、Seong、

    是的、我使用 TVSP 索引1 (MCU 模式、I2C2上补丁)引导。  器件响应地址0x23、以便我知道这是一部分正常工作。

    无论 IRQ 状态如何、我都没有尝试写入 PBMe。  MODE 寄存器会不断表明它仍处于补丁模式、因此我认为还必须进行其他操作。  我会给它一个镜头。  文档的书面部分说明在110ms (或类似)之后、IRQ 将被发布。  在 CMD2和 DATA2寄存器清零后、我是否可以立即发出 PBMe?  或者在进行 PBMe 之前应该延迟110ms 左右?

    我在 SLVAFF7B 文档(固件更新过程)中得到的印象是、您必须以256字节的长度对补丁进行封装。  您说我可以只发送一条地址/DATA2消息(后跟15744字节)即可发送所有15744字节?  这将是伟大的,并大大加快事情.

    我们当前会等待 GPIO9被拉低、然后再查询 INT_EVENT2寄存器(使用#2、因为我们将通过 I2C2发送)。  如果您认为我们可以跳过这一步、那将会很好。

    发出 PBMe 命令后、我如何知道器件正在使用补丁、而不是恢复到 ROM 未补丁的版本?  是否有方法可以确认修补程序是否成功、以及 PBMe 命令并不只是中止修补程序?


    感谢您的帮助!

    -马特

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

    您好 Matt、

    SLVAFF7B 需要一些清理。 对任何错误指示表示歉意。

    您可以在确认 CMD2和 DATA2寄存器已清除后立即写入 PBMe、而无需等待110ms。

    请参阅我在上一封邮件中分享的 Saleae 捕获。 您将看到发送 PBMs 命令并从 CMD2和 DATA2读取0 以确认命令成功、我只对 DATAx.TargetAddress 0x35进行一次寻址、然后一次性写入所有补丁捆绑包数据(请参阅下图)。 在此步骤中、我不在写入目标地址0x35后写入数据寄存器。

    在 Saleae 捕获中、您会注意到我最初将0x04 (长度字节)、0x47、0x61、0x69、0x64写入 CMD 寄存器。 这是一个执行软复位的4CC 命令("Gaid")。 然后、我读取 IRQ/GPIO9状态并在 IRQ/GPIO9有效为低电平时开始协议、这表明 TPS257x2处于"PTCH"模式。 总之、您不需要查询 INT_EVENT2寄存器、可以跳过此步骤。

    发出 PBMe 命令后、我会等待1秒、然后再读取 MODE 寄存器。 正如您已经知道的、此时您想阅读"app"。

    如果要对使用新基本固件版本生成的补丁捆绑包进行编程、确认补丁写入是否成功的一种方法是从固件版本寄存器0x0F 读取固件版本。 当我保存 Saleae 捕获时,最新的基础固件是 F311.03.05 (见下图)。

    我想另一种方法是测试功能。 例如、如果您要写入的应用配置会配置特定的 SourceCap、则可以使用 TI-PD-ANALYZER 监视 PD 通信、并确认 TPS25762-Q1正在向连接的受电方器件广播正确的 SourceCap。

    希望这对您有所帮助、

    Seong

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

    您好、Seong、

    我的一天过了五分钟,这就把它照顾得很好了。

    感谢您发送编修。

    -马特

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

    尊敬的 Matt:

    我很高兴您能让它正常工作。 请说明以下几点:

    1. 您现在是否发出 PBMe 命令?
    2. 您是否仍在以256B 数据包的形式写入补丁捆绑包数据?

    BR、

    Seong

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

    您好、Seong、

    1.是的、我现在发送的是 PBMe 命令。

    2.我喜欢一次送补丁的想法,但我们的 I2C 驱动程序是如何写的,它不能很好地工作。  所以我一次要处理256个字节。  似乎工作正常、并确认补丁加载正确。  我将时钟的速度调到1MHz、这也有助于提高速度。

    再次感谢您的帮助!

    -马特

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

    尊敬的 Matt:

    感谢分享。 很乐意提供帮助!

    我将结束该主题。 如有任何疑问、请创建一个新问题。

    BR、

    Seong