我们目前的项目在使用Bq27441EVM-G1B进行电量测量。
我们用的电池的相关信息: Lithium-ion battery(锂离子电池),3.7V,5000 mAh , 18.5 wh 。
我们使用的驱动程序是:bq27x00_battery.c 。 驱动程序链接如下
https://github.com/aneeshv/linux-bq27xxx/blob/master/drivers/power/bq27x00_battery.c
我们将驱动程序移植到我们的linux内核,
内核驱动中关于电池参数的配置代码如下:
static struct dm_reg bq274xx_dm_regs[] = {
{82, 0, 2, 5000}, /* Qmax */
{82, 5, 1, 0x81}, /* Load Select */
{82, 10, 2, 5000}, /* Design Capacity */
{82, 12, 2, 19000}, /* Design Energy */
{82, 16, 2, 3000}, /* Terminate Voltage */
{82, 27, 2, 437}, /* Taper rate */
};
通过cat 命令读取电量状态:
查看电源状态:root@and:/sys/class/power_supply/bq274xx-0 # lscapacitycapacity_levelcharge_fullcharge_full_designcharge_nowcurrent_nowdevicepowerpresentstatussubsystemtechnologytemptypeueventvoltage_nowroot@and:/sys/class/power_supply/bq274xx-0 # cat capacity82root@and:/sys/class/power_supply/bq274xx-0 # cat voltage_now4037000root@and:/sys/class/power_supply/bq274xx-0 # cat current_now2310001|root@and:/sys/class/power_supply/bq274xx-0 #
其中,电压值(voltage_now)是正确的,和万用表测试结果的一致;
电流值(current_now)是正确的,和万用表测试结果的一致;
电量百分比(capacity)不正确,当电量百分比从100降到1时,电池电量只消耗了一半(因为电池放电结束时输出电压是3.0V ,充满时的电压是4.2V ,而电池百分比为1时电池输出电压是3.6V)
基于我上面的描述,请各位大侠帮忙分析,请给出宝贵建议:
1.电量百分比不正确的原因是什么?
2.Taper rate 这个参数是如何计算的?
answer:
你好,您是否做过了learning cycle和chem id 匹配?
Star Xu:
Taper Rate = Design Capacity / (0.1 * Taper Current)
user5853108:
回复 answer:
没有做过learning cycle和chem id 匹配,请问怎么做learning cycle和chem id 匹配呢?
user5853108:
回复 Star Xu:
Taper Current这个值是什么,请描述一下,谢谢
Star Xu:
回复 user5853108:
您看一下TRM 6.4.2.3.11 Taper Rate, Taper Voltage
user5853108:
回复 answer:
你好,我们没有做过learning cycle和chem id 匹配,请问:1. 怎么进行learning cycle和chem id 匹配呢? 2. 不使用EV2300/2400工具,可以进行这个匹配吗?
请回复,或者发一些质料,谢谢
Hugo Zhang:
回复 user5853108:
2. 不使用EV2300/2400工具,可以进行这个匹配吗?
理论上只要有电压电流温度的数据,就可以进行匹配。但用EV2300/2400工具和上位机软件应该比较方便