mtk的电池电量算法:
- SOC_BY_AUXADC,通过模数转换硬件获得电池电压,由电压来换算电量,误差大
- SOC_BY_SW_FG,通过库伦积分算法获得电量,其中电流由软件计算获得
- SOC_BY_HW_FG,通过库伦积分算法获得电量,其中电流由硬件的模数转换获得
库伦积分算法:
- 开机时测试电池的开路电压,由开路电压换算出电池电量
- 放电过程中对放电电流积分,开机时电池电量减去放电电量,就是剩余电量
SOC_BY_SW_FG和SOC_BY_HW_FG的区别在于放电电量的获取方式,一个由软件计算获得,一个由硬件模数转换获得,SOC_BY_SW_FG是mtk平台常用的电池电量算法。
SOC_BY_SW_FG相关定义
- OCV:电池开路电压,电池断开负载时测得的电压
- VBAT:电池闭路电压,电池有负载时测得的电压
- r:电池内阻
- I:电池放电电流
- (OCV - VBAT) / r = I
- DOD电池剩余电量
温度,电池特性受温度影响,用一个热敏电阻来测电池温度(待续)
电池的参数设置
- BAT_NTC_10,RBAT_PULL_UP_R,RBAT_PULL_UP_VOLT温度相关,cust_battery_meter_table.h
- DOD-OCV,电池余量和开路电压的对照表,cust_battery_meter_table.h
- r-OCV,电池内阻和开路电压的对照表,cust_battery_meter_table.h
- 充电相关参数,cust_battery_meter.h(待续)