BMS电池管理芯片BQ76920芯片手册详细解读
一:引脚功能解读
- 放电相关引脚
- DSG(Pin 1):类型为 O(输出) ,是 Discharge FET driver(放电场效应管驱动器),用于驱动放电场效应管,控制电池放电通路的导通与截止。
- 充电相关引脚
- CHG(Pin 2):类型为 O(输出) ,是 Charge FET driver(充电场效应管驱动器),用于驱动充电场效应管,控制电池充电通路的导通与截止。
- 电源与接地引脚
- VSS(Pin 3):类型为 —(接地) ,是 Chip VSS(芯片接地引脚) ,为芯片提供接地电位。
- 通信引脚
- SDA(Pin 4):类型为 I/O(输入 / 输出) ,用于与主控制器进行 I²C 通信,传输数据。
- SCL(Pin 5):类型为 I(输入) ,用于与主控制器进行 I²C 通信,提供时钟信号。
- 温度监测引脚
- TS1(Pin 6):类型为 I(输入) ,是 Thermistor #1 positive terminal(热敏电阻 1 正极引脚 ),连接热敏电阻,用于监测电池温度。
- 电容及稳压引脚
- CAP1(Pin 7):类型为 O(输出) ,连接电容到 VSS,用于特定电路功能。
- REGOUT(Pin 8):类型为 P(电源输出) ,是 Output LDO(低压差线性稳压器输出引脚),提供稳定的输出电压。
- REGSRC(Pin 9):类型为 I(输入) ,是 Input source for output LDO(输出 LDO 的输入源引脚),为 LDO 提供输入电源。
- 电池连接引脚
- BAT(Pin 10):类型为 P(电源输入) ,连接 Battery (top - most terminal)(电池最顶端端子 ),即电池正极连接引脚。
- 未连接引脚
- NC(Pin 11):类型为 —(无连接) ,No connect(无连接引脚),该引脚不使用。
- 电池电压检测引脚
- VC5 - VC0(Pin 12 - Pin 17):类型均为 I(输入) ,分别用于 Sense voltage for 5th - 1st cell positive terminal(第 5 - 1 节电池正极电压检测 )以及 Sense voltage for 1st cell negative terminal(第 1 节电池负极电压检测 ),用于监测各节电池的电压。
- 电流检测引脚
- SRP(Pin 18):类型为 I(输入) ,是 Negative current sense (nearest VSS)(负电流检测,靠近 VSS ),用于检测负向电流。
- SRN(Pin 19):类型为 I(输入) ,是 Positive current sense(正向电流检测 ),用于检测正向电流。
- 报警及控制引脚
- ALERT(Pin 20):类型为 I/O(输入 / 输出) ,是 Alert output and override input(报警输出和覆盖输入引脚) ,用于输出报警信号或作为控制信号输入。
二:芯片内部子系统介绍
2.1 测量子系统
<1> 是将电池单体电压、电池组电流(用于累计电量计算)、外部热敏电阻温度和内部芯片温度数字化。能自动累加计算电池组总电压
<2> 通过 I²C 接口将数据传输给主控制器,采用 8 位循环冗余校验码(CRC)确保数据快速可靠传输 。
<3> 芯片使用 14 位 ADC 测量电池单体电压、温度等。
<4> 在进入正常模式时自动使能 ADC,且使能后过压(OV)和欠压(UV)保护功能生效
2.2 保护子系统
为电池组提供硬件保护,在主控制器无法响应故障时起作用。集成的保护功能包括电池组级别的过压、欠压、过流、过温等故障保护 。检测到外部二次保护(如看门狗故障)时,会触发 ALERT 引脚切换 ,并根据故障类型触发放电(DSG)和 / 或充电(CHG)场效应管驱动器动作,故障恢复由主微控制器处理。
2.3 控制子系统
实现一系列实用功能,包括直接控制低端 NCH 场效应管驱动器、电池均衡驱动器、ALERT 引脚数字输出、外部低压差线性稳压器(LDO)等
三:数据测量周期
3.1 无均衡时
对于 5 个连续电池组(如 VC1 - VC5),当该组内无电池进行均衡时,每个电池在 50ms 抽取窗口测量,每 250ms 可获得完整更新数据。
3.2 有均衡时
当有电池进行均衡时,受影响电池测量周期缩短至 12.5ms,以保证均衡功能正常且不影响过压、欠压保护。因电池均衡多在充电或闲置期,此时系统噪声对测量精度影响小,所以缩短抽取周期只用于有电池均衡的电池组 。如 CELLBAL1 寄存器位全为 0 时,VC1 - VC5 测量周期为 50ms ,有位为 1 时为 12.5ms;
四:ADC
4.1 使能要求
为使集成的过压和欠压保护功能运行,需使能 ADC 。
4.2 计算公式
V(cell) = GAIN x ADC(cell) + OFFSET
GAIN 单位为 μV/LSB ,OFFSET 单位为 mV ,存储在 EEPROM 中。
4.3 计算过程
在这里我给大家计算一下第一个0x1800
1.先计算GAIN×ADC(cell)的值:
380 μV/LSB×6144=380×6144 μV=2334720 μV
2.单位转换
因为1 mV=1000 μV,所以将2334720 μV转换为mV为:2334720÷1000=2334.72 mV
3.加上偏移量OFFSET
V(cell)=2334.72 mV+30 mV=2364.72 mV≈2365 mV
4.4 切换模式等待时间
从 SHIP 模式进入 NORMAL 模式后,读取初始电池电压数据前需等待特定时间:bq76920 为 250ms
五:库仑计
5.1 功能与原理
BQ76920 内置 :16 位积分型 ADC(库仑计数器 CC)用于测量流经电流检测电阻的累积电荷,积分周期为 250ms 。
5.2 工作模式
1.始终开启(ALWAYS ON)模式
CC 以 100% 占空比运行,每 250ms 采集一次新读数。每次读数结束设置 CC_READY 位,将 ALERT 引脚拉高通知微控制器有新读数。启用此模式需设置 [CC_EN] = 1 。
2.单次触发(1-SHOT)模式
CC 执行单次 250ms 读数,完成时类似设置 CC_READY 位。适用于主机仅需偶尔检查电池组电流的非电量计量场景。启用需确保 [CC_EN] = 0 且设置 [CC_ONESHOT] = 1 。
5.3 测量范围
CC 的满量程范围约为 ±270mV ,不过最大推荐输入范围是 ±200mV 。
保证测量的准确性和稳定性。超出推荐范围可能会导致测量误差增大甚至损坏设备。
5.4 计算
1. 计算公式
CC Reading (in µV) = [16-bit 2’s Complement Value] × (8.44 µV/LSB)
2.计算过程
- 0x0001:十六进制 0x0001 转换为十进制是 1 ,根据公式计算 CC 读数为1×8.44=8.44μV 。
- 0x2710:0x2710 转换为十进制是 10000 ,则 CC 读数为10000×8.44=84400μV 。
- 0x7D00:十进制为 32000 ,CC 读数是32000×8.44=270080μV 。
- 0x8300:它是负数的补码形式,转换为十进制是 - 32000 ,CC 读数为−32000×8.44=−270080μV 。
- 0xC350:十进制为 - 15536 ,CC 读数为−15536×8.44=−131123.84μV 。
- 0xFFFF:十进制为 - 1 ,CC 读数为−1×8.44=−8.44μV 。
六:外部热敏电阻
bq76920 可测量 1 个热敏电阻,通过内部约 3.3V 稳压源及工厂校准的 10k 上拉电阻测量,结果可从 TS1寄存器读取 。
6.1 计算公式
VTSx=(ADC in Decimal)×382 μV/LSB
RTS=(10,000×VTSx)÷(3.3−VTSx)
七:测温模式
7.1 内部芯片测温模式
芯片内部有温度模块产生与芯片温度成比例的电压,使用芯片自带的 14 位 ADC 测量该电压。通过设置 [TEMP_SEL] = 0 选择此模式。通过特定公式将 ADC 读数转换为温度值。
7.2 外部热敏电阻测温模式
设置 [TEMP_SEL] = 1 可选择该模式。
通过公式计算温度
VZ3=1.200V
VTSx=(ADC in Decimal)×382 μV/LSB
TEMPDIE=25∘−((VTSx−VZ3)÷0.0042)
切换内外温度监测模式时,因调度器更新间隔可能有 2 秒延迟。
八:电池组电压:
8.1 测量原理
将各电池电压转换为数字形式后累加,结果存于 BAT 寄存器,16 位值标称 LSB 为 1.532mV 。
8.2 电压转换
公式:
V(BAT)=4×GAIN×ADC(cell)+(#Cells×OFFSET)
GAIN 单位为μV/LSB 、OFFSET 单位为 mV ,存储在 EEPROM 中。
8.3 系统调度
主调度器管理监测间隔,每 250ms 全面更新一次,每 2 秒测一次温度,每 250ms 计算一次电池组电压。
九:保护
9.1 过流和短路保护
1. 实现原理
放电过流(OCD)和放电短路(SCD)保护通过 32 kHz 采样的模拟比较器实现。
第一步:芯片处于 NORMAL 模式时,持续监测(SRP - SRN)两端电压。
第二步:检测到超过 OCD 或 SCD 阈值电压,达到设定延迟时间且计数器达到目标值,更新 SYS_STAT 寄存器指示故障
第三步:更新场效应管(FET)状态,拉高 ALERT 引脚通知主机。
2. 阈值与延迟配置
OCD 和 SCD 保护的故障阈值及延迟设置通过 PROTECT1 和 PROTECT2 寄存器配置。
9.2 过压与欠压保护
1. 实现原理
过压(OV)和欠压(UV)保护通过将电池电压读数与 OV 和 UV 寄存器中 8 位编程阈值比较实现。
2. 阈值设置
1. 过压阈值
存储在 OV_TRIP 寄存器,是 14 位 ADC 读数的直接映射,最高 2 位预设为 “10” ,最低 4 位预设为 “1000” ,对应过压跳闸电平为 “10-XXXX-XXXX-1000” ,可编程范围约 3.15V - 4.7V ,受(GAIN, OFFSET)线性方程影响会有变化。
2. 欠压阈值
存储在 UV_TRIP 寄存器,最高 2 位预设为 “01” ,最低 4 位预设为 “0000” ,对应欠压跳闸电平为 “01-XXXX-XXXX-0000” ,可编程范围约 1.58V - 3.1V ,同样受(GAIN, OFFSET)线性方程影响。
3 特殊配置
对于 bq76920,为支持灵活电池配置,当电池读数低于UVMINIMAL时忽略欠压,允许在无需所有电池的配置中对电池引脚进行短路。
4 默认值计算
芯片进入 NORMAL 模式时,默认保护阈值和延迟载入设备数字寄存器(RAM) ,可由主机控制器改写。计算 OV_TRIP 和 UV_TRIP 寄存器值步骤如下:确定期望的 OV 和 UV 跳闸阈值;读取 [ADCGAIN] 和 [ADCoffset] 寄存器值;
计算 14 位 ADC 值:
OV_TRIP_FULL=(OV−ADCoffset)×ADCGAIN
UV_TRIP_FULL=(UV−ADCoffset)×ADCGAIN)
去除最高 2 位和最低 4 位,保留中间 8 位写入对应寄存器。
5 保护条件
若要启用这两项保护,必须将 [ADC_EN] 位设置为 1 ,即确保 ADC 处于工作状态,为 OV 和 UV 保护提供电压读数等数据支持。
十:控制子系统工作流程
主要通过控制两个MOS管的导通和关闭。CHG和DSG两个引脚分别控制其中一个。
10.1 电路原理及控制
过设置 [CHG_ON] 寄存器位为 1 可启用 CHG FET ,设置为 0 则禁用;类似地,可通过 [DSG_ON] 寄存器位来控制放电 FET 的启用与禁用。特定的故障条件或电源状态转换会清除 CHG/DSG FET 的控制状态。
1.过压(OV)故障
- [CHG_ON]:设为 0 ,即关闭 CHG FET ,防止在过压时相关电路继续工作引发危险。
- [DSG_ON]:无操作
2. 欠压(UV)故障
- [CHG_ON]:无操作。
- [DSG_ON]:设为 0 ,关闭 DSG FET ,避免在欠压情况下相关电路异常运行。
3. 过流放电(OCD)故障
- [CHG_ON]:无操作
- [DSG_ON]:设为 0 ,关闭 DSG FET ,防止过流进一步损坏电路。
4. 短路放电(SCD)故障
- [CHG_ON]:无操作
- [DSG_ON]:设为 0 ,关闭 DSG FET ,保障电路安全。
5. ALERT Override 事件
- [CHG_ON]:设为 0 ,关闭 CHG FET 。
- [DSG_ON]:设为 0 ,关闭 DSG FET 。
6. DEVICE_XREADY 置位事件
- [CHG_ON]:设为 0 ,关闭 CHG FET 。
- [DSG_ON]:设为 0 ,关闭 DSG FET 。
7. 从 NORMAL 模式进入 SHIP 模式事件
- [CHG_ON]:设为 0 ,关闭 CHG FET 。
- [DSG_ON]:设为 0 ,关闭 DSG FET 。
10.2 保护恢复机制
1. 发起方
所有保护功能的恢复操作都必须由主机微控制器发起。
2. 操作步骤
当故障发生后,若要恢复 FET(场效应晶体管 )的正常工作,主机微控制器需先清除 SYS_STAT 寄存器中对应的状态位。这一操作会使 ALERT 引脚信号清零,之后再手动重新启用 CHG 和 / 或 DSG 位。
3. 特殊情况
对于某些故障,如过压(OV)或欠压(UV)故障,如果故障条件仍然存在,相关保护功能可能会立即重新触发。
4. FET 控制
在任何情况下,bq769x0 芯片都不会自动将 [CHG_ON] 或 [DSG_ON] 位设置为 1 ,即不会自动启用 CHG 或 DSG FET ,必须由主机微控制器进行相应设置操作 。
10.3 负载检测
1. 原理
CHG 引脚设有负载检测电路,当 CHG FET 禁用([CHG_ON] = 0 )时激活。
正常情况下,高阻抗(约 1 MΩ )下拉路径使 CHG 引脚保持低电平,若外部将其拉高,表明 AFE 外部的 PACK - 引脚处于高电压状态,意味着有负载存在。
负载检测电路状态可通过读取 SYS_CTRL1 寄存器的 [LOAD_PRESENT] 位获取 。
2. 故障后操作
发生 OCD 或 SCD 故障后,DSG FET 禁用([DSG_ON] 清除 ),同时需明确禁用 CHG FET 以激活负载检测电路。主机微控制器需定期轮询 [LOAD_PRESENT] 位,判断 PACK - 引脚状态,确定负载是否移除([LOAD_PRESENT] = 0 表示负载移除 )。
10.4 电池均衡
1. 均衡方式
bq76920 支持内部和外部无源电池均衡,具体均衡算法由主机控制器决定。芯片提供电池电压及均衡驱动器,内部均衡每单元电流可达 50mA ,外部均衡可使用更高电流 。
2. 激活方式
通过设置 CELLBAL1、CELLBAL2 或 CELLBAL3 寄存器中对应电池位,激活特定电池均衡通道。如设置 [CB1] 启用 VC1-VC0 电池均衡 。
3. 均衡规则
同时均衡多个电池,但相邻电池不能同时均衡,否则可能使电池引脚超过绝对最大额定值,外部均衡时也不推荐这样做。使用内部均衡时,要避免超过芯片封装功耗额定值。主机控制器需确保在 VC1-VC5不同时均衡相邻电池。
4. 占空比及影响
电池均衡总占空比约为每 250ms 的 70% 。这是因为每 250ms 中有一部分时间用于通过 ADC 进行正常电池电压测量。
当 [ADC_EN] = 1 时,电池均衡不会影响过压(OV)和欠压(UV)保护 。
因为每 250ms 电池均衡会暂时中断一小段时间用于读取电池电压,确保 OV 和 UV 保护不会误触发或漏检实际的 OV/UV 情况 。
5. 控制位清除
CELLBAL1、CELLBAL2 和 CELLBAL3 寄存器中的所有电池均衡控制位,在 DEVICE_XREADY 置位、从 SHIP 模式进入 NORMAL 模式这两种事件发生时会自动清除 。事件清除后,需主机微控制器重新写入这些控制位 。
10.5 均衡区别
1.内部均衡和外部均衡
内部均衡;指利用电池管理系统(BMS)内部电路及相关组件实现均衡功能
外部均衡;则是借助外部额外的均衡设备或电路来实现
2.主动均衡和被动均衡
主动均衡:主动将电池组中高能量电池的能量转移到低能量电池上 ,实现能量转移式均衡 ,以减小电芯之间的差距 。优点是均衡速度快、能量利用率高 ;缺点是电路较为复杂,成本较高 。
被动均衡:有选择性地闭合高能量的单体电池放电回路 ,通过回路中的电阻对电池组中能量较高的电芯进行放电 ,消耗偏高能量来实现均衡 。优点是电路结构简单,成本较低 ;缺点是能量利用率低,会增加模组散热 。
10.6 报警引脚(Alert)
1. 功能及原理
ALERT 引脚是高电平有效数字中断信号,连接主机微控制器 GPIO 端口,是 SYS_STAT 寄存器所有位的 “或” 结果 。
要清除 ALERT 信号,需先将 SYS_STAT 寄存器中源位写 “1” ,全部位清除后 ALERT 引脚自动清零。
ALERT 引脚也可由外部源驱动,如电池组中可能包含的二次过压保护 IC 。当外部强制拉高 ALERT 引脚时,设备会识别为过压警报(OVRD_ALERT )故障并置位 [OVRD_ALERT] 位,同时自动禁用 CHG 和 DSG FET 驱动器 。但设备无法识别已因其他条件被强制拉高的 ALERT 信号输入 。
2. 保护措施
ALERT 引脚无内部去抖支持,推荐外接 500 kΩ - 1 MΩ 下拉电阻至 VSS ,还可采取使连接 IC 和组件引脚短接、在连接组件和引脚周围设保护环等措施,防止引脚受噪声或寄生瞬变干扰 。
十一:设备功能模式
11.1 NORMAL 模式
1.全功能运行状态。芯片所有模块均启用,功耗最高。
2.在此模式下,ADC(模数转换器)和 CC(可能是某种计数器或控制模块 )可由主机微控制器开启或关闭,以灵活节能。
3.只要 ADC 启用,过压(OV)和欠压(UV)保护持续运行。
4.过流放电(OCD)和短路放电(SCD)比较器在此模式下不可禁用。
5.从 NORMAL 模式转换到 SHIP 模式,需主机发起,通过连续写入 SYS_CTRL1 寄存器的两位来实现 。
11.2 SHIP 模式
1.芯片支持的基础且最低功耗模式。
2.初始电池组组装及每次上电复位(POR )事件后自动进入。
3.NORMAL 模式下,主机控制器可通过特定 I²C 命令序列使其进入。该模式下仅少数模块(如 VSTUP 电源和主引导检测器 )开启。
4.从 SHIP 模式唤醒进入 NORMAL 模式,需在 TS1 引脚施加高于 VBOOT 阈值的电压 。
5. 从 NORMAL 模式进入 SHIP 模式,需按特定顺序连续写入 SYS_CTRL1 寄存器的 [SHUT_A] 和 [SHUT_B] 位(先写 [SHUT_A] = 0, [SHUT_B] = 1 ,再写 [SHUT_A] = 1, [SHUT_B] = 0 ),执行命令前这两位应先为 0 ,否则无法进入 SHIP 模式 。