硬件 - 电量计配置GG详解 - 以BQ40Z80为例
目录
一、Settings
1.1 Protection
1.1.1 Enabled Protections A
1.1.2 Enabled Protections B
1.1.3 Enabled Protections C
1.1.4 Enabled Protections D
1.2 Permanent Failure
1.3 Configuration
1.3.1 Charging Configuration
1.3.2 Temperaure Enable
1.3.3 Temperature Mode
1.3.4 DA Configuration
1.3.5 Cell Configuration
1.3.6 FET Options
1.3.7 Sbs Gauging Configuration
1.3.8 Sbs Configuration
1.3.9 Auth Config
1.3.10 Power Config
1.3.11 IO Config
1.3.12 Pin Configuration
1.3.13 GPIO Sealed Access Config
1.3.14 FlagMapSetUp0-7
1.3.15 LED Configuration
1.3.16 SOC Flag Config A
1.3.17 SOC Flag Config B
1.3.17 Balancing Configuration
1.3.18 IT Gauging Configuration
1.3.19 IT Gauging Ext
1.4 AFE
1.4.1 AFE Protection Control
1.4.2 ZVCHG Exit Threshold
1.5 Fuse 那里我全默认
1.6 BTP
1.7 SMBus 默认不动
1.8 Current Scaling
1.9 Manufacturing 我全按默认
二、Protections
2.1 CUV / CUVC / COV
2.2 OCC / OCD / AOLD / ASCC / ASCD
2.3 OTC / OTD / OTF / UTC / UTD
2.4 HWD / PTO / CTO / OC / CHGV / CHGC / PCHGC
三、Permanent Fail
3.1 SUV / SOV / SOCC / SOCD / SOT / SOTF
3.2 Open Themistor / QIM / CB / VIMR / VIMA / IMP
3.3 CD / CFET / DFET / FUSE / AFER / AFEC/ 2LVL
四、Advanced Charge Algorithm
4.1 Temperature Ranges
4.2 各个温度下充电电压、电流
4.3 Pre-Charging
4.4 Maintenance Charging
4.5 Voltage Charging
4.6 SoC Range
4.7 Degrade Mode 1 2 3
4.8 CS Degrade
4.9 Termination Config
4.10 Charging Rate of Change
4.11 Charge Loss Compensation
4.12 IR Correction
4.13 Cell Balancing Config
五、Gas Gauging
5.1 Current Threshold
5.2 Design
5.3 Cycle
5.4 FD / FC / TD / TC
5.5 State
5.6 Turbo Cfg
5.7 IT Cfg
六、Power
6.1 Power
6.2 Shutdown
6.3 Sleep
6.4 Pre-Discharge
七、LED Support
一、Settings
1.1 Protection
1.1.1 Enabled Protections A
名称 作用 AOLDL 放电过载保护锁存器,注意放电过载保护属于硬保护,这里是AOLD的锁存器 关闭 OCD1 1nd 放电过流保护 开启 OCD2 2nd 放电过流保护 开启 OCC1 1nd 充电过流保护 开启 OCC2 2nd 充电过流保护 开启 COV 电芯过压保护 开启 CUV 电池欠压保护 开启 RSVD_1 预留,没啥用,需要设置为1 1.1.2 Enabled Protections B
名称 作用 CUVC IR检测的补偿欠压保护 开启 OTD 放电过温保护 开启 OTC 充电过温保护 开启 ASCDL 放电短路保护锁存器 关闭 RSVD_1 设置为1 ASCCL 充电短路保护锁存器 关闭 RSVD 设置为0 1.1.3 Enabled Protections C
名称 作用 CHGC 充电电流高于要求值(设计值) 开启 OC 过充 开启 CTO 充电超时 开启 PTO 预充超时 开启 HWDF SBS看门狗 开启 OTF MOS过温 开启 RSVD 设置为0 1.1.4 Enabled Protections D
名称 作用 OCDL 放电过流锁存 关闭 COVL 电芯过压锁存 关闭 UTD 不处于充电状态时的,低温保护 开启 UTC 充电时低温保护 开启 PCHGC 预充电电流过高 关闭 CHGV 充电电压过高,我这里因为项目需求关闭,正常需要开启 关闭 RSVD 设置为0
1.2 Permanent Failure
永久保护PF,我全关;
1.3 Configuration
1.3.1 Charging Configuration
名称 作用 CYCLE_DEGRADE 是否基于充电循环次数,降低充电电压电流 关闭 SOH_DEGRADE 是否基于电池寿命,降低充电电压电流 关闭 DEGRADE_CC 根据充电循环次数、电池寿命只降低充电电流 开启 COMP_IR IR补偿,确保Pack端处电压正常 关闭 CS_CV 在特定电池电压、温度阈值下降低充电电压,控制鼓包 关闭 SOC_CHARGE 充电算法中用剩余容量(1),还是电压值判断(0) 0 CCC 是否开启充电损耗补偿 关闭 CRATE 充电电流是否根据 [满充容量/设计容量] 进行调整 开启 1.3.2 Temperaure Enable
这里RSVD都设置为0,
TS4~TS1表示那四个NTC,TSint芯片内部温度。开启就是使能该NTC,比如我这里只用到TS1和TS2,我就只使能TS1和TS2。
1.3.3 Temperature Mode
主要设置NTC是作为检测电芯温度,还是设置为检测MOS温度;
电芯温度设置为0,MOS温度设置为1;
RSVD全都设置为0,
这里主要就是NTC放哪,塞到电池里就0,放在MOS那边就用1;
1.3.4 DA Configuration
名称 作用 CTEMP[1:0]
(Bits7-6)这里显示输出传感器温度,11不使用,10是最低温度,01平均温度,00最高温;
比如要输出平均温度,那么CTEMP1=0,CTEMP2=1
00 EMSHUT_PEXIT_DIS 当设置为1时,SHUTDN引脚 高-低电平转换时,FET不退出紧急关断。 0 FTEMP MOS温度保护平均值(1)还是最大值(0) 0 EMSHUT_EN 紧急关断MOS 0不开启 SLEEP 是否开启休眠模式 开启 IN_SYSTEM_SLEEP 接入系统的时候,IC能否休眠 不开启 0 NR 有PRES脚时,1表示固定模式,0可移动模式 0 RSVD 全设置为0 1.3.5 Cell Configuration
RSVD 全设置为0;
CC2,CC1,CC0用于设置电池串数,比如我这里6串,那么为110,
CC2=1,CC1=1,CC0=0;
1.3.6 FET Options
名称 作用 PDSG 是否开启预放电功能
1开启,0不开
1 PACK_FUSE 检测最小熔断保险丝电压源,1为Pack电压,0为电池组电压
0 SLEEPCHG 休眠时是否启用充电MOS 0 不启用 CHGFET 充电完成后,是否要关闭MOS,
1 关闭,0不关闭
1 CHGIN 禁止充电模式下,是否要关闭MOS,
1关闭,0不关闭
1 CHGSU 充电暂停时,是否要关闭MOS
1关闭,0不关闭
1 OTFET 过温保护后,MOS要不要关,
1关闭,0不关闭
1 PARALLAL_FETS 充放电MOS是串联还是并联,
0串联,1并联
0 PCHG_COMM 预充电用充电MOS,还是额外预充电MOS
1充电MOS,0额外预充电MOS0 RSVD 全设置为0 1.3.7 Sbs Gauging Configuration
名称 作用 RSOC_RND_OFF 1 使能RSOC舍入,0 RSOC向上取整; 0 LOCK0 电池放电到0后,静置一段时间,是否允许RSOC回到0以上 (因为静置后电压回升)
1 禁止回升,0不禁止
1 RSOC_HOLD RSOC在放电过程中,是否能增加,
0 不受限制
1 不允许增加
1 RSOCL 充电没充满,RSOC是否保持99%,直到充电终止才设置为100%
1 充电终止后才到100%
0 显示实际值
0 RSVD 全设置为0 1.3.8 Sbs Configuration
名称 作用 FLASH_BUSY_WAIT 允许在闪存编程或擦除操作期间进行时钟扩展。
0 SMB_CELL_TEMP 温度寄存器是否可写
0 BLT[1:0]
(Bit5-Bit4)总线低超时
00,没加入超时
01,1s 超时
10,2s超时
11,3s超时
10 XL SBS速度,1 速度为400khz,0默认速度 0 HPE 是否使能主机上PEC通信 0 CPE 是否使能充电器上的PEC 0 BCAST 启用从设备到主机的警报和充电广播
0 1.3.9 Auth Config
名称 作用 ECC_TEST 0 SHA1_SECURE 开启SHA1 0 SPLIT_RESPONSE 42字节的ECC响应以单个块或两个块的形式返回 0 LEGACY_SHA1 启用了ECC或SHA-1认证 0 RSVD 0 1.3.10 Power Config
名称 作用 SLEEPWKCHG 睡眠模式下,检测电荷积累 0 SLP_ACCUM 在睡眠模式下允许电荷积累 0 CHECK_WAKE_FET 防止意外唤醒MOS 0 CHECK_WAKE 启用管理从Shutdown状态意外唤醒的选项 0 EMSHUT_EXIT_COMM 如果接收到有效的SMBus通信,退出EMSHUT
0 EMSHUT_EXIT_VPACK 充电器接入退出EMSHUT模式 1 PWR_SAVE_VSHUT 当达到特定阈值时,启用节能关机 0 AUTO_SHIP_EN 自动关机以便运输 0 RSVD 全0 1.3.11 IO Config
名称 作用 BTP_POL BTP(Battery Trip Point)触发时,BTP引脚极性;
1 高电平,0低电平
0 BTP_EN 当BTP被触发时,是否允许对BTP引脚进行断言。 0 RSVD 全0 1.3.12 Pin Configuration
名称 作用 MFP20_SEL[2:0]
(Bit7-6)设置RL0,RL1,RL2引脚的功能,
000 LED ; 001 GPIO ; 010 GPIO+PDSG; 其它未使用
000 MFP17_SEL[2:0]
(Bit4-2)
设置RH0
000 PRES; 001 shuntdown; 010 LED按钮;
011 PDSG; 100 GPIO;其它未使用
000 MFP16_SEL[1:0]
(Bit1-0)
设置RH1
00 Cell-7均衡MOS控制; 01 PDSG控制;
10 GPIO; 11未使用;
01 MFP15_SEL[1:0]
(Bit7-6)
设置RH2
00 Cell-7电压测量使能;01 LED按钮;
10 GPIO;11 未使用
01 MFP13_SEL[2:0]
(Bit4-2)
设置RC3
000 LED按钮;001 TS4;010 ADCIN2
011 GPIO;其它未使用
001 MFP12_SEL[2:0]
(Bit1-0)
设置RC2
000 Cell-7 ADC;001 TS3;010 ADCIN1
011 GPIO;其它未使用
001 1.3.13 GPIO Sealed Access Config
这里主要是当Gauge被锁的时候,能否读写对应GPIO脚;
1可以,0不行;
这里默认全0;
1.3.14 FlagMapSetUp0-7
名称 作用 FLAG_EN 是否开启映射控制 0 Flag_OD 输出模式是否开漏(1) 0 FLAG_OR 与映射到同一GPIO引脚的其他标志进行“或”运算与“与”运算。此“或”/“与”运算在评估来自FLAG_POL的极性之后进行。
0 与;1或
0 FLAG_GPIO[2,0]
(Bit3-1)
000 RC2;001 RC3;010 RH0;011 RH1;100 RH2
101 RL0;110 RL1;111RL2
000 FLAG_POL 映射到GPIO引脚时标志的极性
1反转极性,0不反转
0 FLAG_BIT[3,0]
Bit7-4
标志的16位寄存器内的位位置
二进制,表示Bit0到15
000 FLAG_REG[3,0]
Bit3-0
包含标志的寄存器的地址
0, 0, 0, 0 = BatteryMode()
0, 0, 0, 1 = BatteryStatus()
0, 0, 1, 0 = OperationStatusA() lower 16 bits of OperationStatus()
0, 0, 1, 1 = OperationStatusB(), higher 16 bits of OperationStatus()
0, 1, 0, 0 = ChargingStatus()
0, 1, 0, 1 = TempStatus()
0, 1, 1, 0 = GaugingStatus(), lower 8 bits
0, 1, 1, 1 = ITStatus(), Bits 23–8 of GaugingStatus()
1, 0, 0, 0 = SafetyStatusAB(), lower 16 bits of SafetyStatus()
1, 0, 0, 1 = SafetyStatusCD(), higher 16 bits of SafetyStatus()
1, 0, 1, 0 = Any Safety Status bit in SafetyStatus()
1, 0, 1, 1 = PFStatusAB(), lower 16 bits of PFStatus() 1, 1, 0, 0 = PFStatusCD(), higher 16 bits of PFStatus() 1, 1, 0, 1 = Any PF Status bit in PFStatus()
1, 1, 1, 0 = Unused
1, 1, 1, 1 = Unused
000 RSVD 全0 1.3.15 LED Configuration
名称 作用 LEDONFC 1 LED充满后常亮,直到LED FC Time; 1 BLINKMIDPT 低电量闪烁,1的时候,电量0~10%时闪烁 1 LEDIFCUV 电池欠压时,也允许LED亮 0 LEDPFON PF模式下是否允许LED 0 LEDC[1,0]
Bit7-6
LED电流设置
00,0.94mA;
01,1.87mA;
10,2.81mA;
11,3.75mA;
00 LEDPF[1,0]
Bit5-4
LED显示PF错误代码;
00 不显示,01 DISP在LED时低电平,则显示电量后显示错误代码;
10 按下DISP显示PF;11显示电量后显示PF错误代码;
01 LEDMODE 1 LED显示电量来自ASOC
0 LED显示电量来自RSOC
0 LEDCHG 1 充电时LED流水灯 1 LEDRCA 剩余容量到达警报时,LED是否闪烁 0 LEDR 设备复位退出时,LED显示激活 1 RSVD 全0 0 1.3.16 SOC Flag Config A
名称 作用 TCSETVCT 启用由初级充电终止设置的TC标志 1 FCSETVCT 启用由主充电终止设置的FC标志 1 TCCLEARRSOC 通过RSOC阈值使TC标志清零 1 TCSETRSOC 启用由RSOC阈值设置的TC标志 0 TCCLEARV 通过电池电压阈值使TC标志清除 0 TCSETV 启用由电池电压阈值设置的TC标志 0 TDCLEARRSOC 通过RSOC阈值使TD标志清除 1 TDSETRSOC 启用由RSOC阈值设置的TD标志 1 TDCLEARV 通过电池电压阈值实现TD标志清除 0 TDSETV 启用由电池电压阈值设置的TD标志 0 RSVD 全0 1.3.17 SOC Flag Config B
名称 作用 FCCLEARRSOC 通过RSOC阈值启用FC标志清除 1 FCSETRSOC 启用由RSOC阈值设置的FC标志 0 FCCLEARV 通过电池电压阈值启用FC标志清除 0 FCSETV 启用由电池电压阈值设置的FC标志 0 FDCLEARRSOC 通过RSOC阈值使FD标志清除 1 FDSETRSOC 启用由RSOC阈值设置的FD标志 1 FDCLEARV 通过电池电压阈值使FD标志清零 0 FDSETV 通过电池电压阈值启用FD标志 0 1.3.17 Balancing Configuration
名称 作用 CBS 休眠时电池均衡 0 CB_RLX_DOD0EW 1 当处于休眠模式时,启用用于电池平衡时间更新的误差加权DOD0
0 当处于休眠模式时,使用DOD0进行电池平衡时间更新0 CB_CHG_DOD0EW 1 充电模式下进行电池平衡时间更新时启用误差加权DOD0
0 充电模式下进行电池平衡时间更新时使用DOD00 CBR 静止时电池均衡 0 CBM 1使用外部均衡电路,0内部均衡电路 0 CB 是否开启电芯均衡 1 RSVD 全0 1.3.18 IT Gauging Configuration
名称 作用 DOD_RSCALE_EN 使能放电深度(DOD)的比例缩放功能 1 RELAX_SMOOTH_OK 静置时,RSOC平滑
1 TDELTAV 0 SMOOTH 1 使用平滑后的RSOC
0 使用实时RSOC
1 RELAX_JUMP_OK 是否允许静置时RSOC跳动 0 DELAY_DROP_TO_0 Delay,默认为0 0 CELL_TERM 1 = 基于电芯的终止
0 = 基于Pack电压的终止(默认)0 FAST_QMAX_FLD Qmax是否快速更新 1 FAST_QMAX_LRN Qmax在Learning时,是否快速更新 1 RSOC_CONV RSOC是否快速缩放 1 LFP_RELAX 针对磷酸铁锂(LFP)电池的静置特性优化,调整静置时的电压采样和 SOC 校准逻辑,用LFP时才开启 0 DOD0EW 用于设置放电深度的预警阈值,提前提示电池即将过放 0 OCVFR 在电池静置时通过 OCV 曲线更精准地校准 SOC,弥补库仑计数的累积误差 1 RFACTSTEP 控制内阻(Rfact)的步长调整,动态优化内阻模型的更新频率和幅度,提升不同工况下的内阻估算精度 1 CSYNC 有效充电终止的时候,把RSOC与FSOC进行同步; 1 CCT 默认0 0 1.3.19 IT Gauging Ext
名称 作用 TS[1,0]
Bit7-6
IT算法使用NTC时,用哪个
11 都不用; 10 最低温的哪个;
01 平均温度;00最高温
00 CELL_INTER_IR 是否启用电池互连电阻用于根据电池EDV检测来补偿电池电压 0 THERM_SAT 是否启用IT热模型调整 1 THERM_IV 是否启用温度模型冻结 1 AMB_PRED 是否启用环境温度预测 0 CHG_100_SMOOTH_OK 是否启用向 100% 的平滑过渡 1 DSG_0_SMOOTH_OK 是否启用向 0% 的平滑过渡 0 RSVD 全0
1.4 AFE
1.4.1 AFE Protection Control
名称 作用 RSTRIM[3,0]
Bit7-4
不要动,设置为0x7 0111 SCDDx2 是否启用双倍 SCD 延迟时间 0 RSNS AOLD、ASCC、ASCD1、ASCD2 阈值
1正常阈值,0阈值只有设计值的一半
1 RSVD 全0 1.4.2 ZVCHG Exit Threshold
ZVCHG充电退出阈值,我这里用默认的2200mV;
1.5 Fuse 那里我全默认
1.6 BTP
Init Discharge Set
Init Charge Set
用在WIN8上面的,放电/充电到该容量时,触发/清除警报;
我这里 Dischg给150,Chg给175;
1.7 SMBus 默认不动
1.8 Current Scaling
Scale Factor 电流缩放因素,主要解决内部电流寄存器不够用的情况(最多到32A那里),我这边因为要用到50A以上,所以我设置为2,相对应的和电流、容量有关的全除2;
1.9 Manufacturing 我全按默认
二、Protections
2.1 CUV / CUVC / COV
- CUV 电芯欠压保护,CUVC 欠压补偿,Threshold值填单个电芯欠压值,Recovery多个一些;CUVC值比CUV值少一点;
- COV 类似,但是有不同温度下对应值;
2.2 OCC / OCD / AOLD / ASCC / ASCD
- OCC1和2分别是充电过流保护1nd和2nd,遵循1nd小电流,长时间触发。2nd大电流,短时间触发;OCC 则是恢复值,要填负值,也就是放电。比如触发了OCC1或者2,那么放点电恢复;OCD1和2同理,只不过是放电过流,OCD则是充电时恢复;不能出现OCC填正值(充电),因为充电过流保护后,充电MOS关闭了,这时候充不进去了,放电同理;
- AOLD 的 counter Dec Delay / Recovery / Reset那些,主要是对应短时间多次触发后锁存的;Threshold[7:4]为触发时间,[3:0]与触发电流关联;
- ASCC的[7:4]同样为触发时间,[2:0]与电流相关
- ASCD的[7:4]同样为触发时间,[2:0]与电流相关
2.3 OTC / OTD / OTF / UTC / UTD
对应 充电过温、放电过温、MOS过温、充电低温、放电低温;
里面Threshold 是触发值,Recovery是恢复值;
2.4 HWD / PTO / CTO / OC / CHGV / CHGC / PCHGC
HWD 是看门狗那个;
PTO 预充超时,里面有开启计算预充时的充电电流,和暂停计算的充电电流;
CTO 充电超时,和PTO同理;
OC 过充,主要是填容量值,过充超过了多少mAh;
CHGV 充电超出电压;
CHGC 充电超出的电流;
PCHGC 预充超过的电流;
三、Permanent Fail
3.1 SUV / SOV / SOCC / SOCD / SOT / SOTF
SUV 欠压安保
SOV 过压安保
SOCC 充电过流安保
SOCD 放电过流安保
SOT 芯片过温安保
SOTF MOS过温安保
3.2 Open Themistor / QIM / CB / VIMR / VIMA / IMP
Open Themistor 热敏电阻开路安保
QIM QMAX差异安保
CB 电芯均衡安保
VIMR 静置时电压不均衡安保
VIMA 工作时电压不均衡安保
IMP 阻抗不匹配安保
3.3 CD / CFET / DFET / FUSE / AFER / AFEC/ 2LVL
CD 容量衰减安保;
CFET 充电MOS安保,主要检测充电MOS关断下的充电电流;
DFET 放电MOS安保,检测放电MOS关断下的放电电流;
FUSE 保险丝
AFER 用AFE与IC的进行对比;
AFEC IC 与 AFE通信
2LVL 判断二保IC是否触发
四、Advanced Charge Algorithm
4.1 Temperature Ranges
这里主要写温度范围,Hysteresis Temp 是写防抖的那个温度的;
4.2 各个温度下充电电压、电流
4.3 Pre-Charging
预充电流
4.4 Maintenance Charging
维护充电时的电流,主要就是充满的时候,一个保持电流;和截止电流一样就行;
4.5 Voltage Charging
主要定义预充开始电压、电压等级范围;
4.6 SoC Range
主要用于定义电池限制容量状态;
4.7 Degrade Mode 1 2 3
主要是电池寿命降低到多少后,充电电流、电压需要跟着下降多少;
4.8 CS Degrade
配合Degrade Mode123用的
4.9 Termination Config
与终止充电关联,电流那里是平均电流小于Charge Term Taper Current,电压是当前电压+Charge Term Voltage 超过设计值时触发;
4.10 Charging Rate of Change
我是直接按默认都给1;
4.11 Charge Loss Compensation
开启补偿的话,这里写最大充电电流,还有单颗电芯电压;
4.12 IR Correction
默认
4.13 Cell Balancing Config
均压3.7V电池,Cell1为64,Cell2-7为63;
Delta为3;
五、Gas Gauging
5.1 Current Threshold
进入充放电、静置模式下的电流阈值;
充放电模式下,进入静置模式下的延迟时间;
5.2 Design
- Design Capacity mAh 和 cWh;
mAh 为 容量,
cWh 是用 单个电芯平均电压*串数*mAh那个容量;- Design Voltage 是单个电芯平均电压*串数
5.3 Cycle
Cycle Count Percentage 按默认90%一次循环
5.4 FD / FC / TD / TC
满放,满充,终止放电,终止充电 标志位电压;
FC ≥ TC > TD > FD
FC,TC 的阈值设置成电芯满充电压就行了,清除标志少个100mV;
FD设置成放完的电压,TD可以多个200mV,清除标志各自多个100mV
5.5 State
Qmax Cell 1-7 可以填容量最小一节的电芯,或者电芯标注的值;
Cell 1-7 Chg Voltage at EoC 是满充电压;
Current at EoC是满充电流;
5.6 Turbo Cfg
默认;
5.7 IT Cfg
Term Voltage 用于容量计算时,最小电池组电压;
Term Min Cell V 容量计算时,最小电芯电压,需要大于等于CUV;
六、Power
6.1 Power
Valid Update Voltage 整个电池包电压,小于这个值,Flash不更新;
6.2 Shutdown
Shutdown Voltage写单颗电芯电压,小于这个值超过时间时,不能放电。Pack 脚再低于Charger Present Threshold时,进入Shutdown;
PF那几个参数是PF模式下的上述值;
PS是省电模式下的;
6.3 Sleep
休眠电流;
总线无通信时休眠时间;
还有休眠模式下电流、电压更新周期;
唤醒比较器保持默认;
6.4 Pre-Discharge
主要就是打开预放MOS,当Pack端电压超过电池电压百分比后再开放电MOS;
或者
超过延时后打开放电MOS;
七、LED Support
LED Flash Period:LED 报警闪烁周期;
LED Blink Period:显示容量时 LED 闪烁时间;
LED Delay:按下按钮 LED 依次点亮的时间;
LED Hold Time : 按下按钮后,LED显示电量的时间;
LED FC Time:满充后LED长亮的时间;