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.

[参考译文] TPS25750:如何执行 PMM

Guru**** 2837190 points

Other Parts Discussed in Thread: TPS25750, USB2ANY, TPS25750EVM

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1023681/tps25750-how-to-execute-pbms

器件型号:TPS25750
主题中讨论的其他器件: USB2ANY

在《TPS25750主机接口技术参考手册》中,PBM 在 Byte5中有一个“I2C 从机地址”。 我应该为此输入什么地址?
它是 TPS25750自己的从器件地址吗?

另外, 我是否应该先写入 Data1,然后再将“PBM”写入 CMD1?

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

    您好!

    如前所述、I2C 地址基于 ADCINx 解码值。

    请参阅 TPS25750数据表的第44页。

    您可以参阅 TPS25750 TRM 的第4节以加载补丁流程。

    此致。

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

    执行 PMM 后、可在输出数据(Data1)中读取0x05。 这是否意味着 TPS25750的从地址未正确设置?

    我为从器件地址输入了高达0x01-0x3F 的所有模式并进行了尝试、但都返回了0x05。

    在这种情况下、您认为什么是错误的?

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

    小林-圣

    此流程在 TRM 文档中。 如果成功、Data1应该读取0。

    您是否在执行 PBM 后读取了 CMD1?  

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

    我读取 CMD1、它是0x00。

    以下是使用 USB2ANY 设置寄存器时的日志。
    ------------------------------------------------------------------
    2021-08-04 09:34:27.168 DebugLogging 已启用
    2021-08-04 09:34:27.168 PacketLogging 已禁用
    2021-08-04 09:34:27.168性能评测已禁用
    2021-08-04 09:34:27.274
    2021-08-04 09:34:27.275信息:数据包日志记录已禁用
    2021-08-0409:34:27.276信息:活动日志记录已启用
    2021-08-04 09:34:27.846信息:目标电源:3.3V 关闭、5.0V 关闭、Adj 关闭
    2021-08-04 09:34:27.972信息:找到1个 USB2ANY 控制器。
    2021-08-04 09:34:28.081信息:已成功打开 USB2ANY S/N 2572435119000900!
    2021-08-04 09:34:28.097信息:固件版本:2.8.2.0
    2021-08-04 09:34:28.144 INFO:已启用 EVM 检测中断处理程序
    2021-08-04 09:34:28.144 I2C:I2C 位速率设置为400kHz。
    2021-08-04 09:34:28.159 I2C:I2C 内部地址大小更改为1字节
    2021-08-04 09:34:28.159 I2C:I2C 内部地址更改为00
    2021-08-04 09:37:23.231 SMBus:从器件地址更改为0x21
    ■读取 INT_EVENT1.ReadyForPatch=1b
    2021-08-04 09:37:23.239 SMBus 读取0x0021 18字节数据:0x0000:0B 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00…
    ■Reead mode='PTCH'
    2021-08-04 09:38:01.696 SMBus 读取0x0021 5字节数据:0x0000:04 50 54 43 48 00 00 00 00 00 00 00 00 00 00 00 00 .PTCH ..........
    ■写入数据1:捆绑包大小= 0x3780h、I2C 从机地址= 0x21h、超时值= 0x32h
    2021-08-04 09:41:56.665 SMBus 写入0x0021 8字节数据:0x0000:09 00 80 37 00 21 32 00 00 00 00 00 00 00 00 00 00...7..2...
    ■读取数据1
    2021-08-04 09:42:08.440 SMBus 读取0x0021 8字节数据:0x0000:40 00 80 37 00 21 32 00 00 00 00 00 00 00 00 00 00 00 @ 7……2…
    ■写入 CMD1='PBM'
    2021-08-04 09:43:12.215 SMBus 写入0x0021 5字节数据:0x0000:08 50 42 4D 73 00 00 00 00 00 00 00 00 00 00 00 00 .PbM..........
    ■读取 CMD1=0h
    2021-08-04 09:43:24.533 SMBus 读取0x0021 5字节数据:0x0000:04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    μ■读取数据1:PatchStartStatus=0x05h (无效的从器件地址)
    2021-08-04 09:43:43.812 SMBus 读取0x0021 8字节数据:0x0000:40 05 80 37 00 21 32 00 00 00 00 00 00 00 00 00 00 00 @ 7……2…
    ------------------------------------------------------------------

    ※TPS25750EVM 设置
    ・移除跳线(J4)以禁用 I2C 闪存引导。
    ・Ω 输入20V 至 SYS_POWER (TP4)。

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

    我认为您的 Data1写入不正确。

     09 00 80 37 00 21 32 00 00 00 00 00 00 00 00 00

    应为 09 80 37 00 21 32 00 00 00 00 00 00 00 00

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

    我更改了您指出的 Data1寄存器的设置、但结果相同。

    描述了 USB2ANY 的日志。
    ------------------------------------------------------------------
    2021-08-11 14:34:22.739调试日志记录已启用
    2021-08-11 14:34:22.739 PacketLogging 已禁用
    2021-08-11 14:34:22.739性能评测已禁用
    2021-08-11 14:34:22.858
    2021-08-11 14:34:22.859信息:数据包日志记录已禁用
    2021-08-11 14:34:22.859信息:活动日志记录已启用
    2021-08-11 14:34:23.559信息:目标电源:3.3V 关闭、5.0V 关闭、Adj 关闭
    2021-08-11 14:34:23.656信息:找到1个 USB2ANY 控制器。
    2021-08-11 14:34:23.764信息:已成功打开 USB2ANY S/N 2572435119000900!
    2021-08-11 14:34:23.779信息:固件版本:2.8.2.0
    2021-08-11 14:34:23.840信息:已启用 EVM 检测中断处理程序
    2021-08-11 14:34:23.841 I2C:I2C 位速率设置为400kHz。
    2021-08-11 14:34:23.855 I2C:I2C 内部地址大小更改为1字节
    2021-08-11 14:34:23.856 I2C:I2C 内部地址更改为00
    2021-08-11 14:34:30.757 SMBus:从器件地址更改为0x21
    ■读取 INT_EVENT1.ReadyForPatch=1b
    2021-08-11 14:34:30.776 SMBus 读取0x0021 17字节数据:0x0000:0B 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00…
    ■Reead mode='PTCH'
    2021-08-11 14:35:02.152 SMBus 读取0x0021 5字节数据:0x0000:04 49 32 43 20 00 00 00 00 00 00 00 00 00 00 00 .I2C……
    ★写入数据1:捆绑包大小= 0x3780h、I2C 从机地址= 0x21h、超时值= 0x32h
    2021-08-11 14:35:38.385 SMBus 写入0x0021 7字节数据:0x0000:09 80 37 00 21 32 00 00 00 00 00 00 00 00 00 00 00 00..7..2..........
    ■读取数据1
    2021-08-11 14:36:00.650 SMBus 读取0x0021 7字节数据:0x0000:40 80 37 00 21 32 00 00 00 00 00 00 00 00 00 00 00 00 @ 7...2..........
    ■写入 CMD1='PBM'
    2021-08-11 14:36:49.983 SMBus 写入0x0021 5字节数据:0x0000:08 50 42 4D 73 00 00 00 00 00 00 00 00 00 00 00 00 .PbM..........
    ■读取 CMD1=0h
    2021-08-11 14:37:01.894 SMBus 读取0x0021 5字节数据:0x0000:04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    μ■读取数据1:PatchStartStatus=0x05h (无效的从器件地址)
    2021-08-11 14:37:16.551 SMBus 读取0x0021 7字节数据:0x0000:40 05 37 00 21 32 00 00 00 00 00 00 00 00 00 00 00 00 @ 7...2..........
    ------------------------------------------------------------------

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

    从 Data1读回的数据与您所写的数据不匹配、看起来您的数据大小太大、为0x3705与0x3780。

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

    感谢您的回答。
    但是,问题仍未解决。

    不是 Data1寄存器从0x3780h 更改为0x3705h 的原因、而是在写入"PBM"后、输出 Data1寄存器的第一个字节更改为0x05 (无效从地址)
    添加到 CMD1寄存器?

    如果包大小有问题、输出 Data1寄存器0x04的第一个字节(无效的包大小)是否不是?

    通过查看 TPS25750主机接口技术参考手册的"图4-1"和"3.3.1'PBM'启动补丁突发模式下载序列"、我了解到了这一点。
    我的理解是错误的吗?

    答案是捆绑包的大小很大、所以我将其设置为0x100h、但它变成了0x105h。
    这是否意味着捆绑包的大小很小?(手册中没有此类说明。)
    描述了 USB2ANY 的日志。
    ------------------------------------------------------------------
    2021-08-17 09:38:54.436调试日志记录已启用
    2021-08-17 09:38:54.436 PacketLogging 已禁用
    2021-08-17 09:38:54.436分析已禁用
    2021-08-17 09:38:54.610
    2021-08-17 09:38:54.611信息:数据包日志记录已禁用
    2021-08-17 09:38:54.612信息:活动日志记录已启用
    2021-08-17 09:38:55.255信息:目标电源:3.3V 关闭、5.0V 关闭、Adj 关闭
    2021-08-17 09:38:55.318信息:找到1个 USB2ANY 控制器。
    2021-08-17 09:38:55.414信息:已成功打开 USB2ANY S/N 2572435119000900!
    2021-08-17 09:38:55.430信息:固件版本:2.8.2.0
    2021-08-17 09:38:55.493信息:已启用 EVM 检测中断处理程序
    2021-08-17 09:38:55.494 I2C:I2C 位速率设置为400kHz。
    2021-08-17 09:38:55.497 I2C:I2C 内部地址大小更改为1字节
    2021-08-17 09:38:55.498 I2C:I2C 内部地址更改为00
    2021-08-17 09:39:06.915 SMBus:从器件地址更改为0x21
    ■读取 INT_EVENT1.ReadyForPatch=1b
    2021-08-17 09:39:25.892 SMBus 读取0x0021 17字节数据:0x0000:0B 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00…
    ■Reead mode='PTCH'
    2021-08-17 09:39:44.029 SMBus 读取0x0021 5字节数据:0x0000:04 50 54 43 48 00 00 00 00 00 00 00 00 00 00 00 00 .PTCH ..........
    ★写入数据1:包大小= 0x0100h、I2C 从机地址= 0x21h、超时值= 0x32h
    2021-08-17 09:40:04.184 SMBus 写入0x0021 7字节数据:0x0000:09 00 01 00 21 32 00 00 00 00 00 00 00 00 00 00 00 00 00 !2..........
    ■读取数据1
    2021-08-17 09:40:24.371 SMBus 读取0x0021 7字节数据:0x0000:40 00 01 00 21 32 00 00 00 00 00 00 00 00 00 00 00 00 @...!2..........
    ■写入 CMD1='PBM'
    2021-08-17 09:42:12.670 SMBus 写入0x0021 5字节数据:0x0000:08 50 42 4D 73 00 00 00 00 00 00 00 00 00 00 00 00 .PbM..........
    ■读取 CMD1=0h
    2021-08-17 09:42:34.819 SMBus 读取0x0021 5字节数据:0x0000:04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    μ■读取数据1:PatchStartStatus=0x05h (无效的从器件地址)
    2021-08-17 09:42:56.831 SMBus 读取0x0021 7字节数据:0x0000:40 05 01 00 21 32 00 00 00 00 00 00 00 00 00 00 00 @...!2..........
    ------------------------------------------------------------------

    基本问题是、我是否可以使用 TPS25750EVM 通过 I2C 总线更新补丁包?

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

    我在查看数据读回是否匹配、但流检查点是查看 data1是否为0。 让我回到您的问题上。

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

    这一进程使过去的几个人感到困惑。

    理解它的最简单方法是、在您的情况下、涉及到 CMD1和 Data1寄存器(0x08和0x09)的4CC 命令的所有写入和读取操作都是针对 I2C 地址(0x21)。

    您突出显示的读操作应为0x21地址。

    您还将突发数据的 I2C 地址配置为与 I2C 地址相同。  这不奏效

      写入 Data1:捆绑包大小=0x0100h、I2C 从机地址=0x21h、超时值=0x32h
    2021-08-17 09:40:04.184 SMBus 写入0x0021 7字节数据:0x0000:09 00 01 00 21 32 00 00 00 00 00 00 00 00 00 00 00 00 00 !2..........

    该地址必须不同于 I2C 地址和 I2C 总线上的任何其他器件。  我通常建议使用0x50、因为它几乎总是用于 EEPROM、并且总线上不可能有 EEPROM。

    我建议您将此行更改为:  

     写入 Data1:捆绑包大小=0x0100h、I2C 从机地址=0x21h、超时值=0x32h
    2021-08-17 09:40:04.184 SMBus 写入0x0021 7字节数据:0x0000:09 00 01 00  50 32 00 00 00 00 00 00 00 00 00 00 00 00 00 !2..........

    如果执行此操作、则使用0x50地址对低区域二进制文件的 C 数组进行批量写入、然后按照流程图中的其余部分进行操作。

    此部分通常会使客户跳闸。

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

    感谢您的回答。

    正如您回答的那样、我将其修改为"I2C 从地址= 0x50h"、并且 Data1寄存器变为0x00h (成功的补丁启动)。

    USB2ANY 的日志。
    ------------------------------------------------------------------
    2021-08-1809:34:16.024信息:数据包日志记录已禁用
    2021-08-1809:34:16.025信息:活动日志记录已启用
    2021-08-18 09:34:16.581信息:目标电源:3.3V 关闭、5.0V 关闭、Adj 关闭
    2021-08-18 09:34:16.705信息:找到1个 USB2ANY 控制器。
    2021-08-18 09:34:16.811信息:已成功打开 USB2ANY S/N 2572435119000900!
    2021-08-18 09:34:16.842信息:固件版本:2.8.2.0
    2021-08-18 09:34:16.894信息:已启用 EVM 检测中断处理程序
    2021-08-18 09:34:16.895 I2C:I2C 位速率设置为400kHz。
    2021-08-18 09:34:16.923 I2C:I2C 内部地址大小更改为1字节
    2021-08-18 09:34:16.924 I2C:I2C 内部地址更改为00
    2021-08-18 09:36:24.233 SMBus:从器件地址更改为0x21
    ■读取 INT_EVENT1.ReadyForPatch=1b
    2021-08-18 09:36:24.251 SMBus 读取0x0021 17字节数据:0x0000:0B 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00…
    ■Reead mode='PTCH'
    2021-08-18 09:37:39.391 SMBus 读取0x0021 5字节数据:0x0000:04 50 54 43 48 00 00 00 00 00 00 00 00 00 00 00 00 .PTCH ..........
    ★写入数据1:捆绑包大小= 0x3780h、I2C 从机地址= 0x50h、超时值= 0x32h
    2021-08-18 09:38:34.931 SMBus 写入0x0021 7字节数据:0x0000:09 80 37 00 50 32 00 00 00 00 00 00 00 00 00 00 00 00..7..P2…
    ■读取数据1
    2021-08-18 09:38:44.650 SMBus 读取0x0021 7字节数据:0x0000:40 80 37 00 50 32 00 00 00 00 00 00 00 00 00 00 00 00 @ 7.p2..........
    ■写入 CMD1='PBM'
    2021-08-18 09:39:11.417 SMBus 写入0x0021 5字节数据:0x0000:08 50 42 4D 73 00 00 00 00 00 00 00 00 00 00 00 00 .PbM..........
    ■读取 CMD1=0h
    2021-08-18 09:39:23.973 SMBus 读取0x0021 5字节数据:0x0000:04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    ★读取数据1:PatchStartStatus=0x00h (修补程序启动成功)
    2021-08-18 09:39:33.912 SMBus 读取0x0021 7字节数据:0x0000:40 00 00 00 50 32 00 00 00 00 00 00 00 00 00 00 00 00 00 @……P2…
    ------------------------------------------------------------------

    随后对低范围二进制文件的 C 数组进行批量写入也很成功、
    我们能够验证模式寄存器是否已更改为"app"。

    非常感谢您的支持。

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

    很高兴能够帮助您解决此问题。

    一旦您对您的状态感到满意、请单击此选项可解决我的问题。