[资料干货] IP5385充电偶发没有电流问题深入分析
2026/7/26 10:38:57 网站建设 项目流程

简介
IP5385是一款充电管理IC,支持 SCP、 PD3.0、 UFCS 等快充协议, 支持 2~6 节串联电池, 集成升降压驱动, 最大功率 100W 的移动电源 SOC。
我们的应用环境是一个MCU+IP5385+电量计,然后,外围有一些LDO啊,数码管啊等等。
我们这里是一主两从通信,MCU作为主机,IP5385和电量计作为从机,在做IIC通信的时候,发现了一些数据异常读写的问题,这里做一下简单的总结,各位朋友有感兴趣的可以看看。

一、发现问题
偶发电量没到100%时充电没有输入功率,基本都是在电量90%以上出现,每次充放电测试基本都会出现。
充电没有功率时的充电器输入端参数,如下图:


但是,如果给电池断电之后,再重新上电,则充电功率恢复正常,而且一直能充到100%。

断电再充电,功率恢复正常的截图如下:

这个问题初看是IP5385这边的问题,现象确实也是这样的。好了,那我们顺着IP5385开始分析一下问题点。

二、分析问题

首先,明确一下这里停止充电的电芯电压基本在4V左右,而我们软件里面检测到循环次数或SOH值到达设定值后,会触发浅充钱放设置,这里的情况像是触发了浅充浅放设置。

那么,我们就监控MCU的log数据,MCU是否设置了浅充钱放,IP5385的log数据同步抓取,MCU这边设置了,IP5385就会打印寄存器设置的信息。

这里通过Log数据对比分析,发现IP5385打印了寄存器设置浅充钱放的时候,这时候MCU却没有设置,那么我们进一步用逻辑分析仪去抓一下数据。

串口抓取Log数据,如下图:


通过逻辑分析仪抓取数据分析,发现设置了一次浅充钱放。

逻辑分析仪抓的数据如下图:

那么我们通过逻辑分析仪的数据来看,大概率还是MCU设置的浅充钱放,MCU为啥设置呢?和SOH和循环次数有关,那监视一下循环次数和SOH数据。

监视一段时间之后,发现循环次数数据会偶发异常,异常数据不定,有时候是100多,有时候是1000多,这时候问题的原因就越来越清晰了,我们来分析电量计的通信驱动有什么问题?因为循环次数是从电量计获取上来的。

这个时候没什么好办法,既然电量计通信不正常,那我们去看电量计的规格书,在寄存器页面介绍此电量计是smbus型电量计,通信方式采用标准的smbus协议,但是下面又说操作是可选的,就是说IIC通信也行,smbus通信会更好,因为又校验数据。

电量计规格书介绍,如下图:

好了,定位到问题了,下一步找解决方案就好办了。

三、解决问题

根据以上分析,我修改IIC协议为smbus协议,但是,读CRC值的时候,发现读不上来数据,通过逻辑分析仪抓取数据可以看出,如下图:




没关系,别慌,到了这一步,问题马上就要解决了,不要泄气。
我们再来分析一下为什么CRC值上不来,通过和技术支持沟通,原来CRC值计算需要时间,读这个数据时需要加入时钟延展,一眼硬件IIC都是自带有时钟延展功能,但我们是软件模拟IIC,那么既然有延迟,我们在读最后一个数据时,直接延时100us,等待从机把数据准备好之后,再去一下看看。
通过实测,果然,数据读取就正常了。
smbus协议逻辑分析仪数据,如下图:



这里电量计的通信改为Smbus通信,最后一个字节CRC校验,可以增加数据的可靠性,防止丢包、数据异常等。
经过验证测试,都正常了,此刻,天空是晴朗的,心情是美丽的。

四、总结
通过上述这一问题的分析解决过程,我们也发现了一个问题的表象和问题的本质是两码事,千万不要通过表象判断下结论,可以顺着表象的点一步步分析到深层原因,做技术的,最终要拿数据说话。
遇到问题千万不要慌,思路要清晰,要有信心,问题最终都会被解决。
经验之谈,很多严重的问题,最后都有可能是一个很小的bug引起的。这就叫大厦倾倒始于蝼蚁。


---------------------
作者:liao6
链接:https://bbs.21ic.com/icview-3517213-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询