ZHDA340 October 2026 BQ21080 , BQ21088 , BQ25180 , BQ25186 , BQ25188 , BQ25190
在具有可拆卸可充电电池的应用中,系统需要知道电池是否已连接。检测这一点并不像读取 BAT 引脚上的电压那样简单。开路电池保护器 IC 可能会使已连接的电池看起来像未连接,而存储在 BAT 引脚电容上的残余电荷可能会使未连接的电池看起来像已连接。本应用简介描述了如何使用 BQ2519x 和 BQ2518x 线性电池充电器 IC 上可用的寄存器,在软件中实现电池移除检测。
此实现利用了当 VIN 已连接、充电已启用且未连接电池时发生的重复充电周期。图 1 显示了由此产生的 VBAT 行为:
图 1 未连接电池且充电已启用时的 BAT 引脚电压和充电状态中断该周期会导致充电状态位 (CHG_STAT) 在“正在充电”和“充电完成”之间交替。每次充电状态发生变化时,/INT 引脚上都会发出中断,从而产生重复的充电状态中断。
主机可以利用当输入源已连接、充电已启用且电池已断开时发生的重复充电状态中断,来启动一个检查电池是否已连接的序列。在禁用充电后,主机通过在 BUVLO 中断发生后读取 BUVLO_STAT 位,检查 BAT 引脚电压是否降至电池欠压锁定 (BUVLO) 阈值以下。在未连接电池时,BAT 引脚电容会放电至 BUVLO 阈值以下。然而,低电池电压也可能触发 BUVLO。通过将 BUVLO 阈值降低到最低设置并检查 BUVLO_STAT 位是否保持清零,通常可以将低电池电压与断开电池区分开来。以下序列检查这些条件,并可用于检测电池是否已连接:
图 2 电池移除检测序列电池移除检测伪代码如下所示:
Monitor battery:
Read CHG_STAT on each charger interrupt while VIN is valid and charging is enabled.
Treat constant-current and constant-voltage as CHARGING.
If two CHARGING ↔ CHARGE_DONE transitions occur
within around 50ms:
Disable charging immediately.
Mask charge-status interrupts; keep BUVLO interrupts enabled.
Wait for BUVLO_STAT, up to around 100ms.
If BUVLO is not detected:
Report removal not confirmed.
Restore normal settings and enable charging.
Reset monitoring.
Otherwise:
Set BUVLO to its minimum threshold.
If BUVLO_STAT is clear and remains clear
for around 100ms:
Report battery present.
Restore normal settings and enable charging.
Reset monitoring.
Otherwise:
Report battery presence not confirmed.
Leave charging disabled and BUVLO at its minimum setting.
| 时间间隔 | 时间 |
|---|---|
| 两次“正在充电”↔“充电完成”转换之间的最长时间 | 50ms |
| 禁用充电后等待 BUVLO 的时间 | 100ms |
| 将 BUVLO 降低到最低设置后检查 BUVLO 是否保持清零的时间 | 100ms |
这些示例时序必须根据应用中的 BAT 引脚电容和负载进行调整。
图 3 电池移除检测波形
图 4 电池移除检测波形(放大图)禁用充电的 I2C 事务可以在图 4 中的 SDA 线路上看到。大约 40ms 后,一个 BUVLO 中断脉冲表明 BUVLO 状态已发生变化。此延迟会随 BAT 引脚上的有效电容而变化,因此请在 PCB 上确认时序。
此方法适用于重新连接的电池电压高于最低 BUVLO 阈值,并且任何电池保护器都允许电池电压到达 BAT 引脚的情况。在电池存在状态未确认后,主机可以定期读取 BUVLO_STAT,同时保持充电禁用且 BUVLO 阈值处于最低设置。当电池重新连接并使 BAT 引脚电压升至 BUVLO 上升阈值以上时,BUVLO_STAT 清零。然后,主机可以恢复正常的 BUVLO 阈值和中断设置,启用充电,并重新开始监控。由于退出 BUVLO 不会产生 BUVLO 中断,因此需要轮询。图 5 显示了电池移除和重新连接,在主机读取到 BUVLO_STAT 已清零后启用充电。
图 5 电池移除和重新连接波形此方法还通过电池保护器检测电池重新连接。如果电池电压低于保护器的欠压保护 (UVP) 阈值,保护器会关断其放电 FET,以防止电池进一步放电。在放电 FET 关断的情况下,电池电压无法到达 BAT 引脚,因为放电 FET 体二极管会阻止电流从电池流向 BAT 引脚。因此,主机需要启用充电足够长时间,以使电池充电至 UVP 恢复阈值以上,并允许保护器开启放电 FET。保护器的恢复条件可在其数据表中找到。
在示例实现中,在电池存在状态未确认后,主机保持充电禁用,并继续检查电池是否重新连接。如果在一段时间后未检测到电池且 VIN 仍然有效,则主机恢复正常的 BUVLO 阈值和充电状态中断设置,然后启用充电一段时间,以便电池保护器有机会从 UVP 恢复。在此恢复时间之后,主机在启用充电的情况下恢复电池移除监控。如果未发生重复的“充电完成”至“充电完成”转换,则表明电池已连接并保持 BAT 引脚电压。在此示例中,电池保护器为 BQ29700,其 UVP 阈值为 2.8V,恢复迟滞为 100mV,因此 UVP 恢复阈值为 2.9V。图 6 展示了主机启用充电后电池保护器 UVP 恢复的示例。
图 6 电池保护器 UVP 恢复波形本应用简介描述了如何在 BQ2519x 和 BQ2518x 线性电池充电器 IC 上的软件中实现电池移除检测。该方法还支持电池重新连接和电池保护器恢复。