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:向 BQ 充电器的 EEPROM 添加额外的配置参数

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1515261/tps25751-adding-extra-config-parameters-to-eeprom-for-bq-charger

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

工具/软件:

我将 TPS25751S 与 BQ25731 充电器芯片配合使用。   除了充电电流和充电电压、我在 USBCPD 中找不到任何内容来向 BQ 芯片添加更多配置。  我想添加要发送到 BQ 的更多配置数据 (EEPROM 必须已经包含要发送到 BQ2731 的信息、因为充电电流和充电电压数据存储在 EEPROM 上、并在启动时从 TPS 写入 BQ)。  我目前需要为 BQ 配置电流检测电阻器。  我认为默认值为 5m Ω、但我使用的是 10m Ω、这受支持、但需要通过 I2C 在 BQ 芯片上进行配置。  在启动时、我还可能想要在芯片上配置更多内容。   我知道我可以通过 TPS25751 使用 MCU 中的 I2C 子命令来执行此操作、但这看起来很慢且效率很低(数据表显示每个命令需要 5 秒)、并且对于不会改变的硬件配置、启动时会令人沮丧。  我可以看到的其他命令是设置我希望 BQ 上可用的 ADC(通过 TPS25751 的子命令)。  请告诉我、是否有办法直接操作 EEPROM 的二进制文件、或者有另一个具有更高级功能的 USBCPD 应用工具、以便将初始化 I2C 命令添加到将发送到 BQ25731 芯片的 EEPROM。  谢谢。

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

    您好、John:  

    感谢您联系我们!

    TPS25751 会控制 BQ25731 上协商所需电压/电流所需的寄存器。  

    1- 上电时、TPS25751 会将 BQ25731 配置为执行以下操作:  

    • 禁用看门狗计时器
    • 禁用 OTG  
    • 禁用充电
    • 设置充电电压(基于 GUI 中的 Q14)
    • 设置充电电流(基于 Q15)
    • 将 OTG 电压设置为 5V  
    • 将 OTG 电流设置为 950mA

    2-  当 PD 控制器处于供电状态时、TPS25751 会将 BQ25731 配置 为:  

    • 启用 OTG 模式
    •  根据 Transmit Source Capabilities (Transmit Source Capabilities) 中的供电 PDO 中设置的电压设置 OTG 电压 (PD 上的 Reg0x32)
    •  根据在 Transmit Source Capabilities  (Transmit Source Capabilities) 的 Source PDO 中设置的电流设置 OTG 电流 (PD 上的 Reg0x32)

    注意:OTG 电压/电流根据协商的 PDO 进行动态更改(例如 5V -> 9V -> 15V -> 20V -> 15V -> 15V -> 9V ->5V)

    3- 当 PD 控制器处于灌入状态时、TPS25751 会将 BQ25731 配置 为:

    • 根据用户在 GUI 调查问卷中的输入设置以下参数:
      • 基于 Q13 的输入电压限制 (VIINDPM)  
      • 基于 Q12 和有效 PD 合约的输入电流限制 (IINDPM)  
    • 启用充电   

    4- 在电压转换期间、PD 将电池充电器配置为安全放电  

    5- 分离或硬复位时、PD 将电池充电器配置为禁用 OTG/充电模式。  

    通常、不需要进行进一步控制、因为必要的控制由 PD 控制器驱动。 为了澄清一下、如果您的系统需要进一步控制电池充电器、MCU 需要使用 4CC 命令'I2Cw'通过 PD 控制器写入电池充电器。 不需要在 I2C 写入之间等待 5 秒、这只是一项建议、应理解这在大多数系统中是不可行的。  

    对于检测电阻、TPS25751 配置的充电电流和输入电流限制计算基于默认的 5m Ω 检测电阻、并会相应地设置这些寄存器值。 遗憾的是、我们目前没有基于 10m Ω 的计算方法。  

    如果您有其他问题/疑虑、请告知我。  

    此致、  

    Aya Khedr  

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

    您好 Aya、

    感谢您的回答。  总之、每当 BQ 为灌入状态时、TPS 都会写入 BQ、而不是在初始启动时写入。  是这样吗?   这意味着更新 BQ 上寄存器的唯一方法是 4CC 命令、并更新寄存器 0x31 以将位 2 和位 3 更改为 0、从而将检测电阻设置为 10m Ω。  我在这里也是对的吗?   本技术手册是关于 4CC 命令的冗长乏味阅读。  当 I2Cw 命令完成时、您是否建议轮询 DATAX 寄存器(我认为是 0x09)、直到该寄存器发生变化、或者您是否应该轮询命令寄存器(我认为为 0x08)以看到该变化。  如果有任何关于有效使用 4CC 命令将 I2C 传递到 BQ 并确保写入完成并为另一个命令做好准备的建议、都将非常有用。

    谢谢、

    JT

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

    您好、John:  

    总之、每次 BQ 为灌电流状态、而不是在初始启动时、TPS 都会写入 BQ。  是这样吗?  [/报价]

    TPS 在初始启动时写入 BQ 以初始化某些设置、但每次协商新合约时也会写入 BQ、正确。  

    这意味着更新 BQ 上寄存器的唯一方法是 4CC 命令并更新寄存器 0x31 以将位 2 和位 3 更改为 0、从而将检测电阻设置为 10m Ω。  我在这里也是对的吗?  [/报价]

    正确的是、您可以通过 PD 控制器 4CC 命令写入 BQ。 PD I2C 是读取 — 修改-写入、因此您需要将完整数据写入寄存器 0x31。  

    我唯一担心的是 PD 控制器内部的计算基于 5m Ω 检测电阻。 我需要回复您、说明更新 BQ 寄存器 0x31 是否足够。 我还将在周末联系您、详细了解 4CC 命令。  

    此致、  

    Aya Khedr  

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

    再次感谢。  我确实检查了、将寄存器 0x31 更改为 10m Ω 实际上并不有助于它调整以适应适当的电流。  似乎我必须知道寄存器 0x03(充电电流寄存器)中的电流分辨率从 128mV/位变为 64mV/位。  我尝试在充电过程中更改此值(动态)、但不会让我感到失望。  如果我需要非常快速的充电或安全的充电速度、或者需要增加用于直通充电的输入电流、那么我肯定要执行此操作、即动态更改充电电流。   这可能已经超出了该主题的范围、因此如果您希望我创建一个新主题、我很高兴。   我认为我也对 4CC 命令有一定的关注(顺便说一句,您的技术参考手册的格式不正确,很难确定出此问题,工作示例对其他人有帮助)、因此您无需进行更多研究。  如上所述、我现在更专注于能够在充电/放电期间配置 BQ。

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

    您好、John:  

    我尝试在充电期间更改此设置(即时)、但不会让我感到失望。  如果我需要非常快速的充电或安全的充电速度、或者需要增加用于直通充电的输入电流、那么我肯定要执行此操作、即动态更改充电电流。  [/报价]

    TPS25751 根据协商的 PD 合约管理输入电流限制。 例如、如果协商的电流为 3A、它会将输入电流限制设置为 3A 或略高(基于 GUI 中的 Q12)。 这可以确保电池消耗的电流不会超过远端提供的电流 在电压转换或电源角色交换期间、BQ 充电被禁用、因为这是 PD 规范中的一项要求。  

    10m Ω 是否是系统的硬性要求?  

    此致、  

    Aya Khedr

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

    10m Ω 是我现在系统上的配置。  我很可能会将它们更改为 5m Ω、因为这只是一个痛苦、我不需要额外的分辨率。  我所需要的是能够在 PD 协商后更改 BQ 的一些设置。  例如、电池通常以 1.675mA 充电(我拥有 3 节电池为 12.6V)。  PD 端口协商由 PD 器件提供 15V/3A 电流、为电池充电高达 45W。  由于来自 EEPROM 配置的 1.675A 充电电流、I 最终得到的是~21W 的被拉取 (IE 12.6V * 1.675A)。  但是、有更多的可用功率(高达 45W)。  电池可在 12.6V 电压下维持高达~3A 的输入电流、接近 45W、但随着时间的推移、会更快地降低电池寿命。  如果需要、我想能够根据需要(在充电期间或初始 PD 协商之后)动态地将输入电流从 EEPROM 中的设定值 (1.675A) 增加。  在 PD 协商后和充电期间、我调整了 BQ 的寄存器以通过 4CC 命令增加充电电流、并且它没有更新值或增大电流。  我可以在未连接任何内容时更新 BQ 寄存器、但它会被灌电流上 EEPROM 中的值覆盖(如您提到的)。  我猜我必须停止充电、通过 4CC 命令对 BQ 进行一些配置、然后在不再次发生 PD 协商的情况下重新开始充电、EEPROM 将覆盖我需要的内容。  我只是不知道为了做到这一点,我必须触发什么样的事件链。  这正是我需要您的专业知识的地方。  谢谢。

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

    您好、John:  

    感谢您提供更多详细信息。 我将按照星期四推荐的顺序回复您。  

    此致、  

    Aya Khedr

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

    您好 Aya、

    我在几个星期内没有听到你的声音。  您是否有机会对此进行调查?  使用此组合的高级特性时还有很多问题、例如 PPS 以及我也有其他问题。  请告诉我您发现了有关此问题的内容(动态更新充电电流)。

    谢谢。

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

    您好、John:  

    对延迟深表歉意。  

    PD 控制器 根据有源 PD 合约设置输入电流限制 (BQ 上的寄存器 0Fh)、并根据需要进行动态调整。 例如、如果协商 15V/3A 合约、则输入电流限制将设置为~3A(可根据 GUI 中的 Q12 将其设置为高 x%)。 如果协商 15V/2A 合约、则输入电流限制将设置为~2A。 在 GUI 的 Q15 中设置一次充电电流。 我建议联系电池充电器团队、了解设置充电电流的理想方法(是否可以从一开始就将其设置为 3A?)。  

    就动态调整充电电流而言、我建议的流程如下:  

    1 — 设置在协商新的 PD 合约时发出警报的中断事件(寄存器 14h)。  

    2 — 读取活动 PDO 合约寄存器 34h、以确定已协商的 PDO(例如 15V/3A PDO)

    3-将 BQ 上的充电电流调整为所需值。 主机可以通过 4CC 命令'I2Cw'写入 BQ。 请注意、输入电流限制寄存器将由 PD 控制器自动设置、不需要由主机进行调整。  

    使用此组合的高级功能还有很多问题、例如 PPS 和其他、我也对
    有疑问。

    有关新主题的问题、请发布新主题以提高可跟踪性。  

    此致、  

    Aya Khedr