BQ25601应用中的若干问题

描述

BQ25601是一款常用的充电芯片。本文针对其错误上报的机制进行了说明。同时,本文针对该芯片实际应用在可穿戴产品中碰到过的弱充问题进行了问题分析和说明,并从系统层面给出了阶梯式抬升充电电流的解决方案。

BQ25601简介

BQ25601是一款高效率的单电池降压式充电管理芯片,其具有路径管理功能,可以实现输入和系统端以及电池侧的充放电管理。该芯片可以支持到3A的充电电流,最小可以支持到60mA,被广泛应用在手机,可穿戴等产品中。手册中给出了典型的应用电路以及相应的设计案例,这里就不再赘述了。因为该芯片应用非常广泛,所以本文主要针对实际应用过程中碰到的问题进行分析总结。

BQ25601错误中断上报机制说明

在实际系统应用中,我们经常需用通过读取芯片的状态寄存器或是在硬件上检查INT管脚的状态来判断芯片工作中是否有碰到异常,那么对于芯片的错误上报机制以及中断发出机制的理解就很重要,有助于实际的调试。根据手册中描述如下,当出现故障时,BQ25601会发出INT信号给到host, 并将对应的状态寄存器REG09中的对应bit置位。INT信号会被拉低256us, 然后再恢复。

芯片

Fig 1 手册中关于发生fault时INT和状态寄存器的描述 (1)

而实际使用过程中,有时候会碰到同时出现多个错误,

a. 第一个错误出现时,INT信号被拉低,如果在拉低的过程中,又出现了第二个错误,此时INT信号不会继续延展,只会看到一个256us的INT拉低的指示。

b. 第一个错误出现时,INT信号被拉低。在256us内第一个故障消失,而第二个故障出现。此时INT信号依然不会延展,还是只会看到一个256us INT拉低的指示。

所以实际使用过程中,如果只看到一个INT信号拉低的指示,并不代表实际只有一个fault出现,还是需要通过状态寄存器去读取实际出现的问题,INT信号只会在所有故障或是DPM状态被清除后,才会再次起作用。 而对于状态寄存器的读取来说,手册中有相关描述,需要注意的是,该寄存器是读清,所以如果需要判断当前芯片是否有故障存在,需要读两次REG09,第一次是用来清之前的fault, 第二次才能判断当前是否有fault存在。

BQ25601弱充问题

在可穿戴等应用场景中,诸如智能手表等,充电是通过触点等方式将充电座和充电接口相连。在实际中接口处经常会存在接触不良或者有污渍的场景,这样就会导致充电器端的实际输出能力下降。于是客户在产品中加入了该场景的模拟测试:将输入电源的输出限流点设定在一个较小的值,要求在该场景下电池还是能够继续充电,否则就会影响客户的使用体验。

这边将输入电源Vbus设置为5V/100mA ( 100mA为输出限流点,相比于实际场景应该已经足够小) 。受电设备设置预充电流为0.18A, 快充电流为0.78A。Fig2 是用TI的GUI软件读取的此时的充电芯片的配置。同时,充电芯片的系统侧会消耗70mA左右的电流。

芯片

Fig2   BQ25601在某可穿戴项目中配置

(VINDPM=4.4V, Ipre-charge=60mA, Icharge=780mA, Isys=~70mA)

在实际测试中发现,当电池电压较低时,会出现停充,即电池电压始终无法持续充高。从波形上看,Vbus有较大跌落,导致芯片不工作,而系统端此时因为需要供电还不断在消耗电流,所以电池电压始终卡在某一点,而无法充电到更高电压,这是不可接受的。正常来说,由于VINDPM的存在,即使后端负载过大,Vbus电流能力不足,那么Vbus电压应该也会被钳位在VINDPM而不会跌落到工作门限以下,导致充电芯片出现不工作的场景。

芯片

Fig3  电池停充的相关波形 ( Ch1=SW, Ch2=Ibat, Ch3=Vbus, Ch4=Vbat)

为了复现该问题,在EVM上进行模拟实验,搭建实验环境如下,输入电源power supply #1还是设置为5V/100mA。实际电池采用模拟电池电源来替代,以便于监控电流。在系统端(sys)采用电子负载,设置恒流CC模式来模拟实际系统的电流消耗。将模拟电池的电压从2.5V不断往上调高,来模拟充电过程中不同的电池电压情况,观察在这个过程中,是否会存在停充的现象。

芯片

Fig4 模拟故障的实验环境搭建 (2)

从测试可以看到当Vbat电压在3V左右会出现如Fig2 中类似的情况,而在其他电压的情况下,Vbus即使因为电流能力不足导致被拉下来,但还是能够被钳位在VINDPM的电压值,而不会更低。从Fig5中可以看到当电池电压在2.9V和3.2V时,输入Vbus会被钳位到VINDPM的值,即设定的4.4V,不会出现跌落的场景。

芯片

从手册中可以看到,3V左右是芯片从pre-charge到fast-charge的切换点,对Vbat=3.0V时波形展开,如Fig6,

芯片

Fig6 Vbat=3V时Vbus跌落的展开图(Ch1=Vbus, Ch2=Vsys, Ch3=Vbat, Ch4=SW)

可以看到,充电电流从在70us内变化了有400多mA, 在b点VINDPM的环路开始响应,开始减少充电电流,但从c点可以看到,VINDPM的环路没办法将充电电流控住,从而Vbus发生跌落,跌落至工作门限以下。此时芯片停止工作,Vbus由于负载变轻,又恢复到正常电压。但恢复到正常电压后,又重新进入上电流程,芯片要重新进行poor source检测,需要~30ms左右的时间,这个过程中系统端只能由电池来供电。从上面分析可以看到,其本质原因是在于VINDPM的响应时间比芯片从预充到快充的充电电流变化时间要慢,所以VINDPM在这种大负载切换时来不及起作用,导致Vbus电压被拉下来,从而导致无法充电。而实际采用真实电池时,在中间进入supple mode的阶段,电池因为在消耗能量所以电压会被拉下来,等到再次恢复充电的时候,电池电压比较低,所以还是在进行预充电阶段,当切入快充阶段时,又会进入到停充的状态,所以导致电池电压一直无法充到3V以上,进入正常的快充状态。

那针对这个问题,因为VINDPM的响应时间是跟它环路本身的响应有关,这个是没办法修改的,那么我们可以从系统层面去解决这个问题。可以将充电电流的抬升从直接抬升,改为阶梯式的抬升,让每次的电流跳变幅度没有那么大,这样可以使得输入电压在这样小的跳变下不会被拉低到工作电压点以下。同时应该本身是穿戴类的应用,其电池容量也比较小,所以这种台阶式的充电电流抬升对整体的充电时间影响也基本可以忽略。

芯片

结合电容的电压电流特性Cdu/dt=I,可以得到公式(1)如下

 

芯片 公式(1)

 

其中,Cin是输入电容, 最极限的情况就是所有能量都由Cin提供,输入电源本身还来不及响应;

Vbus是输入电源电压,Vbusfalling是芯片工作电压点,在手册中可以看到为3.9V( typical),  这边要确保输入电压不会跌落到欠压门限以下,所以从正常工作的Vbus到欠压点之间的压差就是(Vbus-Vbusfalling),也即之前电容特性公式中的du;

TVINDPM是VINDPM的对应的响应时间,从前面的测试波形可以得到。在这段时间内,VINDPM来不及响应,那么电容上的电压就可能会跌落到VINDPM设定门限以下;

(Ich1-Ich2)为充电电流跳变步进,Vbat为此时电池电压,ꜧ为充电效率,可以通过手册效率曲线得到。假设系统端电流是稳定的,通过“充电电流*电池电压/充电效率” 就可以得到充电芯片输入端电流变化,也就是此时输入电容上被抽走的电流,它会导致电压跌落。

用这个公式可以大致算出,要使得Vbus电压不要跌落到欠压点以下时,充电电流最大的变化值,也就是台阶式去抬升电流的最大的台阶。

这边取Cin=10uf, Vbus=5V, Vbat=3V, tindpm= ~100us, 效率就按~80%,得到充电电流的每一个台阶是~0.15A。在TVINDPM时间后按照这个台阶去抬升充电电流,即可以保证输入电压始终处于工作状态内。

结论

本文针对BQ25601的错误上报机制进行了说明,在多个错误同时发生的情况下依然只会有一个INT信号,需要去进行二次读取状态寄存器来判断当前状态。同时,本文对实际在可穿戴应用中碰到的弱充问题进行了分析,原因在于输入DPM的调节速度要慢于充电电流的调节速度,导致输入电压被拉低。给出了阶梯式充电的解决方案,通过系统端来避免出现停充的问题。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分