三 关于“高级充电算法” | bq4050从上电到PF
本来这一章是要写保护参数设置的,但是上一章有读者对“TC”、“FC”、“TD”、“FD”、“充电抑制”、“充电挂起”等概念感到疑惑,我查阅sluuaq3后发现,这里是我曾经忽略的一部分:高级充电算法。
高级充电算法是一种根据电池当前RM或电压,以及温度来确定充电电流和电压的功能。这适用于可以与bq4050通过一定方式通信的智能充电器,以优化充电速度和电池寿命。
bq4050中使用的高级充电算法如下图控制充电电流:
图中横轴为温度,有T1、T2、T5、T6、T3、T4六个分界线。纵轴为电池电压,有CVL、CVM、CVH三个分界线。这些分界线组合成了如图所示的15+1种充电状态,即:
- 当电池温度低于T1时,电池充电状态为充电抑制或充电挂起。
- 当电池温度介于T1与T2间时,电池充电状态如下分类讨论:
- 当电池电压低于CVL时,电池充电状态为预充电。
- 当电池电压高于CVL时,电池充电状态如图中3*5的十五格所示。
- 十五格的温度标注:
- LT:低温状态,介于T1-T2。
- STL:标准状态低温段,介于T2-T5。
- RT:建议充电温度,介于T5-T6。这一段温度区域是理论上最适合电池充电的。
- STH:标准状态高温段,介于T6-T3。STL+RT+STH共同构成电池的整个可正常充电温度区间。
- HT:高温状态,介于T3-T4。
- 十五格的电流标注:
- CCL:低压充电电流。当电压介于CVL和CVM之间。
- CCM:中压充电电流。当电压介于CVM和CVH之间。
- CCH:高压充电电流。当电压高于CVH。
- 十五格的温度标注:
- 当电池温度高于T3但低于T4时,电池充电状态为充电抑制。
- 当电池温度高于T4时,电池充电状态为充电挂起。
看到图中左下角“Charge Inhibit”(充电抑制)与“Charge Suspend”(充电挂起”)范围是重叠的,有读者可能会疑惑,若温度低于T1,究竟会触发哪种状态?
我查阅了TI E2E社区,找到了这个帖子:
由此可知,充电抑制是充电开始前进行检查,充电挂起是充电中进行检查。
举个例子,如果充电中温度从T1-T2范围降到低于T1,则会触发充电挂起;若充电前温度就已经低于T1,则会触发充电抑制。如果充电中温度从STH进入HT范围,则不会停止充电;但如果充电前温度就已经处于HT范围,则会触发充电抑制。
然后我们来细看。先说温度范围,sluuaq3中是这样图示的:
可以看见,基本上与上文所述一致,除了在从低温向RT和高温向RT的方向上加入了滞回。
根据TI的要求,温度分界线的设置必须满足 “T1 ≤ T2 ≤ T5 ≤ T6≤ T3≤ T4” 的条件。
然后是电压范围(RM替代电压作为控制依据的情况,本手册略过不写),如图:
由于本手册示例使用硬件并没有相应的智能充电器来调节充电电压,所以跳过。对应的DF中HV、MV、LV的单体充电电压设置为相同数值。
下面我们来讲充电电流的决定策略。首先看TI在sluuaq3中给出的表:
表中的决定顺序是从上到下依次判断,越靠上方的优先级越高。
我们依次来解释一下图中的策略:
- 无论温度与电压怎样,只要OperationStatus的XCHG位置1,充电电流就设为0。
- 如果温度低于T1或高于T4,那无论电压怎样,充电电流设为0。
- 无论温度怎样,如果电压低于CVL,充电电流设为预充电电流。
- 无论温度怎样,如果电压高于CVL,而且ChargingStatus的MCHG位置1,充电电流设为维护充电电流。
- (下面的就和开头那张图里面含义一样,我就不多说了吧)
充电电压的决定策略也是类似的。这里不再赘述,请参见sluuaq3。
下面开始讲述一个前面提到的概念,“确认了充电终止”。
确认了充电终止需要以下条件:
解释一下:
- 如果GaugingStatus的DSG位置0(即没有在放电),那么高级充电算法就启动运行,这个状态被判定为充电中状态。
- 如果在连续的两个40s内,满足以下所有条件,状态就被判定为确认了充电终止:
- 状态被判定为充电中
- 平均电流小于设置的充电终止期电流阈值
- 最高的单节电池电压加上设置的充电终止期电压阈值大于高级充电算法给出的充电电压与电池串数之比(这一条令我迷惑,但是可以自己试验下)
- 累计充入电量小于0.25mAh
当被判定为确认了充电终止后,会:
- 将ChargingStatus的VCT、MCHG位置1
- 如果SOCFlagConfig A的FCSETVCT位置1,则将BatteryStatus和GaugingStatus的FC位置1
- 如果SOCFlagConfig B的TCASETVCT位置1,则将BatteryStatus和GaugingStatus的TCA位置1
- 如果SBS Gauging Configuration的CSYNC位置1,则令RM等于FCC
好,我们再来看充放电终止标志:
根据sluuaq3所述,GaugingStatus的TC、TD、FC、FD位可以根据单体电压或RSOC进行置1或置0。其中TC、FC位还可以由确认了充电终止的判定置1。
其中,T表示终止,F表示完全,C表示充电,D表示放电,四个状态位对应电量关系为FC>TC>TD>FD。
具体的策略为:
- TC/FC置1
- 根据单体电压:当最高的单节电池电压高于TC/FC配置中的Set Voltage Threshold值时,TC/FC置1。当且仅当SOC Flag Config A/B的TC/FCSetV位置1。
- 根据RSOC:当RSOC高于TC/FC配置中的Set % RSOC Threshold值时,TC/FC置1。当且仅当SOC Flag Config A/B的TC/FCSetRSOC位置1。
- 根据确认了充电终止:确认了充电终止后,TC/FC置1。当且仅当SOC Flag Config A的TC/FCSetVCT位置1。
- TC/FC置0
- 根据单体电压:当最高的单节电池电压低于TC/FC配置中的Clear Voltage Threshold值时,TC/FC置0。当且仅当SOC Flag Config A/B的TC/FCClearV位置1。
- 根据RSOC:当RSOC高于TC/FC配置中的Clear % RSOC Threshold值时,TC/FC置1。当且仅当SOC Flag Config A/B的TC/FCClearRSOC位置1。
TD/FD的设置与TC/FC类似,均在SOC Flag Config A/B中有对应的位配置,命名方式类似,作用也类似。
以及,TI在bq4050中提供了基于保护与TC/FC/TD/FD的电池状态回报机制,具体如下:
- 当以下任意一条满足时,BatteryStatus的TCA位置1
- SafetyAlert的OCC1/OCC2/COV/OTC/OTF/OC/CHGC/CHGV/PCHGC任意一个被置1
- PFAlert的SOV/SOCC位被置1
- 任何PFStatus的位被置1
- OperationStatus的PRES位被置0(本教程示例已设置NR=1,本条不生效)
- GaugingStatus的TC位被置1并且在充电模式中
- 当以下任意一条满足时,BatteryStatus的FC位置1
- GaugingStatus的FC位被置1
- 当以下任意一条满足时,BatteryStatus的OCA位置1
- SafetyStatus的OC位被置1并且在充电模式中
- 当以下任意一条满足时,BatteryStatus的TDA位置1
- SafetyAlert的OCD1/OCD2/CUV/CUVC/OTD/OTF中任意一位被置1
- PFAlert的SUV/SOCD位被置1
- 任何PFStatus的位被置1
- OperationStatus的PRES位被置0(本教程示例已设置NR=1,本条不生效)
- GaugingStatus的TD位被置1并且在放电模式中
- 当以下任意一条满足时,BatteryStatus的FD位置1
- SafetyStatus的CUV位被置1
- PFStatus的SUV位被置1
- GaugingStatus的FD位被置1
- 当以下任意一条满足时,BatteryStatus的OTA位置1
- SafetyStatus的OTC/OTD/OTF位被置1
- PFStatus的SOT/SOTF位被置1
具体的相应寄存器每一位的含义,下一章将会详述。
关于维护充电,sluuaq3描述它可以在充电终止后继续提供少量电流。
注意:如果启用了过充电保护,即Enabled Protections C的OC位置1,那么OC下的Threshold项需要多留一点余量,防止维护充电引起误动作。
提示:维护充电需要充电器与bq4050能通信以设置电压与电流,本手册的示例不使用智能充电器,略过。详见sluuaq3的4.10 Maintenance Charge。
下一部分是关于充放电的禁止。
当满足以下所有条件时,OperationStatus的XCHG置0,充电电压电流由高级充电算法控制:
- PFStatus全部都为0
- SafetyStatus的COV/OCC1/OCC2/ASCC/ASCCL/CTO/PTO位全部为0
- OperationStatus的PRES位为1(本教程示例已设置NR=1,本条不生效)
- 如果Charging Configuration的CHGFET位置1,还需要GaugingStatus的TCA位为0
当满足以下任意一条时,OperationStatus的XCHG置1,充电电压电流均设置为0:
- ManufacturingStatus的FET_EN位为0
- PFStatus中任意一位置1
- SafetyStatus的COV/OCC1/OCC2/ASCC/ASCCL/CTO/PTO/HWDF/OC/CHGC/CHGV/PCHGC/UTC之中任意一位为1
- 如果OTFET位被置1,那么SafetyStatus的OTC位为1也可以
- 如果CHGIN位被置1,那么ChargingStatus的IN位为1也可以
- 如果CHGSU位被置1,那么ChargingStatusSU位为1也可以
- 如果NR位被置1并且SLEEPCHG被置0,那么OperationStatus的SLEEP位为1也可以
- OperationStatus的EMSHUT位被置1
- OperationStatus的PRES位被置0(本教程示例已设置NR=1,本条不生效)
- 如果Charging Configuration的CHGFET位被置1,那么GaugingStatus的TCA位为1也可以
类似的,如果以下任意一条满足,则OperationStatus的XDSG位置1:
- ManufacturingStatus的FET_EN位为0
- PFStatus中任意一位置1
- SafetyStatus的OCD1/OCD2/CUV/CUVC/AOLD/AOLDL/ASCD/ASCDL/UTD之中任意一位为1
- 如果OTFET位被置1,那么SafetyStatus的OTD或OTF位为1也可以
- OperationStatus的PRES位被置0(本教程示例已设置NR=1,本条不生效)
- OperationStatusEMSHUT位被置1
- OperationStatus的SDM位为1并且等待时长大于FET Off Time
- OperationStatus的SDV位为1并且低电压持续时间大于等于Shutdown Time
然后来讲充电抑制与充电挂起。
看似这两个词都是不让你充电,但实际上有区别:
- 充电抑制是在充电开始前检测所有条件,若不满足就禁止充电。但如果充电过程中不满足这些条件则不动作。
- 充电挂起是充电中不断检测所有条件,若不满足就“掐断”正在进行的充电。
这两个充电控制策略都是受温度影响,具体的参见开头的15+1格图。当然我这里也附上手册截图:
本章结束。下一章节将会讲述寄存器状态区的每一位的含义。