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.

[参考译文] TPS25751:BQ25756 的配置问题

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1519353/tps25751-configuration-issue-with-bq25756

器件型号:TPS25751
主题中讨论的其他部件:BQ25756、、 BQ25756EVM

工具/软件:

您好、
我们有一个由 TPS25751 PD、BQ25756 充电器和 EEPROM (CAT24C512) 组成的三组模块、这些模块通过 I2Cc 总线连接。 没有 MCU 在运行。 我们要通过 I2Ct 总线写入 EEPROM。 为此、我们实现了 TI 应用手册 SLVAFL1 中的更新流程TI 用户指南 SLVUCR8A 中的补丁流程 、以及只需通过 FLwd 将完整二进制文件写入 EEPROM 的初始刷写。

我们做了什么:

初始状态:

Mode:PTCH
Patch Mode:True

TPS25751 STATUS (0x1A): 0x0000000000

Interpreted Fields:
  Plug Present            (0)  : 0 → No plug connected
  Connection State       (3:1): 0 → No connection
  Plug Orientation         (4): 0 → CC1 (upright)
  Port Role                (5): 0 → Sink
  Data Role                (6): 0 → UFP (Device)
  VBUS Status         (21:20): 0 → vSafe0V (< 0.8V)
  USB Host Present     (23:22): 0 → No host
  Acting as Legacy     (25:24): 0 → Not in legacy mode
  BIST in Progress        (27): 0 → No
  SoC Ack Timeout         (30): 0 → Responded

Boot Flags Register Interpretation
----------------------------------
Revision ID: 193
Patch Config Source: 0 (No configuration has been loaded)
System Thermal Shutdown (TSD): No
Region 1 CRC Fail: No
Region 0 CRC Fail: No
Patch Download Error: No
Region 1 EEPROM Error: No
Region 0 EEPROM Error: No
Region 1 Invalid: Yes
Region 0 Invalid: Yes
Region 1 Attempted: Yes
Region 0 Attempted: Yes
I2C EEPROM Present: Yes
Dead Battery Flag: No
Patch Header Error: No

Reading BQ25756 configuration registers...
Charge Voltage Limit: 1.504 V
Charge Current Limit: 6.400 A
Termination Current Limit : 6.600 A
[...]

  1. 将完整二进制文件修补到 TPS 后:

    Mode:APP 
    Patch Mode:False
    
    TPS25751 STATUS (0x1A): 0x0000000005
    
    Interpreted Fields:
      Plug Present            (0)  : 1 → Plug connected
      Connection State       (3:1): 2 → Audio connection (Ra/Ra)
      Plug Orientation         (4): 0 → CC1 (upright)
      Port Role                (5): 0 → Sink
      Data Role                (6): 0 → UFP (Device)
      VBUS Status         (21:20): 0 → vSafe0V (< 0.8V)
      USB Host Present     (23:22): 0 → No host
      Acting as Legacy     (25:24): 0 → Not in legacy mode
      BIST in Progress        (27): 0 → No
      SoC Ack Timeout         (30): 0 → Responded
    
    Boot Flags Register Interpretation
    ----------------------------------
    Revision ID: 193
    Patch Config Source: 6 (Configuration loaded from I2C)
    System Thermal Shutdown (TSD): No
    Region 1 CRC Fail: No
    Region 0 CRC Fail: No
    Patch Download Error: No
    Region 1 EEPROM Error: No
    Region 0 EEPROM Error: No
    Region 1 Invalid: Yes
    Region 0 Invalid: Yes
    Region 1 Attempted: Yes
    Region 0 Attempted: Yes
    I2C EEPROM Present: Yes
    Dead Battery Flag: No
    Patch Header Error: No
    
    Reading BQ25756 configuration registers...
    Charge Voltage Limit: 1.566 V
    Charge Current Limit: 0.400 A
    Termination Current Limit : 0.250 A

  2. 将完整二进制文件修补到 EEPROM(地址 0)后:

    Mode:APP 
    Patch Mode:False
    
    TPS25751 STATUS (0x1A): 0x0000000005
    
    Interpreted Fields:
      Plug Present            (0)  : 1 → Plug connected
      Connection State       (3:1): 2 → Audio connection (Ra/Ra)
      Plug Orientation         (4): 0 → CC1 (upright)
      Port Role                (5): 0 → Sink
      Data Role                (6): 0 → UFP (Device)
      VBUS Status         (21:20): 0 → vSafe0V (< 0.8V)
      USB Host Present     (23:22): 0 → No host
      Acting as Legacy     (25:24): 0 → Not in legacy mode
      BIST in Progress        (27): 0 → No
      SoC Ack Timeout         (30): 0 → Responded
    
    Boot Flags Register Interpretation
    ----------------------------------
    Revision ID: 193
    Patch Config Source: 5 (Configuration loaded from EEPROM)
    System Thermal Shutdown (TSD): No
    Region 1 CRC Fail: No
    Region 0 CRC Fail: No
    Patch Download Error: No
    Region 1 EEPROM Error: No
    Region 0 EEPROM Error: No
    Region 1 Invalid: No
    Region 0 Invalid: No
    Region 1 Attempted: No
    Region 0 Attempted: Yes
    I2C EEPROM Present: Yes
    Dead Battery Flag: No
    Patch Header Error: No
    
    Reading BQ25756 configuration registers...
    Charge Voltage Limit: 1.566 V
    Charge Current Limit: 0.400 A
    Termination Current Limit : 0.250 A

刷写过程中没有错误。 也可以使用低二进制文件更新区域、而不会出现错误。

我们的问题是、BQ25756 显示的值与 USBCPD 应用中配置的值不匹配(例如,充电电流限制设置为 2A)。 也能更新 EEPROM 区域。 我们可以看到 TPS 从新更新的区域引导、但 BQ25756 的值保持不变。 为什么状态寄存器 0x1A 显示 0x5(已连接插头)?

我们尝试过的方法:

  • 读回 EEPROM 会得到一个与 USB-EEPROM PD 应用程序自定义工具生成的二进制 blob 相同的二进制 blob。

  • 我们将相同的二进制文件修补到 TPS25751EVM + BQ25756EVM 中。 此处、充电电流限制正确设置为 2A。

  • 将各种低级二进制文件修补到 TPS 上。 每次输出都保持不变。

我们做什么错了?

谢谢、

Tobias

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

    尊敬的 Tobias:

    TPS25751 I2C 接口遵循 SMBus 协议。 第一个“数据“字节指示要从寄存器读取的字节计数。 在本例中、表示状态 (0x1A) 寄存器最多有 5 个可读字节。 您不需要读取所有字节(例如,如果您只需要插入式连接,则可以选择仅读取第一个字节)

    关于充电电流、您可以分享您正在使用的 json 吗?

    此外、您能否在上电时获得 TPS25751 I2Cc 总线的 I2C 日志? 我们需要确认 TPS25751 在启动时是否与 EEPROM 和 BQ25756 正确通信。

    如何验证充电电流是否不正确?

    谢谢。此致、

    Chris

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

    您好、Chris、

    感谢您的答复。

    • 我们使用的 json:

    {
      "questionnaire": {
        "device": "TPS25751",
        "toolBuildVersion": "1.0.2",
        "answers": [
          null,
          4,
          4,
          3,
          1,
          0,
          3,
          0,
          1,
          1,
          1,
          3,
          1,
          0,
          1.566,
          2,
          0.25,
          0.5,
          0
        ],
        "vendorId": "0000",
        "productId": "0000",
        "version": "1.0.0.2"
      }
    }

    • 遗憾的是、我无法在 I2Cc 总线上记录 I2C 通信。 但我可以通过 I2Cr 和 I2Cw 4CC 命令访问 BQ25756。
    • “您如何验证充电电流是否不正确?“ -->启动后、我通过 I2Ct 与 PD 连接并读取 BQ25756 寄存器与 I2Cr 和 I2Cw 4CC 命令。

    谢谢、

    Tobias

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

    尊敬的 Tobias:

    如何为 TPS25751 供电? 来自 VIN3V3 还是 Type-C 连接器?

    要确认映像是否已从 EEPROM 正确加载、您能否尝试以下操作:

    1. 生成新映像
      1. 在新图像中、将“客户使用字“(0x06) 修改为具有一些非零值(1234、abcd,只是非零)。 您需要进入 Advanced config
    2. 将其加载到您的设计中
    3. 读取寄存器 0x06 并确认其更新正确。

    如果没有 I2C 日志、调试可能会很困难。 如果 EEPROM 上的映像与您在 EVM 上使用的映像匹配、则只要 BQ25756 正确引导、TPS25751 就应正确对其进行编程。 我们希望在上电时看到一些 I2C 流量、这些流量使用您设置的值对 BQ 进行编程。

    由于映像在 EVM 上工作正常、我认为原理图或启动可能存在一些差异、从而影响 I2C。

    由于 I2Cw 和 I2Cr 似乎可以正常工作、因此我们可以假设 I2C 已正确连接、并且问题可能与引导 序列有关。

    如果您可以回读 0x06 中的正确值、敬请告知。

    谢谢。此致、

    Chris

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

    您好、Chris、

    • 电源来自 VIN3V3
    • 我将 0x1234 和 0xabcd 放入客户使用字中、并在更新 EEPROM 并复位 TPS 寄存器 0x06 是(原始)0x34120000cdab0000(这是正确的,因为字节顺序很小!?)

    或者、刷写时是否必须反转二进制文件(每字节)?

    此致、

    Tobias

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

    尊敬的 Tobias:

    是的、字节顺序很小、没关系、至少要确认映像应该正确加载。

    我使用您的配置和 EVM 进行了快速测试、似乎都能正常工作。

    还需要注意的是、首次启动时充电电流最初设置为 0。 当连接 USB-C PD 供电方并需要将端口置于受电/充电模式时、我们将设定充电电流的值= 2A。 如果您在引导后以及在将任何 USB-C PD 源连接到端口之前直接读取充电电流、则可以将其设置为 0、这意味着 BQ 默认为 400mA 作为最小可配置值。

    您能否尝试将 Type-C 源连接到端口并重新读取充电电流寄存器?

    谢谢。此致、

    Chris

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

    您好、Chris、

    再次感谢您的帮助。

    不同状态下 BQ 寄存器的内容:

    未刷写 EEPROM:

    Charge Voltage Limit: 1.504 V
    Charge Current Limit: 6.400 A
    Termination Current Limit : 6.600 A

    使用刷写的 EEPROM(未插入 usb-c):

    Charge Voltage Limit: 1.566 V
    Charge Current Limit: 0.400 A
    Termination Current Limit : 0.250 A

    使用刷写的 EEPROM 并插入 USB-C:

    Charge Voltage Limit: 1.504 V
    Charge Current Limit: 0.000 A
    Termination Current Limit : 0.000 A

    在所有三种情况下、电源正常状态标志都保持“非电源正常“状态。

    谢谢、

    Tobias

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

    Tobias,

    未刷写 EEPROM: 可能没问题? 这可能只是默认设置。 我主要支持 PD 控制器 IC、因此不能对 BQ 发表过多评论。

    使用刷写的 EEPROM: 看起来正确、充电电压和电流与 json 相匹配。 在初始启动时、我们对进行编程  

    使用刷写的 EEPROM 并插入 USB-C:  不确定此处发生了什么、我不希望 TPS25751 将所读取的寄存器设为零、而这正是您正在读取的值看起来表明的值。 是否确定读取操作正确? 您是否可以通过任何方法探测 I2C 线路以确认读取有效?

    如何为系统供电? 在第 3 部分中、插入 USB-C 后、BQ25756 是否会因为任何原因而断电?

    您如何读取寄存器? 使用 I2Cr/I2Cw? 如何直接从 BQ 读取?

    TPS25751 不应将值 0 编程为终止电流、我希望 BQ 器件在下电上电时设置默认值、而不是零、因此这种行为似乎很奇怪。

    此时确认的最佳方法是连接一些 I2C 解码器。

    这是 I2C 在上电时的样子。 您可以看到对充电电压、终止电流和充电电流寄存器的写入值、这与您在“使用刷写的 EEPROM“情况下读取寄存器时看到的值相匹配。

    我正在与 BQ 团队进行检查、以确认侧面的寄存器行为。

    谢谢。此致、

    Chris

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

    您好、Chris、

    我们现在设法获得了 I2C 解码器。 上电期间收到的 I2C 信号看起来几乎与您的图像相同、第一次接触后预期只读取充电器:

    0x6B(W) 0x33
    0x6B(R) 0x72 19

    -系统由电池供电、因此 TPS 使用 VIN_3V3。

    - I 读/写充电器寄存器具有 I2Cr 和 I2Cw。 使用 I2Cw 时、我遇到了与手动操作的偏差。 如果我想从手动状态将 0xdc 发送到充电器的寄存器 0x17、我会将 0x6B 0x01 0x00 0x17 0xDC 放入 TPS 数据寄存器中。 这样、我看到 TPS 发送 0x6B (W) 0x00 17. 我认为长度必须只有一个字节、有效载荷中包含寄存器偏移量。 通过将 0x6B 0x02 0x17 0xDC 放入 TPS 数据寄存器、我设法将 0xdc 保存到寄存器 0x17 中。 即使没有 I2C 消息离开 TPS、I2Cw 命令也始终会返回 ACK。

    当插入 USB-C 时、我会看到 TPS 定期发送

    0x6B(W) 0x19 21.
    0x6B(W) 0x33
    0x6B(R) 0x0E 1B

    此致、

    Tobias

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

    尊敬的 Tobias:

    初始读取应该没问题。 如果写入看起来相似、那么您应该可以正常工作、并且映像似乎正在正确加载。

    -我可以通过 I2Cr 和 I2Cw 读取/写入充电器寄存器。 使用 I2Cw 时、我遇到了与手动操作的偏差。 如果我想从手动状态将 0xdc 发送到充电器的寄存器 0x17、我会将 0x6B 0x01 0x00 0x17 0xDC 放入 TPS 数据寄存器中。 这样、我看到 TPS 发送 0x6B (W) 0x00 17. 我认为长度必须只有一个字节、有效载荷中包含寄存器偏移量。 通过将 0x6B 0x02 0x17 0xDC 放入 TPS 数据寄存器、我设法将 0xdc 保存到寄存器 0x17 中。 即使没有 I2C 消息离开 TPS、I2Cw 命令也始终会返回 ACK。

    是的、您答对了、我们正在处理的 TRM 中有一个拼写错误。 请参阅下面的以了解正确的格式。

    插入 usb-c 时、我会看到 TPS 定期发送

    这没关系、拔出时会发送一些“安全配置“写入、以将 BQ 置于已知状态、以便下次重新连接。

    此主题是否有任何未解决的问题? 如果我漏掉了任何东西、或者您有任何其他问题、请告诉我。

    谢谢。此致、

    Chris

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

    您好、Chris、

    我们的 PD +充电器+ BMS 系统仍然无法为电池充电。

    我刚在插入 USB-C 时观察到了 VBUS 保持 0V。

    我们现在想知道我们是否需要 PP_5V 来为 CCx 引脚供电?

    根据我们的了解、连接 USB-C 时、VBUS 为所有设备供电、以便 TPS 可以配置电源。 我们错了吗?

    此致、

    Tobias

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

    您好、Chris

    TPS 现在运行顺利。 它具有正确的配置、并且充电器也由其配置。 我们发现电子产品中存在一个导致 VBUS 无法正常工作的错误。

    我们仍然无法为电池充电、但我想我将在 BQ25756 论坛上推出一个新主题、因为 TPS 似乎现在工作正常。

    非常感谢您的帮助!

    Tobias