Bq27410怎么才能进入校验模式,在什么样的条件下,i2c要发什么的命令序列才能让bq27410进入校验模式,
我目前遇到一个问题是,从i2c读出充电平均电流为8000mA左右,而实际的电流才800mA, 查看手册后感觉应该是没有校验的原因,
但是我手上没有EVM2300或者EVM2400,但是我可以通过I2c和bq27410通讯,我要怎么做才能让bq27410进入校验模式进行校验,
最好付上相关代码,十分感谢!
Sheldon Cai:
这个校准最好使用EV2300和上位机软件进行,如果使用10mOhm的采样电阻误差应该是不会那么大的,另外采样电阻温度系数最好小于75ppm。电流的误差如果不是offset,那么对于SOC影响是不太大的,例如有5%的误差,但是充放电的误差是一致的,那么1000mAh的容量学习之后数值为950mAh,放电电流100mA电量计显示为95mA,都成相同倍数关系。
Liang Dong2:
回复 Sheldon Cai:
好的,这个问题我知道了,
我还有几个问题请教下,
那些因素会影响到 soc,
为什么我通过i2c去读芯片的电流是8000mA,
bq27410中 CCGain,CCOffset, CCDelta,这几个参数是怎么计算出来了, 他门的含义能具体解释一下吗
Luke Deng:
I2C读出电流8000mA而实际值是800mA,这个偏差太大,已经不属于一般的校准问题。bq27410默认的检流电阻是10mohm的,你可以使用没有改写过flash的芯片,量测下外部检流电阻两端实际的电压降,然后除以10mohm和I2C读出的数据比对一下。
Liang Dong2:
回复 Luke Deng:
使用GaugeStudio 可以 对 Bq27410 进行矫正吗?
Luke Deng:
回复 Liang Dong2:
GaugeStudio可以支持bq27410G1,可以做电池校准,但你反映的偏差问题已经超过校准的范畴,排查下是外围检流电阻有问题还是改写过内部的校准参数。
Liang Dong2:
回复 Luke Deng:
多谢你的支持,
我的偏差问题已经解决了,是那个10mohm的电阻弄错了,弄成0.1ohm了,
剩下的可以用GaugeStudio对起进行进一步校准,
还有个问题是,我EVM2300和EVM2400,我只使用USB专I2C的芯片把 bq27410与电脑相连,
这个时候可否使用GaugeStudio对bq274100进行校准?
Luke Deng:
回复 Liang Dong2:
EV2300或EV2400就是做USB转I2C的,USB端口接电脑,I2C端口连接你做的bq27410板子,可以用一个电源供电模拟假电池,另一个电源短接在检流电阻模拟负载或者直接使用电子负载机来抽取电流,校准软件可以使用GaugeStudio或者bqEVSW。
Liang Dong2:
回复 Luke Deng:
好的, 这个我可以试试,
我这现在出现一个现象,电池放完电后充电, 冲10分钟左右就到%67,然后断电再上电,变成50%了
这个现象正常吗
Luke Deng:
回复 Liang Dong2:
做精度对比测试前,先保证电压电流温度的校准精度以及电池的chemID是否匹配。充电时可以调成恒流充电,实际电流乘时间算下实际充电电量,然后和电量计上报剩余电量做个对比,通常电量计在充电阶段也是按电流积分计算且不引入电量补偿,要先确认下67%是否准确,重新上电时,会按电池电压来查表重新计算电量,如果此时的电池电压不稳定,则得到的容量会有较大偏差,即你提及的50%不准确。关于精度测试,建议用bqEVSW打印完整的充放电数据,方便判断问题所在。
xiang zhang4:
回复 Luke Deng:
Hi,Luke
Dong liang是我同事,我补充几点疑问:
1、我们在充满之后电池电压4.12v,电量soc=100,充电芯片也检测到电池充满了,此后进行放电,整个过程都是线性递减的,不存在soc跳变的问题(一会大一会小的情况),当放电到soc为0的时候,电池电压为3.67v。
2、当电池soc为0时,电压为3.67v,此时是否需要在持续放电等待到达EDV这个点,也就是电池电压为3v的时候才算是完全放电呢,才是真的soc=0的时刻?
3、实际电池配置2200mAh,电池充电电压4.2v,充电电路设置在80mA的时候认为是充满了,所以收尾电流设置的也是80mA,具体配置请参考如下:
#define CHRG_VOLT 4200
#define TAPER_I 80
#define TAPER_V 100
#define CYC_CNT 0
#define DSGN_CAP 2200
#define DSGN_ENERGY 8140
#define OP_CONFIG 0x18
#define SOCI_DELTA 1
#define SLEEP_I 10
#define HIBERNATE_I 8
#define HIBERNATE_V 2550
4、在之前的放电结束时刻(soc=0,电池电压3.67v–空载电压),进行充电半小时后读出soc=67%,刚开始充的时候也是0的,中间过程没太注意到,然后对系统重新上电之后读出的电池soc=53%。
5、测试过程使用直流电压5v 1000mA最大输出充电,负载为直流负载电流500mA放电。
非常感谢!