英集芯-IP2366 开发五大问题全解:温感充放电降额、IIC 读错乱码、总线死锁、空载自关输出根治方案
简介本项目应用场景IP2366适配器插入时自动唤醒设备开始充电负载插入时不唤醒当设备上按键按下时唤醒设别控制IP2366输出。温馨提示这类电源管理芯片建议最好用标准版固件定制需求更改越多后期调试出现不可控的问题越多就需要原厂一起协助排查问题会花费很多时间精力最好只是简单的读状态寄存器和温控策略控制其他最好都是按I/O信号输出这样后期调试更方便即使遇到问题也好分析。遇到的问题1.充放电降额设计分析设置IP2366 Iset 充电功率或电流设置0x03寄存器只降电流不降电压充电降额策略如下放电降额策略通过设置输出最大功率选择寄存器。2.写数据之后直接读或连续读数据会读不出来或读的数据乱掉分析他们家的电源管理IC不能连续读操作要加延时至少2ms。3.偶发程序执行了但逻辑分析仪抓不到数据分析要保证写完一个操作之后再执行下一个写操作如果轮询写不加判断先后顺序会偶发其中一个写操作数据丢包。因为我程序中每次唤醒后会先软件短按EN唤醒IP2366检测到INT为高时设置电池低电电压每次设备唤醒后检测到INT为高时也会控制IP2366输出。解决方案设备唤醒后当设置电池低电电压执行完成之后再去控制输出。4.一主两从唤醒设别时偶发IIC死锁SDA,SCL都为低电平分析故障复现时软件读取IIC寄存器状态从硬件角度看下IIC上拉电源是否稳定上拉电阻是否合适解决方案从读取的软件IIC寄存器数据来看软件是正常的因为IP2366的IIC是软件模拟的而STM32是硬件IIC如果通信过程中一个ACK信号没有得到应答造成MCU的硬件IIC死锁解决方案两路IIC分开或者IP2366只传输DO信号这样排查问题也简单。5.IP2366空载几十秒之后自动关闭输出每次设备唤醒之后把这个寄存器的bit7置为0禁止进入待机模式就不会空载关闭输出如果要控制IP2366强制关机再设置bit7 bit6为1。