BQ24196 充电关机并不断重启
基于Marvell 的PXA1088 平台方案,充电IC 是BQ24196,设置最大充电电流2.5A,开机充电,发现有部分机器在电量达到80%或者充电完成(充电器一直插着)时会自动关机,关机后由于充电器一直在,系统会不断重复重启,现推测是因充电器存在而不断激活系统,而启动后由于某些原因而检测充电器无效又回到关机状态。
1、此平台的硬件方案和Marvell PXA1088 原始方案有所不同,去掉了电量计电路。
2、测试发现不断重启的机器系统供电电压是4.5V,而能够正常启动的机器系统电压会由4.5V 切换至电池电压
1. 确认下这个平台的原始设计上,开关机过压和欠压保护是否有设置?是怎样侦测,怎样实现的?是否会关注电量部分?因此要关注去掉电量计部分时是否处理不干净
2. 若有可调节输出电压大小的直流电源,你们可以做个实验,将DC_Power的输出接到当前接电池的地方,让后调整电压从3V到4.2V,而Bq24196输入不用接电源,来模拟电池这个充电过程中电池电压在逐步升高的过程,看看会有什么现象发生,反复多做些机器和次数
3. 按经验,你们这个现象原因出在问题一上,系统可能判断当前电池电量出了差错,导致关机,也就是保护误判的可能性比较大
现在初步有一些发现,这个问题应该是关联到系统充电的保护机制,我们使用的是高压电池,当电池充电至4.35V 时,自动关机发生。而关机由于有充电器在,系统会启动,此时测量系统的Vsystem电压,开机瞬间如果Vsys能够从4.5V 下降至接近4.35V,则重启不会发生,如果Vsys一直保持4.5V,也就是spec中提到的充电停止时,Vsys和电池电压会保持0.15V压降,这时重启就会发生。而此时从SW 端看不到log信息,应该是系统的保护性重启。至于具体是由于4.5V 超过某些设定阈值,还是充电的电量检测错误导致的重启,现在还看不到。
充电状态下,从SW log 信息可以看到,当电池电压达到甚至超过4.35V时,充电没有停止,直至系统发生自动关机并不断重启,系统的充电停止设定没有起作用!
充电停不停止不会影响到系统的开机或关机,目前你们的分析已经很有成果了,可以再继续分析下在原始设计上这块的保护机制是怎样的,然后将其屏蔽掉应该这个问题就没有了!
通过进一步观察Vsys 和Vbat,我们发现重启有几个条件:
1,重启的样机Vsys 和Vbat在停止充电时,如果充电器插着,会有0.175V 的压降,而未发生重启的样机,一般会有0.14~15V 的压降。
2,重启发生的时刻,目前发现都是在充电已经停止,而充电器依旧插着的状态下,忽然重启,而此时Vsys 电压一般在4.50V 左右,Vsys 最大不会超过4.52V。另前文提到超过设定电压不停止是从SW trace信息看到,而实际上,通过监测Vsys 和Vbat, 发现charger IC 会非常准确的在设定的停止电压达到时,关闭充电路路径,我们现在使用高压电池,充电的停止电压是4360mV,充电会在43601mV 关闭充电,而关闭后,电压会回落到4.34V左右。
3,重启发生时,SW UART trace 未提示任何error 或者异常信息。
我们现在不确定是由于Vsys 超过4.51V 导致HW PMU 保护性重启还是SW 逻辑在接近充电完成时发生混乱,导致SW 异常重启。
最新的测试结果显示,充电完成中断不稳定,发生如下状况: 当充电已经被关闭时,trace 分析发现SW 没有收到充电结束中断信号,此时UI 界面依旧显示充电进行画面!