ZHDA309 September 2026 TPS61383-Q1
BQ76907-Q1 电池监控 IC 集成了一个多路复用电压 ADC,用于以差分方式测量各个电芯的电压,通过片上校准处理结果,并通过 I²C 直接命令将每个结果显示为带符号的 16 位整数。ADC 在正常模式下运行连续 ADSCAN 循环。每个环路时隙宽度均可独立编程(366μs、732μs、1.46ms、2.93ms),以转换速度换取有效分辨率(13-16 位)。默认的电芯时隙宽度 2.93ms 可提供 16 位有效分辨率。在睡眠模式下,ADC 以可编程计时器间隔运行一次完整突发,然后进入空闲状态以节省功耗。以正常模式为例,本节介绍在固件中实现可靠电芯电压读数的基本步骤。
| 时隙 | 测量 |
|---|---|
| 0 | 电芯 1 电压 (VC1 − VC0) |
| 1 | 电芯 2 电压 (VC2 − VC1) |
| 2 | 电芯 3 电压 (VC3 − VC2) |
| 3 | 电芯 4 电压 (VC4 − VC3) |
| 4 | 电芯 5 电压 (VC5 − VC4) |
| 5 | 电芯 6 电压 (VC6 − VC5) |
| 6 | 电芯 7 电压 (VC7 − VC6) |
| 7 | 共享时隙(轮换:TS、内部温度、堆栈、REG18、VSS) |
所有电芯电压均以直接 I²C 命令的形式提供。每个命令占用两个连续的寄存器地址,其中包含以毫伏为单位的小端字节序有符号 16 位结果。低字节位于偶数(基址)地址;高字节位于奇数(基址+1)地址。
| 地址 | 名称 | 类型 | 单位 | 访问 |
|---|---|---|---|---|
| 0x14–0x15 | Cell 1 电压 | I2 | mV | R |
| 0x16–0x17 | Cell 2 电压 | I2 | mV | R |
| 0x18–0x19 | Cell 3 电压 | I2 | mV | R |
| 0x1A–0x1B | Cell 4 电压 | I2 | mV | R |
| 0x1C–0x1D | Cell 5 电压 | I2 | mV | R |
| 0x1E–0x1F | Cell 6 电压 | I2 | mV | R |
| 0x20–0x21 | Cell 7 电压 | I2 | mV | R |
| 0x26–0x27 | Stack Voltage | U2 | mV | R |
BQ76907-Q1 以小端顺序返回 16 位 ADC 数据。以电芯 1 电压为例。寄存器 0x14 保存位 [7:0] (LSB);寄存器 0x15 保存位 [15:8] (MSB)。该值以毫伏为单位,因此无需缩放。负值(当电芯输入被驱动至略低于其基准电压,且未低于 −0.2V 下限时可能出现)以二进制补码编码。
| 寄存器 | 字节角色 | 位范围 | 示例 (2700mV) | 十六进制值 |
|---|---|---|---|---|
| 0x14 | LSB(字节 0) | 位 [7:0] | 2700 = 0x0A8C | 0x8C |
| 0x15 | MSB(字节 1) | 位 [15:8] | 2700 = 0x0A8C | 0x0A |
因此,重建公式为:voltage_mV = int16_t((Byte 1 << 8) | Byte 0)
I²C 块读取的自动递增行为意味着,发出从地址 0x14 开始的 2 字节读取命令会先返回字节 0,然后自动返回字节 1,无需重新寻址。在使用之前,将拼接后的结果转换为 int16_t,以正确处理二进制补码符号。因此,读取电芯 1 的字节格式为: