在开关机过程中,会出现电量跳变的问题;比如27%关机,开机后,变成了28%,或者变成了25%;这样用户就会觉得有问题。电池电压变低了,或许可以解释为重启也是需要消耗电能的,因此出现了压降,但是不应该超过1%呀,2%就困难了一点;如果电池电压变高了,用户就奇怪了。如果强行解释,电池休息了一会,电压恢复了一些,这是很难解释的通的。因此还是要规避这个问题
高通平台提供了DT配置 <qcom,fg-vbat-estimate-diff-mv>,在内核文档中有描述,当然这是高通自己加的,在主线内核文档中并没有
kernel/Documentation/devicetree/bindings/power/qpnp-fg.txt
- qcom,fg-vbat-estimate-diff-mv: If the estimated voltage based on SoC
and battery current/resistance differs from the actual voltage by more than
this amount, the fuel gauge will redo the first SoC estimate when the driver probes.
什么意思呢,就是电池的电压事实上都是估算的,并没有一个电压与电量的线性关系存在,连曲线关系也不存在,事实上上,每一块电池的曲线都是不一样的,因此参考曲线只是作为基准,也就是这个曲线是通过3个样本做出来的一个方差较小的值,去匹配每一块电池,所以存在误差。那么这个误差就存在容忍度,可以是30mV,也可以是200mV;所以要去设置,通常设置的大一点200mV,不设置就是默认30mV,比较严格,就会出现这种电量跳变的问题。