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.

[参考译文] BQ76952:无法启用平衡

Guru**** 2468030 points
Other Parts Discussed in Thread: BQ76952, BQSTUDIO, BQ76942

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1553108/bq76952-cannot-get-balancing-to-turn-on

器件型号:BQ76952
主题中讨论的其他器件: BQSTUDIOBQ76942

工具/软件:

少量背景:我来自之前使用 BQ764002 的电路板设计、尽管 IC 对于电气设计非常粗略、但可以轻松地与/控制进行通信。  (所有功能均有效。)  然后我 遇到了 BQ76952、它在电气设计方面比其他方面的表现要好几个光年、但 通信/控制却是一种皇家般的痛苦。   
平衡电路基于 SLUAA81A 第 4 页的图 2-2 中提供的低侧参考设计。  即使 FET 没有由于电池电压或其他原因而导通、我仍然应该会看到相应的电池电阻器上出现压降(根据参考设计,为 100R)  、或者至少 BQ76952 应该触发警报/故障标志。

不、我没有使用 BQStudio、也没有 EV2300/2400。   

到目前为止、BQ76952 以基本 的默认配置运行、直接基于 TI 参考设计的定制 PCBA 具有紧密、干净的布局。  这是我目前所知道的:

  • 芯片 上电正常(出现 1.8V 电源)
  • 默认 I2C 通信正常
  • 对命令和子命令的读取/写入经过测试可以正常工作(读取/写入以及进入/退出 CONFIG_MODE)  
  • 高侧 FET 驱动器(串联配置)功能测试正常、  启用时主 FET 的栅极 — 源极两端电压为 10V
  • 测试了空载下的睡眠功能(充电 FET 关断,电源通过体二极管)
  • 4S 电池电芯电压读数测试正常工作 (3.509v、3.519v、3.521v、3.515v)。   请注意、我对 BQ76952 使用的电池与我对 BQ764002 使用的电池完全相同、后者的平衡功能正常。
  • 电池组电压读数正常工作 (14.0v)
  • 内部温度读数为 29C(没有外部温度传感器连接到 TS1 或 TS3;TS2 是一个控制信号,上面有一个按钮,因此也没有热敏电阻)
  • 一些寄存器值:
    • FW_VERSION [0]= 0x9576 [大端字节序、因此 0x7695]
    • FW_VERSION [2]= 0x3600 [大端字节序、因此 0x0036]
    • FW_VERSION [4]= 0x2700 [大端字节序、因此 0x0027]
    • 警报原始状态= 0x0683
    • 电池状态= 0x0184
    • Safety Alert A/B/C ALL = 0x00
    • PF 状态 A/B/C/D ALL = 0x00
  • 配置在设置 ALARM_STATUS 的 INIT_COMPLETE 位并 设置 BATTERY_STATUS 的 POR 位后、通过进入 CONFIG_MODE 写入所有这些设置、然后退出 CONFIG_MODE、我将在 CONFIG_MODE 中设置:
    • “Balance Config“[寄存器 0x9335]= 0x0F。
      • 已尝试将其保留为默认 0x00、但尝试了 0x0F、以防 SLEEP 状态阻止主机启动的平衡。  没有变化。
      • 还尝试将其设置为 0x1F、以测试“禁用主机启动的平衡“是否有效、如果设置了该位、则为 CB_ACTIVE_CELLS 始终 读为 0。  所以有一些通信/变化。
    • “FET 选项“[reg 0x9308]= 0x1D、启用预放电 FET
    • “Balance Max Cells“[寄存器 0x933A]= 8。  它在 0 处应该没有问题、但只是为了以防万一而尝试了此操作。  没有变化。
    • “Charge Min Cell V“[reg 0x933B]和“Relax Min Cell V“[reg 0x933F]->将两者都设置为 3000 (mV、因此是 3.000v) 、以防我的电池低于默认的 3.9v 阈值是个问题。  没有变化。
    • “Vcell Mode“[reg 0x9304]->将其设置为 0x8007、以匹配实际的电芯配置、以防万一。  没有变化。

 BQ76952 即时接线:

请注意、根据参考设计、“VBUSBAT"具有“具有一个串联电阻器、一个串联二极管和一个 2.2uF 电容器。  是的、根据 SLUSE13B 表 16-3、所有寄存器均被禁用。

预期行为:

  1. 向 CB_ACTIVE_CELLS [sub-cmd 0x0083]~5x/s 写入一个位、以确保它不会超时
  2. 相应的电芯均衡 开始

实际行为:

  1. 向 CB_ACTIVE_CELLS [sub-cmd 0x0083]~5x/s 写入一个位、以确保它不会超时
  2. 没有任何反应
  3. “Alarm Raw Status“[cmd 0x64]位“CB"从“从不设置
  4. “CBSTATUS1"[sub-cmd“[sub-cmd 0x0085]始终为 0、表示没有平衡 时间

有趣的是、   以相同的 5x/s 间隔读回 CB_ACTIVE_CELLS 时、我注意到以下情况:

BQ76952 内部的一项功能是每秒在点上清除一次寄存器。  根据 SLUUBY2B 表 6-9、有许多内部功能以 1 秒的间隔运行、包括“电池平衡“、但这似乎是用于 自动电池平衡。  我在 https://github.com/LibreSolar/bms-firmware/blob/77c6206b92399028af6a5ca893afecc87236ee7f/drivers/bms_ic/bq769x2/bq769x2.c#L395-L401 中确实注意到 、如果 禁用了自动平衡、它们会将 “Balance Config“[寄存器 0x9335]设置为 0x00。  我尝试了—— 它没有做任何事情。

似乎是由于某种原因导致 BQ76952  在 1 秒内部循环中关闭电芯平衡、然后再将请求实际门控到 AFE、但是  全部 和失败标志相清除。

如果 BQ76952 未报告任何警报或失败、那么为什么它 在主机通过 CB_ACTIVE_CELLS 子命令请求时拒绝启用平衡?  我已经 失去了几个整天在这个单一的问题单...它停止了一段时间前是有趣的。

顺便说一句:文档勘误表:

  • 在 SLUUBY2B 的第 115 页上、我们发现 “CB_SET_LVL"[sub-cmd“[sub-cmd 0x0084]列为只写
  • 在 第 10 页的 SLUAA81A 中、 我们被告知 CB_SET_LVL “读取时返回阈值。“  我已经试着读了——不管写了什么、我都会得到 0x0000。   SLUAA81A 似乎不正确。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我知道这是一个愚蠢的东西,而且是。

    BQ76952 配置默认在上电时将 TS1 设置为电芯热敏电阻输入。

    我没有将热敏电阻连接到 TS1。

    通过 TS1_CONFIG 禁用 TS1、启用了电芯温度 (DA_CONFIG) 的内部温度、并且*poof*主机控制的电芯均衡效果良好。

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

    此外、 SLUAA11B 的另一个勘误表、第 21 页:

    BQ76942 不会处理 160S。  它是一个 3-10S AFE。