IP2366调试问题总结
简介
本项目应用场景: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。