电池满的状态都是从Charger IC NCP1854获取到的,CV阶段本来就是很慢的过程。
如果发现99%很久时间没法达到 100% 可以尝试在检测满状态的函数中增加记时,CV超过多少时间就返回满条件。
static unsigned int charging_get_charging_status(void *data)
{
unsigned int status = STATUS_OK;
unsigned int ret_val;
ret_val = ncp1854_get_chip_status();
/* check whether chargeing DONE */
if (ret_val == 0x6)
*(unsigned int *) data = KAL_TRUE;
else
{
static unsigned int cv_count = 0;
if(ret_val == 0x5)
{
cv_count ++;
if(cv_count > (30*60/10))/*CV Time 30 min*/
{
*(unsigned int *) data = KAL_TRUE;
return status;
}
}
else
cv_count = 0;
*(unsigned int *) data = KAL_FALSE;
}
return status;
}