MTK平台充电问题

问题现象:产品经理反馈机器充电充不满,只能充到88%;

问题排查

问题机器日志信息初步分析:从充电时打印出的寄存器日志信息中看充电IC(bq2415x)的06寄存器处于default状态,此时CV电压值最大为4.2V。值得注意的是该寄存器只能在IC上电时初始化一次,之后再次修改不生效,所以怀疑点是开机初始化IC的动作有异常;

具体分析过程

1.  使用另一正常机器下载版本测试复现:

下载版本后做如下实验:

正常开机,寄存器 06从默认0x40被设置成0x77,插入VBUS后,并将VBAT短路;开机查看寄存器 06,仍然能被正常置0x77;

正常开机,寄存器 06从默认0x40被设置成0x77,VBAT短路后插入VBUS,开机查看寄存器 06,仍然能被正常置0x77;

正常开机,寄存器 06从默认0x40被设置成0x77,插入VBUS后降低VBAT电压值到1.8V, 开机查看寄存器 06,仍然能被正常置0x77;

正常开机,寄存器 06从默认0x40被设置成0x77,直接降低VBAT电压值1.8V, 开机查看寄存器 06,仍然能被正常置0x77;

以上均是参照IC的datasheet中06寄存器可能被复位的情况做的实验:

2. 以上实验均不符合预期结果,尝试其他方式去复现。

在一次复现过程中,下载完版本,USB并没有拔出,但是将电池移除了,之后将电池接上,开机抓取log看06寄存器的值始终是default状态(0x40),多次实验均是同样结果。

3. 反馈上述的必现路径给TI工程师,对方回复需要查看下是否USB口连着适配器AP就能够启动进行IIC操作。之后我们在必现路径中量测I2C是否有读写信号产生

下载过程中,I2C总线有信号产生;

通过下载过程中的串口log确定是有I2C写操作:

MTK平台充电问题_第1张图片

此时的I2C操作发生在preloader阶段,AP侧并无主动读写该特定地址的操作。

需要确认的是:下载时对IC的操作是否属于首次操作,或者是否先操作了非06寄存器,导致06寄存器始终保持default值

4. 根据上述的分析,那么机器在第一次下载后就会有异常,所以我们又选取其他机器先断开电池再下载,也复现问题,证实了我们的猜测,同时也可以确定出现该问题和软件版本没有关系。

此时我们抓取下载时的I2C波形,逻辑分析仪解析后如下:

MTK平台充电问题_第2张图片

可以看到其中有对01寄存器写值,同步向TI工程师咨询这种情况会导致06寄存器被锁住,开机过程中对该寄存器的操作无效。

工厂生产的机器会先在主板阶段接外部电源下载,之后会断电进入到后续的整机组装,包括焊接电池等,所以正常流程走出来的机器是不会暴露出问题的,因为期间有断电操作,之后再组装开机。机器到客户手中可能有拔掉电池或者引起电池短路的操作,导致之后下载版本时IC寄存器异常。

 

问题解决方案

MTK最新的下载工具去除了对充电IC的操作,不存在下载过程中锁死寄存器的问题。

  1. 更新MTK下载工具,包括研发端和生产端工具;
  2. 工厂测试中加入06寄存器判断,做异常拦截。

你可能感兴趣的:(MTK,Charge相关)