锂离子电池管理中的问题与解决方案
一、 概述
锂离子/聚合物电池(以下均简称锂离子电池)是以锂合金的金属氧化物为阳极材料、以石墨为阴极材料、使用非水电解质的可充电电池。根据阳极所用材料的不同,不同种类的锂离子电池也表现出不同的特性,它们最明显的电特性上的差异就表现在不同的公称电压上,与之相应的充电终止电压和放电截止电压也各自不同。锂这种材料在具有很多作为电池材料优点的同时,也同时具有非常活泼的特性(这本来是它的优点),稍有不慎,它就很容易燃烧,而燃烧带来的高温和体积膨胀常常造成灾难性的后果。所以,除了在锂离子电池本身的制作、保存、运输、操作上要执行严格的规范以外,对它进行保护、充放电管理方面也有许多的讲究。
二、锂离子电池的保护
锂离子电池在使用中最重要的是要确保它不会被过度充电和放电,这两种行为对它的伤害都是不可修复的,甚至可能还是危险的,因为它的内部材料结构被破坏了,就什么问题都可能表现出来。因此使用中首先要做的就是要给它加上保护电路,确保过度的行为不会发生。
RT9541和RT9545立锜科技在锂离子电池保护IC市场上推出的产品,其功能都是要实现过流、过压保护和过充、过放保护,下图是截取自RT9545规格书的应用电路图:
图一、锂离子电池保护电路
在一般应用中,保护IC这部分电路是和电池一起放在电池包里的,用户能够看到的仅仅是+、-两个电极。电路中Q1和Q2既是用于实现放电和充电时的保护开关(由于存在寄生二极管的缘故,没有办法只使用一只管子实现双向的保护,除非使用可双向关断的其他器件),也是过流检测元件。当IC在开关两端检测到过大的电压降时,就会强制MOSFET进入截止状态,从而关闭流过电池的电流,达到保护电池的目的。由于电流侦测是通过对MOSFET两端之间的电压差的侦测来实现的,MOSFET的导通电阻就会成为一个关键参数,这是设计者需要注意的重点。
对过压状态和欠压状态的侦测则是通过对VDD和VSS之间电压的侦测来完成的,大部分的锂离子电池会选择4.35V和2.5V作为过充保护电压和过放保护电压,并会因为电池本身的不同而有不同的选择。下图是RT9545的内部电路框图,有兴趣的读者可以作为研究的参考。
图二、锂离子电池保护IC内部电路框图
下图是一种容量约为950mAh的锂离子电池的容量和循环寿命与充电截止电压之间的关系,从中可以看到如果仅仅靠锂离子电池保护IC所提供的4.35V作为充电截止电压,那么它的初始容量是比较高的,但循环寿命是极短的,而且容量下降速度也是极快的。
图三、锂离子电池的容量、循环寿命和充电电压之间的关系
不同的充电电流对锂离子电池的容量和寿命有什么影响呢?下图可供参考:
图四、锂离子电池的容量、循环寿命和放电电流之间的关系
从中我们可以看到,对900mAh的锂离子电池以1.0C的速率进行充电,500个循环后的容量大约为780mAh;但若以2.0C的速率进行充电,500个循环后的容量大约为500mAh。从几条曲线的趋势来看,我们几乎可以认为随着充电速率的增大,其容量衰减的速度是以指数特性递增的。通过这些实测的数据,我们应当知道,我们需要使用正确的策略来使用锂离子电池,而充电策略就是所有策略中最重要的。
三、充电策略及其和温度的关系
在充电的过程中,在充电器施加的外电场作用下,Li+从正极LiCoO2中脱出进入电解液并向负极移动,依次进入石墨组成的负极,在那儿形成LiC化合物。如果充电速度过快,会使得Li+来不及进入负极栅格,在负极附近的电解液中就会聚集Li+,这些靠近负极的Li+很可能从负极俘获一个电子成为金属Li。持续的金属锂生成会在负极附近堆积、长大成树枝状的晶体,俗称枝晶。另一种情形,随着负极的充满程度越来越高,LiC晶格留下的空格越来越少,从正极移动过来的Li+找到空格的机会就越来越小,所需时间就越来越长,如果充电速度不变的话,一样可能在负极表面形成局部的Li+堆积。因此,在充电的后半段必须逐步缩小充电电流。枝晶的长大最终会刺破正负级之间的隔膜,形成短路。可以想象,充电的速度越快越危险,充电终止的电压越高也越危险,充电的时间越长也越危险。如果你不能想象电池内部发生的状况,请把这个电池想象成肥皂泡,你往肥皂泡中吹入气体的过程就相当于给电池充电的过程,如果你吹得太快,肥皂水形成的水膜扩张速度赶不上气体吹入的速度时,肥皂泡就很容易破裂了。
基于对锂离子电池特性的理解,业界已经形成了对锂离子电池进行充电时的三阶段策略:预充电、恒流充电和恒压充电。预充电的意义是要对电池的状态进行调整,使之进入可以进行大电流快速充电的状态;恒流充电的作用是将电能快速地储存到电池中;恒压充电阶段则是最后的调整阶段,它使电池的容量最大化,但其进行过程是完全依照电池自身的需要进行的,不像恒流充电阶段那样对电池有强大的外来压力(电场力)。任何违背电池本身特性的行为,尤其是超过电池接受能力的过大电流或是超过电池过充电压的操作都会对电池的寿命带来无法挽回的影响,所以任何完善的充电管理方案都必须按照严格的规范来进行设计。
下图显示了充电的三个阶段:
图五、业界通行的锂离子电池三阶段充电策略
预充电(Precharge)发生在电池电压比较低时,对于大多数锂离子电池来说,这个电压通常定义在2.9V~3V以下,此时的充电电流一般容许在C/10以下。恒流充电的电流大多设定在1C左右(按照500个使用循环后容量衰减至初始容量的80%确定)。在恒压充电阶段,电流将逐渐下降,下降到一定程度(通常是C/10)以后,我们可以认为电池已经充满了,充电过程将截止。
上图显示的最后一个阶段被称为补充阶段,它实际上是恒流阶段和恒压阶段的组合。它是为了弥补电池自放电和其它与它相连的负载的消耗而造成的电容量下降的弥补措施,这样做是为了保证在电池(及由其构成的系统)和充电设备分离时总是处于尽可能充满电的状态。
电池所处的温度对充电策略会有重大影响。由于构成电池的材料在不同温度下的特性不同,电池的容量、合适的充电电压也发生了巨大的变化(参看下图)。
图六、温度对锂离子电池容量和电压的影响
通常情况下,温度过低或过高时,应当禁止对电池进行充电操作。一颗充电管理器件要完成这一任务其实非常容易,下图是RT9503A的应用电路图,其中有一个可变电阻和电池放在一起,这个可变电阻是热敏电阻,把它和电池放在一起提示我们要测量的是电池本身的温度。在实际工作时,RT9503A的TS内部流出来一个102μA的电流,该电流流过热敏电阻以后就会在TS端形成一个电压,如果该电压位于0.5V~2.5V之间,RT9503A认为此时的温度在可以充电的区间内,而一旦此电压超出此区间,它就会认为电池已处于不合适充电的状态下,会立即将充电过程终止,从而保护电池不致因不恰当的充电而受损。作为设计师,需要根据自己选定的电池容许充电温度范围去选择这个热敏电阻的规格,而计算的方法也很简单,利用前面提供的电流、电压数据用欧姆定律计算出可用的电阻值范围,热敏电阻的规格就很容易确定了。
图七、RT9503A应用电路图
有一些充电管理器件没有包含温度检测功能,这种器件就只适合用于没有温度问题存在的场合,或是系统中有其他温度检测措施,充电电路可受系统控制的场合,就像上述的RT9503A,它有一个端子EN,只要将此端子置位于高电平,充电电路就会停止工作,所以它是完全可控的。
有的国家和地区还对电池充电制定了不同温度下的不同策略,日本在此方面是一个典型,特别制订的JEITA规范就要求在温度过低和过高时降低恒流充电电流、恒压充电电压,这一规范恰好与电池的容量随着温度的变化而变化的特性紧密对应。JEITA规范所要求的规格变化在RT9519A的规格书中有比较清楚地呈现出来,下图就取自其中:
图八、JEITA规范对锂离子电池充电电流、电压的要求
我们从中看到要在不同的温度下采用不同的充电电流和电压,那么要怎样实现这种转换呢?规格书中给出下图予以说明:
图九、RT9519A使用VSET、ISET改变充电电压、电流的方法
其中,VSET和ISET是IC的输入端子,而VREG和ICHG是指的恒压充电电压和恒流充电电流,也就是说改变VSET和ISET端子的状态就可以实现规格的转换。我们从这里看到要转换符合的规格需要进行温度测量,作出判断以后再把控制信号加到RT9519A的输入端上即可。很可惜,RT9519A没有进行温度测量的能力,这个任务需要由系统的其它部分来完成。
RT9528在这个方面走得比较远,我们先看看它的应用电路图:
图十、RT9528的应用电路简图
TEMPIN是连接热敏电阻的端子,VP是一个3.3V的输出端,这样我们就知道TEMPIN是取样端,它把R1和NTC分压后的电压送入IC。
NTC的规格是由SETNTC的状态来选择的。如果SETNTC=L (低电平),表示NTC是100kΩ的,具体型号是NCP15WF104F03RC;如果SETNTC=H(高电平),表示NTC是10kΩ的,具体型号是NCP15XH103F03RC。这两个型号在规格书中有给出来。
IC内部如何处理由TEMPIN送入的信号呢?我们要看看RT9528的内部电路:
图十一、RT9528内部电路框图
在图中的左下角,我们看到TEMPIN被送入一组比较器,这些比较器根据此电压的高低给出的比较结果分别代表太热(Too Hot)、热(Hot)、冷(Cold)、太冷(Too Cold)。很显然,控制器将根据这些判断结果和预先制订的规格进行参数调整。通过对规格书的研读,我们还可以看到,什么情况下太冷?什么情况下冷?这个温度也是可以改变的,这在下表中可以看到:
表一、RT9528内部寄存器对不同温度判别标准的定义
I2C_CTR4
Address
|
Name
|
Bit7
|
Bit6
|
Bit5
|
Bit4
|
Bit3
|
Bit2
|
Bit1
|
Bit0
|
0x08
|
CTR4
|
RNTC Type
|
Too Cold
|
Cold
|
|
Reset Value
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
|
Read/Write
|
R/W
|
R/W
|
R/W
|
R/W
|
R/W
|
R/W
|
R/W
|
R/W
|
RNTC Type
|
RNTC Type set
00 : See SETNTC Pin
01 : RNTC = 100kW
10 : RNTC = 10kW
11 : Reserved( same as 00)
|
Too Cold
|
Setting of charger Too Cold Temperature (Range : -10 to 15°C, Default = 0°C)
000 : -10°C
001 : -10°C
010 : -10°C
011 : -5°C
100 : 0°C
101 : 5°C
110 : 10°C
111 : 15°C
|
Cold
|
Setting of charger Cold Temperature (Range : -10 to 25°C, Default = 10°C)
000 : -10°C
001 : -5°C
010 : 0°C
011 : 5°C
100 : 10°C
101 : 15°C
110 : 20°C
111 : 25°C
|
对太热和热的温度也是可以进行调整的,这可以在对寄存器CTR5的定义中看到。这样就给我们带来了很大的灵活性,我们可以根据需要随时调整充电规格,产品的使用范围不会受到器件选择的限制。下面两幅图分别形象地显示了温度由常温变冷、再变到太冷时充电电流的变化情况和温度由常温变热、再由热变太热时充电电压的变化情况。如果预先选择的策略不同,变化也会不同,要了解更多的信息,请阅读产品规格书。
图十二、温度变化引起的TS端电压变化导致RT9528改变充电电流、电压的示范图
另有一些设计是可以通过外部控制电路或是通讯接口接受命令以改变充电电流和电压的器件,RT9450A、RT9451和RT9480是具备这样的通讯能力的例子,而通用型的宽电压输入型充电IC如RT9531、RT9535和RT9538则仅提供最基本的恒流、恒压输出的功能,并把所有的设定部分都开放给硬件设计者,它们对于构建完备的电池管理系统来说就无疑是一大助力。在实际上,这几款产品都可以被使用于独立的电池管理系统──移动电源,而RT9480就完全是因为移动电源而生的,它已将常见的移动电源管理功能完全集成在单一芯片中,而且其功能和性能是可以被预先设定的,一旦设定以后就可以离线使用,实际上正常出厂的RT9480已经按照最常规的用途进行了设定,如果你没有什么特别的需求,你是可以直接使用的,它的规格书也以这一设定为准进行编写。而RT9451则支持高达4A的充电电流,其充电电流、电压都可以在很宽范围内任意设定,这使得它可以适用于多种电池的应用。除了支持大电流充电以外,RT9451还支持USB-OTG应用,其输出电压也是可以设定的,并且输出电流高达1.6A,是USB-OTG应用的绝佳选择。
四、 充电定时器
正常设计的锂离子电池充电管理系统都能在正常的充电时间内将电池充满,但如果遇到某些意外状况,例如电池存在超过规格限制的漏电行为(短路也算是这一类的)或是有负载参与到系统中(这在充电电路、电池和系统以串联方式连接时常常发生),充电过程结束的条件就有可能永远不会达成,我们永远不会看到充电完成的提示信息。在这种状况下,充电安全定时器就是必不可少的配置,它将限制最长的充电时间,时间一到,无论电池处于什么状态,充电过程都会自动结束,只有重启系统才能让充电操作再次进行。
不是所有的充电管理器件都有安全定时器的,但具有这一功能的器件的实现方式会因不同的设计而有不同。某些器件采用电容作为内部充电定时器的时间基准,如RT9525就是这样,下图是它的内部电路框图,我们可以看到它有一个名为TIMER的端子,内部有一个恒流源,只要在此端子和GND之间放上一只电容,电容上的电压就会在恒流源的作用下线性上升,内部命名为TIMER的电路部分只要放上一个比较器,当它检测到电容上的电压升高到某个设定值时控制一个开关将电容上的电荷释放掉,这样一个过程就可以构成一个时间基准。内部计数器对此时间基准的发生次数进行计数直至某个设定值,就可在确定的时间将充电电路关闭。在此设计中,由于恒流源的电流是固定的,比较器参考电压也是固定的,计数器终止计数的数据也是固定的,所以只要改变电容量就可以改变设定的时间值。
图十三、RT9525内部电路框图
对于那些可以通过编程控制的器件来说,对安全定时器的操作可以是一个动态的过程。以可以通过I2C总线进行控制的RT9451为例,它的内部就有一个32秒安全定时器和32分安全定时器,他们分别在Boost模式和充电模式下起作用。由于这个器件是被设计成必须在MCU的控制下工作的,所以它只容许自身自由运行最多32秒(在Boost模式下)或32分钟(充电模式下),MCU必须不时关照RT9451的运行情况,这个过程中它会复位定时器,如果MCU忘了在规定时间内来关照它,定时器就会终止RT9451的当前工作状态而进入不做任何工作的高阻模式。下图显示了MCU不来关照RT9451复位定时器的情况,我们可以看到,时间一到,输出将被无情地关闭。由于这是显示的Boost模式下的状况,所以输出是出现在VIN端的。
图十四、RT9451内部32秒安全定时器工作表现
下图显示了RT9451内部安全定时器在工作时和各种操作之间的关系,它截取自RT9451的规格书。
图十五、RT9451内部安全定时器的运行和系统操作之间的关系
五、路径管理
所谓的路径管理其实不是充电管理的问题,它是系统设计的问题。对于使用电池供电的系统来说,是否需要在充电的同时让负载处于工作状态,这对系统的设计影响巨大。考虑路径管理问题,就是考虑如何让电能进入电池,又如何从电池向负载供电,考虑是否要让外部电源直接为负载供电,考虑在外部电源不足以满足负载需要、充电需要或是两者的共同需要时,到底要如何做的问题。没有电源路径管理功能的充电管理器件都是比较简单的,其充电电路通常如下图所示:
图十六、以RT9526为例的常见的充电电路
这个电路截取自RT9526的规格书,我估计这已经是最简单的充电管理器件了,必要的电流设定和状态指示是用户可以和它打交道的地方,其它的规格都被IC内部的设计限定死了。
对于这样的简单系统,其负载通常只能和电池直接连接在一起,其连接方法就和图中的电容COUT一样——和电池并联在一起,但由于充电器件、电池和负载是一个个挨次连接起来的,来自外部电源的电流必须经过充电管理器件、电池以后才能进入负载,我们习惯于把这种连接法称为串联连接。对于那种外来电源不经电池就能进入负载的连接方式,我们把它称为并联连接,前文给出的RT9503A应用电路图就是并联连接的典型,当外部电源接入时,电流经IC内部路径为电池进行充电,也同时经外部连接的二极管和MOSFET串联路径流入负载。
串联连接非常简单,只要电池中有足够的电能,负载就能直接工作,成本也低,所以被广泛使用。它的唯一缺陷是当电池电能不满足负载的需要时,负载无法进入工作状态,这种状况在现实中经常遇到:以手机为例,大部分在电池用尽而插入充电器充电时,有一段时间是无法开机的,必须等电池电压高于一定的水平,才能开机让负载进入工作状态。为什么会这样呢?很简单,因为一般锂离子电池的可使用电压范围为3.0V~4.2V,可是很多负载要求的工作电压为3.3V,而大部分系统采用的供电器件都是降压型的稳压器,所以一旦电池电压低于某个值,3.3V的输出电压就无法保证了,这时候就不得不等待充电过程将电池电压提升到一定的水平后再开机。
让电池电压在整个可用范围内都可使系统工作的设计通常需要可以自动升降压的Buck-Boost型器件,例如RT6150系列的器件就可以解决此问题,但这属于另一个话题了,我们暂且打住不表。
锂离子电池的放电过程通常不在充电管理系统的管辖之下,但对于某些应用来说,无论充电器容量如何,也不管电池处在什么状况下,都会要求由电池/充电器供电的系统部分永远处于工作状态下,这时候,具有动态电源路径管理功能的充电管理器件就是必须的配置,它能将输入电流自动地在负载和电池之间进行分配并优先满足负载的需求,同时又将尽可能多的电能送入电池中;更进一步的做法是当输入电源不能满足负载需求时,自动将电池加入供电源行列,与外部电源一起共同为负载供电,确保负载能够正常工作。这里的陈述是以让负载能够工作作为优先考虑的状况,如果把优先顺序设定为充电优先,设计就会完全不同。
本文前面提到的RT9503A是具有路径管理功能的一个例子,但它的功能相对简单:当外部电源接入时,由此电源同时给充电部分和系统部分供电(这要求外部电源要有足够的负载能力);当外部电源撤离时,自动切换到由电池为系统供电的状态。这种方式存在一个缺陷:在外部电源接入和撤离的瞬间,供给系统的电压会有比较大的跳变,这种跳变对于负载部分使用的稳压器件来说可能是一个挑战,它也可能输出一个比较大的跳变,对于某些系统来说,这可能是一个不能接受的特性。
前文提到过的RT9519A是一个具有自动路径管理的功能的器件,同时也还支持众多的功能,如前文提到它时所谈的JEITA规范支持能力,为了让我们能更好地理解路径管理功能,我们转而介绍另外一个简化了很多的器件:RT9525。下图是它的应用电路图:
图十七、RT9525应用电路简图
从图上看,它的使用很简单。来自电源适配器或USB接口的5V电源接入VIN端,电池连接在BAT端,TS端仍如别的器件一样连接热敏电阻用于决定什么情况下不能对电池进行充电,连接在ISETA端的电阻RISETA设定充电电流的大小(其中的字母A暗藏了一个信息:它设定的是电源适配器(Adapter)供电时的电流),CTIMER是用于决定最长充电时间的,SYS端是连接负载的地方,SYSOFF这个端子则是用于决定要不要让电池给负载供电的输入端。EN端居然有3个,其实只有第4脚是用于使能IC的,另外两个是用来设定输入电流限制值的,其对应关系如下:
表二、RT9525的EN1/EN2状态与输入电流限制值之间的关系
EN2
|
EN1
|
VIN Input Current Limit
|
L
|
L
|
90mA
|
L
|
H
|
475mA
|
H
|
L
|
1.5A
|
H
|
H
|
Suspend Mode
|
这是针对不同的输入电源时的设计,后面我们可以看到90mA和475mA的设计其实就是用于USB输入时满足USB规范的,而1.5A的规格则很显然是针对电源适配器输入的。当某一个电流限制值被设定以后,输入电流最大就只能是这么大,我们需要用这个电流去满足电池充电和负载供电的需求,怎样在电池和负载之间分配这受限的电流?当这电流不能满足负载需要时怎样将电池的电能取出来弥补其不足?这就是路径管理要解决的问题。我们先看看这路径是如何建立的,这可以从IC的内部电路框图中看出来:
图十八、通过RT9525的内部框图来看路径管理的实现
上图中最上面的两只MOSFET构成了我们要的路径,它们将VIN、BAT和SYS端连接起来。在实际工作时,这三个端子处的电流、电压状况和关系在规格书中有清晰的呈现:
图十九、RT9525在输入电流限制模式下各端子电流和电压之间的关系
这个图是在USB 500mA模式下的状况,也就是当输入电流限定为500mA时的表现。规格书中也提供了1.5A模式下的表现,但两者其实是一样的,只是因为电流限制值不同,造成相应的其它电流值有不同,实质是完全一样的。图中根据不同的电流搭配和变化状况将其表现分为7种情形,分别以T1~T7予以标识,在这7种情形下各端子的电流电压状况被整理在下述表格中:
表三、RT9525在输入电流限制模式下各端子电流和电压之间的关系
|
ISYS
|
VSYS
|
T1, T7
|
0
|
SYS Regulation Voltage
|
T2, T6
|
< USB_OC - CHG_MAX
|
SYS Regulation Voltage
|
T3, T5
|
> USB_OC - CHG_MAX
< USB_OC
|
Auto Charge Voltage Threshold
|
T4
|
> USB_OC
|
VBAT - IBAT x RDS(ON)
|
|
IUSB
|
IBAT
|
T1, T7
|
CHG_MAX
|
CHG_MAX
|
T2, T6
|
ISYS + CHG_MAX
|
CHG_MAX
|
T3, T5
|
USB_OC
|
USB_OC - ISYS
|
T4
|
USB_OC
|
ISYS - USB_OC
|
从中可以看到,路经管理系统会把输入电流优先向负载供应,当输入电流满足不了负载的需要时就会把电池纳入供电行列,但只要负载的消耗一旦降低,它就会把剩余的电流导入电池通道为电池充电,当然了,这要看电池充电部分是否需要那么多电流。
六、USB接口规范、限制和识别
将含有USB接口的设备接入主机时,规范要求在设备有效以前最多只能从主机的USB电源总线VBUS上获取100mA电流,设备通过验证以后可以获取最大500mA的电流。当含有锂离子电池的设备要利用USB接口为电池充电时,它也必须符合这一规范的要求,而这一任务就落在了充电管理器件的头上。有的人可能会认为100mA和500mA的电流限制是USB主机能给出来的电流最大值,这其实是个错误的认识,电流的大小永远都是由负载决定的,作为供应方的主机能做的最多是限制最大电流输出能力,并借此防范可能的风险,立锜科技有很多所谓的功率开关(Power Switch)可用于这一目的,有兴趣的可以参考RT9715的规格书,这是其中的一款典型型号。
前文提到的RT9525的USB100和USB500模式就是用来帮助设备去符合规范要求的设计,在这两种模式下,RT9525最多只能吸入90mA和475mA的电流。
充电器件怎么能知道现在为我供电的电源是来自USB端口而不是电源适配器呢?在电源的供、需双方之间能够借助电源线建立起通讯管道以前,这是一个要另外解决的问题。
几年前,当中国的手机充电器规范建立起来时,它是这样来做的:在结构上采用USB接口的结构,利用USB的数据线端子“D+”和“D-”来传递信息,只要这两个端子之间是短路的,这就表明供电端是电源适配器。这个方法和标准的USB信号端子不一样,USB是用来传递数据的,端子的内部连接的是运算放大器的输入/输出端,具有较高的阻抗,不可能表现为短路状态。所以,只要我们向D+/D-之中的一个端子注入一个电流,然后又能在另外一个端子上接收到这个电流,那我们就知道这两者之间是短路的,这就说明这个电源供应器是电源适配器了,反之则可以被认为是标准的USB端口。支持USB-OTG应用的RT9451的USB侦测功能就是这样实现的,但并不是市场上的每一个充电IC都具有这一功能,立锜科技的产品也是这样,大多数都不具备这一功能。
当使用没有USB端口侦测功能的充电IC但又要完成这一功能时,就只能依靠其它做法来实现了,这对拥有USB通讯功能的系统来说不是难事,但这不属于我们现在要谈的内容,就此打住。
七、端口的过压、过流保护
几乎在所有的充电管理器件应用中,它们都处在系统的最外围接口部分。外部电缆在这里反复地插拔,电流在这里通通断断,虽然大多数外接的电源都是5V的设计,但实际出现的电压可能是千差万别的,尤其是在进行插拔操作时和电流变化时,高于设定电压的高压冲击难以避免。为了避免这一高压对系统可能带来的损害,Richtek的大多数5V供电的充电管理器件都增加了过压关断保护和28V以上的过压耐受能力,前者确保高电压不会进入系统造成危害(大多数过压关断保护都发生在6V左右),后者则确保充电管理器件本身不会因过压而受损。
对于那些采用只能承受较低冲击电压的充电管理器件来说,外加过流、过压保护器件是必要的选择,这时候,可以考虑如RT9718这样的集成化端口保护器件,它集成了过热保护、过流保护、过压保护和电池电压过压保护四种保护功能,当任何一种意外发生时,它都能在确定的时间内将外部电源和内部系统之间的联系切断,确保系统的安全,当然,它也同时具有耐受高达28V电压冲击的能力,确保自身不会被轻易损坏。
图二十、过压保护IC在锂离子电池管理系统中的位置
上图是RT9718在应用中的电路连接关系图。其中的电阻RILIM用于设定容许的最大通过电流,所以过流保护点是可设定的;过压保护电压值则是由具体型号决定的,这在型号定义规则中予以体现:
图二十一、RT9718的型号定义规则——不同的过压保护值由不同字母代表
RT9718对过压状况的响应是极快的,最多1μs,输出即被关断,以防高电压对后续电路造成危害。输出电压回落至低于OVP电压100mV后,延时8ms,如果一切正常,开关将重新打开为后续电路供电。
对于电流过大的状况,RT9718的响应时间是180μs,这是为了避免误动作的发生,只有持续性的过流才是它要避免的状况。过流保护的恢复时间是64ms,如果过流发生了16次,开关将永久性断开,直至重新发生POR才会恢复输出。
RT9718对电池电压的过压检测是通过VB端实现的,其保护电压阈值是4.35V。在这个端子和电池之间串连了一只电阻RVB,这个电阻对电压保护阈值和端子的漏电大小有影响。为了降低电阻造成的保护电压阈值变化量,电阻应该比较小,但小电阻会加大漏电流,所以需要折中选择这个电阻的值,它的建议值在200kΩ~1MΩ之间。同样地,每一次电池电压过压保护的发生都需要过压状况持续了180μs以上才会被触发,它也只能被容许发生16次,然后就处于永久性的保护状态,直至POR发生之后才会重启输出。
过热保护(OTP)的发生和IC的外部状况无关,只要它的内部温度达到140°C,保护动作就会发生,输出被终止,直至温度下降20℃以后,重新进入工作状态。
除了OTP以外,其它每一种保护的发生都会导致WRN端的状态改变,系统设计者可以利用这个信号了解问题状况并采取相应的措施去解决问题。
八、线性充电与开关式充电
在任何情况下,只有外来电源形成的电压高于电池电压,电流才能进入电池实现充电目标,所以几乎所有的充电用电源适配器输出电压都是高于电池最高电压的。但我们通常并不能将外接电源直接接入电池进行充电,这将导致电流不可控的结果,这也是为什么会有充电管理器件的存在的原因。
要在外接电源和电池之间构成恒流、恒压控制电路,最简单的做法是采用线性恒流、恒压源,这也是为什么线性充电管理器件使用得比较多的原因。将最简单的RT9526的应用电路图和内部电路框图截取下来看看(见下图),我们就能看到它的实际使用状况:
图二十二、由RT9526应用电路图和内部框图示范的线性充电电路实现方法
很显然,IC内部的从VIN到BATT端之间的MOSFET构成了外部电源和电池之间的调整元件(这和线性稳压器非常相似),它在完成调整任务的同时,也是一个很讨人厌的热源地——VIN和电池电压之间的电压差乘上流过它的充电电流形成的功耗在这里转化为热量,这是一种浪费,对某些系统来说可能还是个灾难,这在电池电压偏低、电源电压偏高时尤为严重。为了解决这一问题,最简单的做法是降低输入电压(让输入电压略高于电池电压是最好的做法)、降低充电电流,但降低输入电压可能造成电池充不满的问题(这个做法还常常无法实施,或许有一天会出现自动调整的电源来满足这一需要),降低充电电流则会造成充电时间过长的问题。
解决效率和热问题的另一种做法是弃用线性恒流、恒压源,改用开关型转换电路,前面提到过的RT9451就是采用了Buck架构的充电电路,这使得它的最大充电电流达到了4A这样的水平,而且它的最高输入电压可以达到12V,如果线性系统要在这样的条件下工作,其最大发热量将高达27W以上,一般的系统根本无法承受。
Richtek的另外一个充电产品系列——RT9531/RT9535/RT9538——也是采用了Buck架构的充电电路,但其可工作输入电压则更高,为28V,可以为多节锂离子电池串联的电池组进行充电,也可以和其它任何种类的可充电电池配合工作。
采用开关型充电电路的最大好处是提高了效率,因为它将原来采用线性充电电路时浪费了的能量充分利用了起来。假设我们以USB500模式对输入电流进行设限,输入电压仍是5V,电池电压是3.3V,若以线性方式进行充电,则充电电流最大就是500mA,此时的输入功率是2.5W,输出功率是1.65W,此时有0.85W功率被浪费掉了,而且造成了热问题。如果改用开关型充电电路,假设其转换效率为95%,则输出功率可达2.5Wx95%=2.375W,充电电流就可以达到2.375W/3.3V ≈ 0.72A,这意味着在同样的输入电流限制下,充电速度加快了,而且发热量极小,只有0.125W。
下面这幅图是对同一个电池分别用线性充电器和开关型充电器在USB500电流限制模式下进行充电所得的充电电流和充电时间的比较图,从中可以看到,将电池充电到恒压充电电流为100mA,线性方式用了14000+秒,开关方式只用了12500秒。
图二十三、输入电流受限条件下线性充电方式和开关充电方式的对比
从此图中我们可以看到,在这种输入电流恒定的模式下,线性充电方式的充电电流是恒定的,而开关充电方式的充电电流是不恒定的,不恒定的原因有两个:1,充电电流没有达到设定的充电电流;2,输入电流恒定意味着输入功率恒定,在转换效率不变的情况下,输出功率也是恒定的,随着输出电压的提高,输出电流就下降了。与线性充电电路中由单只MOSFET就可以构成调整电路不同,开关型充电电路的构成要复杂得多,它的基本电路如下图所示:
图二十四、Buck模式开关充电电路拓扑
实际上,它就是一个具有恒流、恒压输出功能的Buck型降压电路。由于同步Buck电路的电路主体部分是可逆的,所以,只要对控制电路部分进行一些改造,它就可以构成Boost电路,只不过这个Boost电路能够实现的是将电池电压提升以后输出到Vin端,这就可以反向为外部设备供电,而这恰好是USB-OTG应用所需要的,所以,具有Buck充电方式的RT9450A和RT9451都被设计成了这样的形式。
九、对电源适配器的检测和适应
早期的充电管理器件是不关心给自己供电的电源适配器是否有问题的,只要输入电压超过自己的POR(Power ON Reset,上电复位)电压,器件就会进入工作状态并开始按照设定的充电策略为电池进行充电,这时候唯一要保证的是输入电压不要超过IC的耐压。
由于过高的电压在经过线性电路为电池充电时会有热的问题存在,过高的电压进入系统时可能对后续电路造成危害,所以过压保护电路最先进入充电IC的设计中。
有时候电源适配器的输出功率不足,较大的负载电流会造成其输出电压下降,而只要输入电压高于电池电压,线性充电电路就能将电流送入电池,如果压差不足,电流就会自动减小,这个过程中就会出现自动平衡的状态,于是乎将IC的POR电压降低就成了一个自然的选择。
下面将以概念解释的方式对一些新方法进行介绍,并把相应的产品实例介绍给你,以便你可以通过阅读规格书对相关技术的应用有更多的了解。
AICR
AICR是Active Input Current Regulation的缩写,翻译成中文可以这样说:主动的输入电流调整。一般的充电管理都是关心充电电流,对输入电流是不太关心的,因为对于线性充电系统来讲,充电电流基本上就等于输入电流,多出来的部分就是器件自身的消耗,相对来说那部分是很少的。但对具有路径管理功能的充电器件和采用开关方式工作的充电器件来说,情况就完全不同了,输入电流和充电电流常常是不相等的,这时候关心输入电流就是有必要的了。我们前面提到的对USB规范的符合时提到的USB100模式和USB500模式就是这样的状况,对此有兴趣的读者可以从上文中提到的相关产品中去进一步了解。
MIVR
MIVR是Minimum Input Voltage Regulation的缩写,它的中译文可以是:最低输入电压调整。由于任何实际电压源的电流供应能力都是有限的,当它们不能满足负载的电流需求时,其电压将下降。电压的下降可能带来这样的一些后果:输出功率下降(不是所有电源都如此);供电源发生UVP(电压过低保护);供电源崩溃或反复启动;低于负载的最低工作电压,负载不能正常工作。这些状况在USB供电时可能表现得最严重,主机可能因此而死机,这可是有可能带来灾难性后果的。
MIVR的作用就是确保输入电压不会低于最低值,以此确保可能的灾难不会出现。由于电压的降低是由过大的电流消耗引起的,解决此问题的办法当然是降低电流了。RT9451就是这么做的,它可以将最低输入电压调整到4.2V至4.76V之间,此电压是可以设定的,步进间距是80mV。下图显示了RT9451在实现这种调整时的电流状况,可以看到由于供电能力不足,期望的输入电流不会得到满足,以便维持最低输入电压在设定的水平上。
图二十五、RT9451的最低输入电压调整示意图——输入电流因输入电压调整而受限
Bad Adapter Detection这当然就是适配器故障检测功能了,它用于检测适配器是否具有供电能力,这个操作仅在充电管理器件的输入电压上升阶段进行。当RT9451的VIN端检测到电压超过预设的VIN(MIN)时,IC内部在VIN端接入一个大约为30mA的恒流源并持续32ms的时间,如果此电流在此时间段内能够持续存在并且VIN端电压维持在VIN(MIN)之上,则认为此适配器具备供电能力,后续操作可以继续进行下去,否则就将IC的全部工作停下来并将内部的状态位置位,系统中的MCU可以借此状态位的信息做出相应的后续操作。当此问题存在时,RT9451将以2s为周期重复进行监测工作,直至问题被消除为止。截取自规格书的下图显示了检测方法和流程:
图二十六、RT9451的电源适配器故障检测方法和处理流程
十、状态指示
人机界面是我们人类和机器设备打交道时了解系统状况、操控设备的界面,这其中最基本的就是状态指示。对于锂离子电池来说,当进行充电池充电时,电源状态是否有异常?充电过程是否还在进行过程中?这些信息是设备使用者非常关心的内容。Richtek的每一款充电管理器件都提供了这样的信息输出,它们通常是用某些个端子的状态或是通过内部寄存器的数据状态来表达的,通过外接LED或是将状态信息读入系统的控制器中再通过其它方式表现出来,让使用者可以随时了解当前状况是怎样的以提高使用者的舒适程度。前文显示的应用电路图中出现的LED符号都是起这种作用的,要注意的是IC的信号输出端子,有一部分是比较单纯的两种状态输出——开或关、高或低,有一些是多态输出的,最典型的是具有第三种状态——高阻状态,请在设计时正确理解并好好加以利用。
十一、电池容量的测量及其解决方案
前一段中我们谈到了Richtek的每一款充电管理器件都提供了简单的状态指示信息以提高最终使用者的体验舒适程度,但那只是最低程度上的。只使用简单的状态信息,我们只能得到现在怎么样的信息,我们绝不可能由这些状态信息对未来的过程进行预测,例如我们无法预知还有多少时间才能将电池充满,也不知道现在电池的充满程度;我们更不能借助充电系统去了解电池放电过程中的电池状况,不知道在某种状态下电池还能使用多久。要解决这些问题,我们需要使用电池容量测量工具——Battery Gauge,Richtek的RT9420和RT9428就是为此而生的。由于RT9420和RT9428具有相同的内部结构,我们就以RT9428为例来进行说明。下图是RT9428的应用电路图:
图二十七、电池容量计RT9428的应用电路简图
在RT9428的规格书中,它被描述为“System-Side Fuel Gauging”,翻译成中文:“系统侧电池容量计”。这意味着RT9428在使用时不是被放在电池包里的,这与常用的笔记本电脑的电池容量计的使用方法不同,如果更换了一块电池,RT9428给出的电池容量信息是关于新电池的,这意味着它能及时感知到当前和它连接的电池的容量,因为它采用的是以电池电压为计算依据的电池容量测算方法。以一台手机为例,如果对它的电池放电过程进行测量,可以得到如下的电压和时间之间的关系曲线:
图二十八、某实物手机的电池放电过程电压曲线
与之对应,可以得到相应的电压和电池容量之间的关系曲线如下图所示:
图二十九、不同参数下计算得到的电池容量和实际容量之间的关系
其中的蓝色直线就是理想的电池容量曲线,上下两图之间的曲线是存在对应关系的。所以,只要测得电池电压,就可以对应的得到理想的电池容量数据。但很可惜,实际的电池充放电曲线总是不理想的,受电池内阻的影响,负载电流又在不断的变化,实际测量到的电池电压和实际的电池电压总是不一样的,所以不能直接从测量到的电压得到准确的电池容量信息,我们得到的电池容量信息可能落在上图所示的黄色和灰色曲线上去,也就是说误差太大了。我们的目标是要将数据尽可能地落到蓝色直线上,例如经过优化的数据如果落在红色曲线上,那么这个数据就是可以接受的,而这一目标的实现就有赖于我们对电池特性的深刻了解上。
为了实现上述的目标,需要选用RT9428作为电量测量元件的用户需要将与电池有关的测量数据提供给我们,或是将电池提供给我们由我们来提取相关的测量数据,让我们可以对这些数据进行仔细的分析计算以后得出一些特征值,再将这些特征值植入用户的系统驱动程序中,系统在工作时要实时地将温度数据和这些特征数据经过I2C总线提供给RT9428,RT9428再将这些数据和它持续获得的电池电压数据进行迭代运算以后计算出实际的电量信息,并将这些电量信息返回给系统使用。这种经过修正的数据能比较准确地反映电池的实际容量,下面几幅图是RT9428在不同的充放电模式下实际计算出来的电池容量和实际电池容量之间的关系图,你将看到这些误差的最大值是落在+/-3%以内的,这比友商的类似产品好很多。
图三十、不同充放电模式下计算得到的电池容量和实际容量之间的关系及其误差
目前,RT9428的相关产品已经完全成熟,以其IP为构成单位构建的高集成度产品已在国际大厂产品中得到大量使用,是完全值得信赖的产品。
十二、充电器件的测试模式
最后才想起这个话题,实在是因为测试模式不是充电IC本身的功能,在谈电池管理的时候想不到这上面去,但这却是充电管理器件在使用过程中必然会遇到的问题。
充电管理是按照电池的特性来进行的,串联连接模式下的负载是和电池并联连接的,如果电池不在系统中,充电管理器件就把负载当作电池来看待了。我们的问题是:负载特性能像电池特性吗?答案当然是否定的。所以,它们之间的相容性问题就出来了。这个问题会在什么时候呈现出来呢?产品生产过程中的测试阶段——通常情况下,这个时候系统中是不带电池的。
当这里提到的相容性问题出现的时候,负载要么不能进入正常的工作状态,要么断断续续地工作——反复重启,到底发生什么现象,完全取决于负载的特性和充电电流之间的复杂关系。这种状况有时可以通过在测试支架上加上一个大电容来模拟电池接入系统去解决,但有时可能根本无效,因为当负载在低电压下消耗的电流超出充电器件提供的预充电电流时,负载是永远不能得到一个可工作电压的。
这个问题的解决只能通过设置一个充电管理器件的测试模式来完成:在测试模式下,充电管理器件表现为一个具有无限电流供应能力的电压源,这样就可以让负载进入正常的工作状态。下图截取自我们的AE制作的一份产品介绍文件:
图三十一、RT9532的测试模式
RT9532是一款线性单节锂离子电池充电器件,它可以通过在EN/SET端施加脉冲信号来改变其工作模式,这些工作模式中包含了USB规范需要的USB100和USB500模式(最多从USB输入获取100mA电流或500mA电流)、支持电源适配器供电的ISET模式(最大充电电流由ISET端电阻确定,其值为1.2A)和工厂模式,这工厂模式也就是我们在这里谈论的测试模式,在此模式下,不需要装入电池,系统即可正常工作,器件可以提供最多2.3A的电流供系统使用而不会进入充电截至状态。
顺便提一下,像RT9532这样采用在一个端子上输入一系列脉冲来改变芯片的工作状态的做法是比较简单的降低器件成本的做法,与采用多个端子的组合相比,其引脚数较少(有时增加一个引脚就意味着封装的改变);与采用I2C总线之类的接口相比,IC内部的电路会简单许多(用简单的计数器就可以改变芯片的工作状态了)。如果说在4个模式间进行切换,这一做法的优势还不明显,更多的模式下这一优势就凸现出来了,具体案例请参看下图,它是关于另一个型号RT9536的,我们可以把这种做法叫做以时间换空间。
RT9536 Linear Single Cell Li-ion Battery Charger
图三十二、用时间换空间——RT9536通过单线脉冲改变工作模式和充电电压的方法