英集芯-IP5385 IIC通信异常原因深入分析及解决方案 21

简介

IP5385是英集芯的一款充电管理IC,支持 SCP、 PD3.0、 UFCS 等快充协议, 支持 2~6 节串联电池, 集成升降压驱动, 最大功率 100W 的移动电源 SOC。

我们这里的应用是55W快充,具体的详细参数如下:

输入规格:Type-C1/Type-C2 (5V/3A,9V/3A,12V/2.5A,15V/2A,20V/1.5A);

输出规格为:Type-C1/Type-C2 : 5V3A 9V3A 10V2.25A 12V3A 15V3A 20V2.25A 5-11V5A,5~20V/2.5A;

USB-A: 10V2.25A 5V3A 9V2.0A 12V1.5A, C1+C2+A: 5V3A。

我们在产品调试过程中发现一个奇怪的问题,这里做一下简单的总结,和大家分享一下。

一、发现问题

我们这里的应用场景是一主两从,主机是MCU,从机一个是IP5385,另一个是其他IC。

我们遇到的奇怪的问题现象是这样的:首先,MCU读的IP5385寄存器数据都是正常的,包括充放电状态、小电流状态、快充状态、电压、电流、NTC等都正常,打印出来看到的数据可以看得出来,但是逻辑分析仪抓取的IP5385的寄存器数据确实有问题的,很奇怪,这是无意中发现的。

奇怪的数据如下:

这里的0xEA就是IP5385的写地址,这里都是读寄存器,正常来说写地址之后,就是寄存器地址,然后是读地址,读出来的寄存器数据,但是,IP5385的寄存器数据所有都是写地址之后,是寄存器地址,紧接着却是写进去数据了,而且还是ACK应答,奇怪吧,从业这么多年还是第一次遇到呢。

详细的寄存器数据如下:

但是,转折来了,另一个从机IC的IIC通信却是正常的,寄存器读取都是OK,下面把寄存器数据贴出来,对比看看。

此刻,脑袋里呈现黑人问号,纳尼,这啥情况?下面我们跟着思路分析一波。

二、分析问题

根据个人经验,这有可能是时序有问题,于是,用示波器抓波形分析。

示波器抓取波形数据如下:

从波形来看时序和数据都是OK的,这是软件模拟的IIC,所以波形没有那么精准。但看起来都是正常的,分析到此时,没有了思路。

别慌,这时候千万要稳住,以往的经历告诉我,遇到再大的难题,千万不要着急,最终问题都会被解决,信心很重要。

好了,我们来回顾一下问题点。IP5385寄存器读取打印OK,逻辑分析仪抓取异常,另一个从机打印数据OK,逻辑分析仪抓取OK,那么差异点在逻辑分析抓取数据这里,通过时序来看IP5385写寄存器地址之后,本来应该读的,直接开始写了,噢,为什么没有读呢?难道时序出了问题?

经验告诉我,遇到奇怪问题难以分析时,去看规格书,一行一行认真看,答案就藏在规格书中某一行文字中。

于是,我开始看IP5385的寄存器规格书,一行一行看。

终于,我找到了这样几行文字,还是标红的,说明很重要,如下图:

我接着往下看,看到有一个寄存器读取的示例,如下图:

再对比看看自己的驱动波形,嗯,于是,心中有了解决思路,开始动手调试验证。

三、解决问题

首先,我们按照规格书提供的示例,调试IIC驱动,在发送从机写地址、片内地址、读地址的后面加一个延时50us。

IIC通信时序按照规格书修改,如下图:

改完之后,烧录程序验证,用逻辑分析仪抓取数据,哎,发现数据正常了,这个寄存器数据看起来是那么优美,就像我此刻的心情一样,美美哒。

单个数据正常的截图如下:

逻辑分析仪抓取寄存器读取如下图:

四、总结

通过这个时序问题的发现、解决过程,说明一个现象,问题往往出在很小的地方,所以,各位Engineer,遇到问题不要慌,思路要清晰,在没有头绪的时候看看规格书,总会找到答案。

还有一点,我们在做项目的时候,一定要认真对待,要有敬畏之心,每一个项目都要尽全力去做,每一个问题都要刨根问题,日积月累,必有所得。

相关推荐
qq_672592755 分钟前
电源芯片为什么发热
单片机·嵌入式硬件
天天爱吃肉82187 分钟前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
国科安芯35 分钟前
抗辐照MCU在精密时频系统中的单粒子效应评估与可靠性验证
单片机·嵌入式硬件·架构·制造·安全性测试
森焱森42 分钟前
嵌入式硬件工程师应知 白银快速分析报告
linux·c语言·arm开发·嵌入式硬件·去中心化
czhaii1 小时前
单片机最佳入门多线程示例讲解
c语言·单片机
BackCatK Chen11 小时前
第 8 篇:TMC2240 电机正反转实现|DIR 引脚控制 + 代码优化(稳定不抖动)
stm32·单片机·嵌入式硬件·保姆级教程·电机正反转·tmc2240·dir引脚控制
星马梦缘11 小时前
EDA彩灯电路绘制
单片机·嵌入式硬件·物联网·pcb·eda·嘉立创
Forsete13 小时前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
Hello_Embed16 小时前
libmodbus 移植 STM32(USB 串口后端篇)
笔记·stm32·单片机·嵌入式·freertos·libmodbus
VekiSon17 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件