2024年9月23日发(作者:寿千秋)
1.笔记本电池内部构造与工作原理
笔记本电池工作原理
一般笔记本电电池电芯使用的是10.8V或11.1V,而单个电池无法满足要求因此笔记本
电脑电池都是采用多个单体电池串联和并联组成的电池组。至于大家常常在电池的外壳看到
的3300mAh、4400mAh等指的是电池的容量,它是指示该电流对电池进行放电时可使用一小
时,例如:4400mAh的锂电池可以以4400mA的电流放电一小时。所以该数值越大越好证明它
能工作的时间越长。
充放电控制和保护电路顾名思义是负责电池的充放电控制和保护的,它工作的原理是这
样的,因为锂电池在充电过程中到很接近充满时电压会略微下降一点,所以控制电路检测到
这种情况时就认为电池已经充满了,保护电路也工作切断电源以防止过充;放电时电池的电
压是基本稳定不变的,只有在电池所剩的电力很少时才会突然下降,当控制电路检测到这种
情况就认为电池的电力用完了并通知保护电路切断电源防止因过度放电使电池寿命缩短。
笔记本电池的内部结构
电池主要就是壳子+电路板+电芯,看起来最重要的部分是电芯,其实不然,最主要的
部分是电路,因为一个电池本身的使用过程,是记录在电路板中的。维修一个电池,如果只
是简单的更换电芯,那是没有用的,因为关于这个电池本身的好坏,一直都有记录在案。因
此如果大家如果有去打听电池维修,会发现一个解锁的词语,其实就是将电路板锁记载的有
关电池的信息重置,例如将充电次数、以及使用时间等重新设,加上全好电芯的搭配,就会
实现跟新电池一样的延续时间。这些是后面我们维修部分所要探讨的内容。
这是我们平时看到的笔记本电池完整外观
一般来说,电池的接缝都是通过粘合剂粘在一起的,因此我们很容易看到粘合的位置,
不过基本上这个接口位置,没有强力工具,基本是无法打开了。
拆解之后,大家可以看到,95%以上体积都是电芯,外加一块电路板
笔记本电池基本都是电池组
2.笔记本电池保护电路知识
现在的笔记本电池都是所谓智能(smart battery)的了,她能告诉电脑:我现在还剩余
多少容量,现在的电压是多少,电流是多少,按现在的放电速率我还能用多长时间,我是否
该充电了,充电应该用多大的电流、电压,充电是否充过头了,放电是否放过头了,温度是
否过高,等等。电池要提供这些所谓的智能信息,就要在电池中增加一个电路。这个电路通
常都使用现成的专用芯片,如最流行的BQ系列芯片:BQ2060A,BQ2083,BQ2085,BQ2040
等,这些芯片检测流入和流出电芯的电流,算出上面所谓的智能信息。
这个电路还要增加一个功能:保护功能。上面说了电路能检测出充电是否充过头了,放
电是否放过头了。既然知道充过头了,就要使充电电源充不到电芯上去;放电放过头了,就
要切断电芯对外放电。温度过高了,就要是电池停下来。这就是所谓的保护功能。
最后一个功能就是通讯,电池准备了这些信息,总要发送出去吧。所以通讯少不了。
按上所说,通常的电池其实主要是检测部分,能检测出来信息,保护功能实现自然简
单,无非是开关而已。
下面解释一下BQ2060检测出来信息的意思。
1. 静态信息:静态信息不是检测出来的,而是生产厂家自己写进去的,它一般写在24C01
中,BQ2060从24C01中读到它自己里面去。
Manufacture Date, Manufacture Name, Device Name, Device chemistry, Specification
Info, Design Voltage, Design Capacity, Remaining Capacity Alarm, Remaining Time
Alarm, Battery Mode。这些信息不言自明。
2.动态信息:动态信息中有些是检测出来的,有些是纯粹计算出来的,目的就是免去用户自
己计算了。
检测的:Voltage, Current, Temperature, Average Current, Remaining Capacity,
Full Charge Capacity, Battery Status。
计算的:Relative State Of Charge, Absolute State Of Charge, Run Time To Empty,
Average Time To Empty, Average Time To Full, Cycle Count.。信息Charging Voltage,
Charging Current 告诉充电器应该用多大的充电电流给它充电,在多大的电压处应该变成恒
压充电。AtRate, AtRateTimeToFull, AtRateTimeToEmpty, AtRateOK纯粹是帮用户计算信
息用的。
3.每个厂家的特定信息:标准Smart Battery Data Specfication之外的一些信息。这些信
息只有5项,不同厂家不一样,对于BQ2060就是VCELL1-4和Pack Configureation。对于
BQ2085,Pack Configureation的意义就和BQ2060不大一样。
ctureAccess,标准Smart Battery Data Specfication之外,厂家特定的操作,
如BQ2060的Seal, 读写EEPROM,Calibration等,都是通过它来完成的。
具体每一项信息的意义论坛中有人翻译了BQ2060的DATASHEET,在此不在重复。
BQ2060是如何检测那些智能信息的呢?简单地说,将是将一个电阻串接到电芯上,检测
流过这个电阻上的电流的大小就可以知道充了多少电,放了多少电。充电充的是电荷、放电
放的也是电荷,所以检测电流就知道充了多少电,放了多少电。至于电压、温度的检测更简
单了,用的A/D转换就可以,BQ2060中就是这样做的。
BQ2060检测到信息后就要作出一些判断,如温度是否高了,我是否该充电了,充电应该
用多大的电流、电压,充电是否充过头了,放电是否放过头了。电池无论如何也不知道多高
温度属于高了,多大电流是过流了,所以,人为地先设定个标准,这样电池就可以判断了。
这些标准生产厂家就放在24C01中,BQ2083,BQ2085放在它们自身的DATA FLASH中了。而
BQ2050则是死设定,厂家智能用外围的电阻,电容等硬件设定,它不用EEPROM或DATA
FLASH,比较死板。(其实BQ2050的功能简单多了,好多判断都没有。)
检测到异常情况,BQ2060就可简单地向外发个出发电平,以关断充电或放电开关,这样
保护功能就简单地实现了。
实际上,大都用BQ2060的电池没有使用BQ2060提供的保护功能,而是另外加了芯片做
保护,如M1414。另加的芯片和BQ2060自然有些功能是重复的,但没办法,谁让另加芯片了
呢。
下面就是通讯方式问题,SMBUS其实就是I2C的子集,主要是时序上比I2C要求严格
些。若你不写程序,简单地将SMBUS混同I2C就可以了。
当你看懂了BQ2060,不要以为所有的电量检测芯片都是如此,BQ2060是与标准Smart
Battery Data Specfication兼容的芯片,即所谓的SBS V1.1-Campliant,其实BQ2050就不
兼容这个标准。BQ2050提供的信息少了不少,通讯方式也不同(DQ)。COMPAQ Evo 系列电
脑的电池就是采用BQ2050H的,所以要增加PIC来增加一些功能。(当然里面还有充电功
能。)
还有电池检测(老化)问题。检测设备有检测电芯级的,有检测电池板级的。经过前者
检测出来的电池即使是合格的,但实际上电池也可能是不合格的,因为电板可能有问题而没
有被检测出来。而经过后者检测出合格的电池,才是真正合格的电池。
在此解释一下Capacity Relearn。
其实电池的relearn-cycle或Conditioning-cycle都是充放电过程,Calibration就是
充放电过程。这个过程如下:
1.先将电池充满。
2.放电放完(这个过程中不能有充电)
3.再充满电。
Capacity Relearn 就是重新确定FCC。因为在过程1的结束,BQ2060将DCR`复位为0,
在过程2中DCR从0开始不断增加,当放电结束时,用DCR更新FCC。在BQ2060的
DATASHEEET中将这个过程说得比较难懂,而BQ2050中说得比较清楚。
测量电池电量,必须要电池工作。如何知道电池最多能充多少电量FCC?假设电池已经
充满了,我们让电池以固定大小电流放电,这样知道放电电流的大小和放电时间的长短,就
可以算出电池的容量了。比如放电电流大小为2200mA,放了2小时的电,则电池的容量就为
4400mAh。BQ2060A中利用一个叫DCR的寄存器,当电池充满时,其值被复位为0,随着放电
的进行,它不断计数,每个计数相当于一定的电量,这样,知道DCR的数值,就知道电量
了。电池的放电放到不能再放,并不是真的让电池所有的电都放完,因为真的全部放完了,
电池也就报废了。一般14.8V电池放到12V就不能再放了。电量检测芯片检测到12V就发出
保护信号,让电池供电线路断开,不能继续向外供电就是了。我们说的电池最大充电电量就
是这样测量出来的,即先将电池充满,再放电,放到不能再放为止所测得的电量。在这个放
电的过程中不能有充电,因为DCR只在放电过程中向上计数,充电过程中它不会向下计数
的。符合这样条件的放电过程叫做有效放电(a qualified discharge from nearly full to
a low battery level)。当电池经过一个有效放电得到的DCR值将被转换成电池最大充电电
量而被保存在EEPROM一个叫LMD的位置的;而非有效放电的DCR值是没有任何用处的。前面
12V的专业说法叫EDV0(BQ2060),其实放到EDV2时,DCR就不在计数了。电池最大充电电
量专业叫法是FCC—Fully Charged Capacity。(注意,这里开始涉及到了一些参数了,如
EDV0、EDV2等,它们是EEPROM中参数的一部分,其实EEPROM中参数就是这样一点一点来
的,没有什么难的。)
如何知道电池还剩余多少电量呢RM?假设一块电池经过上面的放电已经放完了,此时开
始充电。这样就可以从0开始计数了,这个寄存器叫RemainningCapacity(RM),它不断计
数,自然就知道充了多少电。如果放电,这个寄存器就向下减,所以电池剩余电量的测量问
题就解决了。充电充到什么时候呢?比如上面14.8V电池,大都充到16.8V时,充电器的电
压就不能再升了,虽然电压不能再升了,但仍可以以这个电压给电池继续充电,不是说电压
不能升就充不进去电了,还是有电流的嘛。随着电池越充越饱,电流也越来越小,不过不可
能小到0的,小到0不知要用多长时间呢,大概也不可能小到0的。(所以电池没有充饱的,
只有充得更饱的。)于是人为地设定一个很小的电流值,一旦电流小到这个值时,就认为充电
充满了。充电时,RM向上长,放电时,RM向下减,这样,剩余电量就知道了。上面的16.8V
的专业说法叫ChargingVoltage,人为地设定的一个很小的电流值叫Current Taper
Threshold(BQ2060)。(注意,这里又涉及到了一些参数了,如ChargingVoltage、Current
Taper Threshold等,它们是EEPROM中参数的一部分,其实EEPROM中参数就是这样一点一
点来的,没有什么难的。)
其实RM计数的电量时常不准确。举个例子:刚出厂的电池,其FCC是人为设定的一个
值,即LMD,假设电池实际容量为3000mAh,而厂家将LMD设置为4000mAh,此时充电,充满
时,RM应该为3000mAh,但电池电量检测芯片多将电量从3000mAh人为地调整为4000mAh。
当然这是其实误差,经过校准可以消除,即所谓的Calibrate。即使校准了,以后也会再出
现不准的情况,照样可以再校准,使RM回归到准确的值。
从上面可以看出Calibrate的过程步骤:
这个过程如下:
1.先将电池充满。它保证DCR的初始值回到0。
2.放电放完(这个过程中不能有充电)。它保证在有效放电结束时得到正确的最大充电电量
FCC。
3.再充电。很多笔记本电脑只显示电量的百分比(RM/FCC),这时显示的百分比才有意义。
要注意即使是100%,也不说明电池的电量就多,因为FCC可能小呀。
再说说补偿Compensation,说是补偿Compensation,不如说是Correction。因为测量
不能是完全线性的,所以有EDV Capacity Correction。还有自放电是测不出来的,人为地
估计一个值,这个值要算进去,所以有light discharge compensation。
一、Ti 王者至尊
提到笔记本电池管理芯片,首推其霸主Ti,德州仪器。Ti占有全球市场超过80%以上的
份额,是绝对的至尊老大,无人能撼!其典型的应用于笔记本电池的芯片有BQ2040 2060
208X 20Z80 等等。因为Ti并购了Benchmarq 公司,所以芯片名称为BQ打头。BQ的芯片在
某种意义上讲相当于这个市场的一种规范,从功能,性能,甚至于应用。大家可以发现,你
会在其他公司的芯片上发现到Ti芯片的影子,甚至是Utility的设置。自动或者被动的向
Ti靠近,或者看齐已经成为了一种习惯,也是一种必然。对于笔记本电池来讲,其基于安全
性的考量要远远超过成本的考量,所以成熟的产品会长期的使用下来。只有在稳定,成熟的
前提下才可能会去考虑成本。
2040
BQ2040采用16pin SOIC Narrow封装,只具有gas gauge的功能,支持镍镉,镍氢,锂
离子电池。只支持SBS1.0协议,只可以驱动4个LED。需要外附加一个eeprom来储存芯片
工作所需要用到的参数。2040没有Blancing的功能,另外一个bq2040没有通用GPIO口可
以用来检测电池或者电芯的温度,只是芯片内部有一个sensor用来采集温度。BQ2040同时
还无法测量每一个cell电压的功能。当然bq2040可以检测pack的电压,采用PB pin。因
为2040的耐压限制,Vsb电压需要低于Vcc的电压,在电路结构上,为了保证电压检测的精
度,需要采用2个高精度的1%的电阻来分压,当然需要根据电芯的串联数目来修改PB pin
这边分压电阻的阻值。在检测电流方面,没有采用如同现在大部分芯片采用的结构一样,采
用2个专用的pin来检测电流采样电阻2端的电压,而是只采用一个SR pin 与VSS来采
集。因此可能会受到的干扰更大,精度会有影响。依据于一些网络收集的信息,2040采集电
压是11bit ADC,采集电流是用12bit的VFC。bq2040监测电压与电流无法达到更高的精
度,同时在校准电流的时候会经历漫长的时间。bq2040需要搭配另外一个保护芯片,通常为
1414和8254。1414 和8254经过长期的使用,足以可说明其具有极高的稳定性,但是一些弊
端也明显。比如OV UV的保护点,以及OV UV OC SC的延迟时间不可灵活设置,UV保护点偏
低,还有OC,SC的不稳定性。调节OS SC的大小,需要采用其他的方法来实现。另外在EDV
补偿方面,只有EDVF EDV1。不可以动态调整。
不可否认bq2040在相当长一段时期内是一个非常有代表性的芯片,他具备了一个gas
gauge芯片的基础模型。同时也正是因为1414 和8254的成功,bq2040甚至一直延续到现在
仍然在批量出货。
二:BQ2060
bq2060采用28pin 的ssop封装,相对于bq2040比较,增加了12个pin。首先增加了
对pack内单cell 电压的检测,提供了可以对pack温度的检测。同时为了减少功耗,采用
cvon Pin来控制一个mos来分配检测的时间,不检测的时候,就暂时关段检测通道(大概可
以减少30uA左右的功耗)。增加了HDQ通讯,LED显示方面支持4或者5LED显示。bq2060
对电流,电压,温度的检测采用15bit的ADC(bq2060好象只有1个ADC),检测电压方
面,因为bq2060芯片本身耐压得限制(最大6v),采用电阻分压的方法。2060做了规定,
cell3,cell4 分压比例为16:1,cell1 cell2 分压比例为8:1。精确的分压依赖于高精度
的电阻(1%),同时698K与1.5兆的电阻叶有效的限制了浪涌电流,很好的保护了IC。需
要注意的,cell3和cell4的测量最大电压20v,cell2,cell1测量最大电压为10v,但是这
并不是2060ICpin的最大耐压。bq2060在电压检测精度方面不会很高,尤其是对于cell3和
cell4电压的检测。这个主要源于分压电阻的精度和电压的检测方式。VCELL4=Vn4-Vn3
VCELL3=Vn3-Vn2 VCELL2=Vn2-Vn1 VCELL1=Vn1-Vsr 我们可以发现,当测量vcell4的时候,
因为分压电阻的精度而带来的误差将会达到最大化。bq2060检测电流方面,通过SR1 SR2这
2个PIN来检测sense resistor 两端的电压。与2040最大的区别就是将这2个pin 独立了
出来,同时在外围电路增加了RC滤波电路。在电流检测精度方面,校准后,误差很小,基本
上在5-10个mA以内。检测电流部分,需要注意采样电阻的选择,一般应该选择10-
20mohm。阻值太大,检测分辨率会增加,但是自身功耗会增加,阻值太小则检测电流的精度
会下降。另外注意对此电阻的温漂特性的关注,当然越小越好。在layout方面,这里至关重
要,2条电流检测线,尽量平行,等长,最好via的数目都保持一致。 温度检测方面,
bq2060采用了K氏温度单位,需要注意单位的换算。需要提及的Thermistor一定要用胶紧
紧贴在cell上。因为容量的补偿将会非常依赖于所测得的温度。提到容量的补偿,这个其实
就是整个所谓GAS GAUGE真正核心的地方。不同温度,放电电流,终止电压,不同老化程度
的cell,所得到的补偿是不一样的。bq2060在2040的基础上作了修正,EDV也更名叫做
CEDV,实现动态补偿。所谓动态补偿与固定补偿的区别,在于动态补偿可以当时根据放电电
流,温度,内阻,老化因素等的参数来调整EDV2,EDV1,EDV0的数值,而EDV2的大小会关
系到FCC的计算。而计算EDV2,1,0是通过一个函数式,需要通过对cell做实验,然后利
用数学工具Mathcad计算出来。所做的实验主要是cell在高温,常温,低温3种温度下进行
轻载和重载放电实验,然后通过Ti 提供的Utility EV2200-60将SBS寄存器的数据Log下
来。通常在低温的时候,RSOC会跳变比较厉害,比如会突然从18%jump到7%,无法非常准确
的将电池真实的RSOC反映出来。RSOC会在full charge的时候,根据放电的电流,以及自
放电比率等下降,但是到放电到末期,当达到EDV2设定的电压,会被强行拉下来。我想这也
许就是这种容量修正方法本身的局限性。但是不可否认,这种方法的高明之处。其实有的时
候,浓缩的就是精华,Ti的这种看似简单的补偿方法,却也非常实用,Ti从来没有公开过自
己的这种算法,这种算法也许就是浓缩于多年的实验数据,外加一些聪慧人士的高度提炼。
在保护方面,bq2060于2040一样,需要依赖于其他的专用3/4串的保护芯片,比如1414和
8254等。Ti其实也有自己的保护芯片,只是很少见有人会采用到。但是高于2040的是,
bq2060在保护方面做了一些有益的尝试,采用cfc与dfc的Pin,来控制一个mosfet实现对
power mosfet的控制。但是源于bq2060电压精度不是很高的问题,以及安全性的考虑,
bq2060的保护功能那个只是定义为二级保护。一级保护仍然需要依赖于1414等芯片。
bq2060内部没有集成driver电路,所以在一份Ti的应用手册内,对cfc和dfc的应用电路
作了说明。但是,目前为止几乎没有在市面上见到有批量出货的产品会应用cfc 和dfc的功
能,只能说鸡肋而已。bq2060定义,当电池在低温或者低压的时候,进入prechage模式,
但是因为bq2060没有自己的driver电路,所以只可以发送信息到smart charger,依赖于
charger才可以完成precharge功能。bq2060同时还广泛应用到了一些after market 市
场。网上也能常常会看到bq2060+xxxx方案的讨论。到目前为止,bq2060已经在市场在风云
7-8年,在相当长的一段时间内是市场上绝对的生力军。bq2060就这样和1414,8254在很长
一段时间内同床共枕,休戚与共。但是事实上,Ti并不乐意眼睁睁看着1414 和8254与自己
一起分享这块蛋糕,他们也在一直努力向客户推广自己的保护芯片,但是收效甚微。终于,
Ti推出了自己208x系列,这是一种技术进步和市场经济共同作用的必然,也正是随着208x
的推出,告别了此前gas gauge ic 和保护ic独立工作的时代。在208x系列中,2个芯片互
为依赖,互相作用。Ti终于将这份蛋糕实行了垄断,同时实现了利益最大化。
用工具 ENEPCU 看到得电池信息 用的是BQ2060!
2024年9月23日发(作者:寿千秋)
1.笔记本电池内部构造与工作原理
笔记本电池工作原理
一般笔记本电电池电芯使用的是10.8V或11.1V,而单个电池无法满足要求因此笔记本
电脑电池都是采用多个单体电池串联和并联组成的电池组。至于大家常常在电池的外壳看到
的3300mAh、4400mAh等指的是电池的容量,它是指示该电流对电池进行放电时可使用一小
时,例如:4400mAh的锂电池可以以4400mA的电流放电一小时。所以该数值越大越好证明它
能工作的时间越长。
充放电控制和保护电路顾名思义是负责电池的充放电控制和保护的,它工作的原理是这
样的,因为锂电池在充电过程中到很接近充满时电压会略微下降一点,所以控制电路检测到
这种情况时就认为电池已经充满了,保护电路也工作切断电源以防止过充;放电时电池的电
压是基本稳定不变的,只有在电池所剩的电力很少时才会突然下降,当控制电路检测到这种
情况就认为电池的电力用完了并通知保护电路切断电源防止因过度放电使电池寿命缩短。
笔记本电池的内部结构
电池主要就是壳子+电路板+电芯,看起来最重要的部分是电芯,其实不然,最主要的
部分是电路,因为一个电池本身的使用过程,是记录在电路板中的。维修一个电池,如果只
是简单的更换电芯,那是没有用的,因为关于这个电池本身的好坏,一直都有记录在案。因
此如果大家如果有去打听电池维修,会发现一个解锁的词语,其实就是将电路板锁记载的有
关电池的信息重置,例如将充电次数、以及使用时间等重新设,加上全好电芯的搭配,就会
实现跟新电池一样的延续时间。这些是后面我们维修部分所要探讨的内容。
这是我们平时看到的笔记本电池完整外观
一般来说,电池的接缝都是通过粘合剂粘在一起的,因此我们很容易看到粘合的位置,
不过基本上这个接口位置,没有强力工具,基本是无法打开了。
拆解之后,大家可以看到,95%以上体积都是电芯,外加一块电路板
笔记本电池基本都是电池组
2.笔记本电池保护电路知识
现在的笔记本电池都是所谓智能(smart battery)的了,她能告诉电脑:我现在还剩余
多少容量,现在的电压是多少,电流是多少,按现在的放电速率我还能用多长时间,我是否
该充电了,充电应该用多大的电流、电压,充电是否充过头了,放电是否放过头了,温度是
否过高,等等。电池要提供这些所谓的智能信息,就要在电池中增加一个电路。这个电路通
常都使用现成的专用芯片,如最流行的BQ系列芯片:BQ2060A,BQ2083,BQ2085,BQ2040
等,这些芯片检测流入和流出电芯的电流,算出上面所谓的智能信息。
这个电路还要增加一个功能:保护功能。上面说了电路能检测出充电是否充过头了,放
电是否放过头了。既然知道充过头了,就要使充电电源充不到电芯上去;放电放过头了,就
要切断电芯对外放电。温度过高了,就要是电池停下来。这就是所谓的保护功能。
最后一个功能就是通讯,电池准备了这些信息,总要发送出去吧。所以通讯少不了。
按上所说,通常的电池其实主要是检测部分,能检测出来信息,保护功能实现自然简
单,无非是开关而已。
下面解释一下BQ2060检测出来信息的意思。
1. 静态信息:静态信息不是检测出来的,而是生产厂家自己写进去的,它一般写在24C01
中,BQ2060从24C01中读到它自己里面去。
Manufacture Date, Manufacture Name, Device Name, Device chemistry, Specification
Info, Design Voltage, Design Capacity, Remaining Capacity Alarm, Remaining Time
Alarm, Battery Mode。这些信息不言自明。
2.动态信息:动态信息中有些是检测出来的,有些是纯粹计算出来的,目的就是免去用户自
己计算了。
检测的:Voltage, Current, Temperature, Average Current, Remaining Capacity,
Full Charge Capacity, Battery Status。
计算的:Relative State Of Charge, Absolute State Of Charge, Run Time To Empty,
Average Time To Empty, Average Time To Full, Cycle Count.。信息Charging Voltage,
Charging Current 告诉充电器应该用多大的充电电流给它充电,在多大的电压处应该变成恒
压充电。AtRate, AtRateTimeToFull, AtRateTimeToEmpty, AtRateOK纯粹是帮用户计算信
息用的。
3.每个厂家的特定信息:标准Smart Battery Data Specfication之外的一些信息。这些信
息只有5项,不同厂家不一样,对于BQ2060就是VCELL1-4和Pack Configureation。对于
BQ2085,Pack Configureation的意义就和BQ2060不大一样。
ctureAccess,标准Smart Battery Data Specfication之外,厂家特定的操作,
如BQ2060的Seal, 读写EEPROM,Calibration等,都是通过它来完成的。
具体每一项信息的意义论坛中有人翻译了BQ2060的DATASHEET,在此不在重复。
BQ2060是如何检测那些智能信息的呢?简单地说,将是将一个电阻串接到电芯上,检测
流过这个电阻上的电流的大小就可以知道充了多少电,放了多少电。充电充的是电荷、放电
放的也是电荷,所以检测电流就知道充了多少电,放了多少电。至于电压、温度的检测更简
单了,用的A/D转换就可以,BQ2060中就是这样做的。
BQ2060检测到信息后就要作出一些判断,如温度是否高了,我是否该充电了,充电应该
用多大的电流、电压,充电是否充过头了,放电是否放过头了。电池无论如何也不知道多高
温度属于高了,多大电流是过流了,所以,人为地先设定个标准,这样电池就可以判断了。
这些标准生产厂家就放在24C01中,BQ2083,BQ2085放在它们自身的DATA FLASH中了。而
BQ2050则是死设定,厂家智能用外围的电阻,电容等硬件设定,它不用EEPROM或DATA
FLASH,比较死板。(其实BQ2050的功能简单多了,好多判断都没有。)
检测到异常情况,BQ2060就可简单地向外发个出发电平,以关断充电或放电开关,这样
保护功能就简单地实现了。
实际上,大都用BQ2060的电池没有使用BQ2060提供的保护功能,而是另外加了芯片做
保护,如M1414。另加的芯片和BQ2060自然有些功能是重复的,但没办法,谁让另加芯片了
呢。
下面就是通讯方式问题,SMBUS其实就是I2C的子集,主要是时序上比I2C要求严格
些。若你不写程序,简单地将SMBUS混同I2C就可以了。
当你看懂了BQ2060,不要以为所有的电量检测芯片都是如此,BQ2060是与标准Smart
Battery Data Specfication兼容的芯片,即所谓的SBS V1.1-Campliant,其实BQ2050就不
兼容这个标准。BQ2050提供的信息少了不少,通讯方式也不同(DQ)。COMPAQ Evo 系列电
脑的电池就是采用BQ2050H的,所以要增加PIC来增加一些功能。(当然里面还有充电功
能。)
还有电池检测(老化)问题。检测设备有检测电芯级的,有检测电池板级的。经过前者
检测出来的电池即使是合格的,但实际上电池也可能是不合格的,因为电板可能有问题而没
有被检测出来。而经过后者检测出合格的电池,才是真正合格的电池。
在此解释一下Capacity Relearn。
其实电池的relearn-cycle或Conditioning-cycle都是充放电过程,Calibration就是
充放电过程。这个过程如下:
1.先将电池充满。
2.放电放完(这个过程中不能有充电)
3.再充满电。
Capacity Relearn 就是重新确定FCC。因为在过程1的结束,BQ2060将DCR`复位为0,
在过程2中DCR从0开始不断增加,当放电结束时,用DCR更新FCC。在BQ2060的
DATASHEEET中将这个过程说得比较难懂,而BQ2050中说得比较清楚。
测量电池电量,必须要电池工作。如何知道电池最多能充多少电量FCC?假设电池已经
充满了,我们让电池以固定大小电流放电,这样知道放电电流的大小和放电时间的长短,就
可以算出电池的容量了。比如放电电流大小为2200mA,放了2小时的电,则电池的容量就为
4400mAh。BQ2060A中利用一个叫DCR的寄存器,当电池充满时,其值被复位为0,随着放电
的进行,它不断计数,每个计数相当于一定的电量,这样,知道DCR的数值,就知道电量
了。电池的放电放到不能再放,并不是真的让电池所有的电都放完,因为真的全部放完了,
电池也就报废了。一般14.8V电池放到12V就不能再放了。电量检测芯片检测到12V就发出
保护信号,让电池供电线路断开,不能继续向外供电就是了。我们说的电池最大充电电量就
是这样测量出来的,即先将电池充满,再放电,放到不能再放为止所测得的电量。在这个放
电的过程中不能有充电,因为DCR只在放电过程中向上计数,充电过程中它不会向下计数
的。符合这样条件的放电过程叫做有效放电(a qualified discharge from nearly full to
a low battery level)。当电池经过一个有效放电得到的DCR值将被转换成电池最大充电电
量而被保存在EEPROM一个叫LMD的位置的;而非有效放电的DCR值是没有任何用处的。前面
12V的专业说法叫EDV0(BQ2060),其实放到EDV2时,DCR就不在计数了。电池最大充电电
量专业叫法是FCC—Fully Charged Capacity。(注意,这里开始涉及到了一些参数了,如
EDV0、EDV2等,它们是EEPROM中参数的一部分,其实EEPROM中参数就是这样一点一点来
的,没有什么难的。)
如何知道电池还剩余多少电量呢RM?假设一块电池经过上面的放电已经放完了,此时开
始充电。这样就可以从0开始计数了,这个寄存器叫RemainningCapacity(RM),它不断计
数,自然就知道充了多少电。如果放电,这个寄存器就向下减,所以电池剩余电量的测量问
题就解决了。充电充到什么时候呢?比如上面14.8V电池,大都充到16.8V时,充电器的电
压就不能再升了,虽然电压不能再升了,但仍可以以这个电压给电池继续充电,不是说电压
不能升就充不进去电了,还是有电流的嘛。随着电池越充越饱,电流也越来越小,不过不可
能小到0的,小到0不知要用多长时间呢,大概也不可能小到0的。(所以电池没有充饱的,
只有充得更饱的。)于是人为地设定一个很小的电流值,一旦电流小到这个值时,就认为充电
充满了。充电时,RM向上长,放电时,RM向下减,这样,剩余电量就知道了。上面的16.8V
的专业说法叫ChargingVoltage,人为地设定的一个很小的电流值叫Current Taper
Threshold(BQ2060)。(注意,这里又涉及到了一些参数了,如ChargingVoltage、Current
Taper Threshold等,它们是EEPROM中参数的一部分,其实EEPROM中参数就是这样一点一
点来的,没有什么难的。)
其实RM计数的电量时常不准确。举个例子:刚出厂的电池,其FCC是人为设定的一个
值,即LMD,假设电池实际容量为3000mAh,而厂家将LMD设置为4000mAh,此时充电,充满
时,RM应该为3000mAh,但电池电量检测芯片多将电量从3000mAh人为地调整为4000mAh。
当然这是其实误差,经过校准可以消除,即所谓的Calibrate。即使校准了,以后也会再出
现不准的情况,照样可以再校准,使RM回归到准确的值。
从上面可以看出Calibrate的过程步骤:
这个过程如下:
1.先将电池充满。它保证DCR的初始值回到0。
2.放电放完(这个过程中不能有充电)。它保证在有效放电结束时得到正确的最大充电电量
FCC。
3.再充电。很多笔记本电脑只显示电量的百分比(RM/FCC),这时显示的百分比才有意义。
要注意即使是100%,也不说明电池的电量就多,因为FCC可能小呀。
再说说补偿Compensation,说是补偿Compensation,不如说是Correction。因为测量
不能是完全线性的,所以有EDV Capacity Correction。还有自放电是测不出来的,人为地
估计一个值,这个值要算进去,所以有light discharge compensation。
一、Ti 王者至尊
提到笔记本电池管理芯片,首推其霸主Ti,德州仪器。Ti占有全球市场超过80%以上的
份额,是绝对的至尊老大,无人能撼!其典型的应用于笔记本电池的芯片有BQ2040 2060
208X 20Z80 等等。因为Ti并购了Benchmarq 公司,所以芯片名称为BQ打头。BQ的芯片在
某种意义上讲相当于这个市场的一种规范,从功能,性能,甚至于应用。大家可以发现,你
会在其他公司的芯片上发现到Ti芯片的影子,甚至是Utility的设置。自动或者被动的向
Ti靠近,或者看齐已经成为了一种习惯,也是一种必然。对于笔记本电池来讲,其基于安全
性的考量要远远超过成本的考量,所以成熟的产品会长期的使用下来。只有在稳定,成熟的
前提下才可能会去考虑成本。
2040
BQ2040采用16pin SOIC Narrow封装,只具有gas gauge的功能,支持镍镉,镍氢,锂
离子电池。只支持SBS1.0协议,只可以驱动4个LED。需要外附加一个eeprom来储存芯片
工作所需要用到的参数。2040没有Blancing的功能,另外一个bq2040没有通用GPIO口可
以用来检测电池或者电芯的温度,只是芯片内部有一个sensor用来采集温度。BQ2040同时
还无法测量每一个cell电压的功能。当然bq2040可以检测pack的电压,采用PB pin。因
为2040的耐压限制,Vsb电压需要低于Vcc的电压,在电路结构上,为了保证电压检测的精
度,需要采用2个高精度的1%的电阻来分压,当然需要根据电芯的串联数目来修改PB pin
这边分压电阻的阻值。在检测电流方面,没有采用如同现在大部分芯片采用的结构一样,采
用2个专用的pin来检测电流采样电阻2端的电压,而是只采用一个SR pin 与VSS来采
集。因此可能会受到的干扰更大,精度会有影响。依据于一些网络收集的信息,2040采集电
压是11bit ADC,采集电流是用12bit的VFC。bq2040监测电压与电流无法达到更高的精
度,同时在校准电流的时候会经历漫长的时间。bq2040需要搭配另外一个保护芯片,通常为
1414和8254。1414 和8254经过长期的使用,足以可说明其具有极高的稳定性,但是一些弊
端也明显。比如OV UV的保护点,以及OV UV OC SC的延迟时间不可灵活设置,UV保护点偏
低,还有OC,SC的不稳定性。调节OS SC的大小,需要采用其他的方法来实现。另外在EDV
补偿方面,只有EDVF EDV1。不可以动态调整。
不可否认bq2040在相当长一段时期内是一个非常有代表性的芯片,他具备了一个gas
gauge芯片的基础模型。同时也正是因为1414 和8254的成功,bq2040甚至一直延续到现在
仍然在批量出货。
二:BQ2060
bq2060采用28pin 的ssop封装,相对于bq2040比较,增加了12个pin。首先增加了
对pack内单cell 电压的检测,提供了可以对pack温度的检测。同时为了减少功耗,采用
cvon Pin来控制一个mos来分配检测的时间,不检测的时候,就暂时关段检测通道(大概可
以减少30uA左右的功耗)。增加了HDQ通讯,LED显示方面支持4或者5LED显示。bq2060
对电流,电压,温度的检测采用15bit的ADC(bq2060好象只有1个ADC),检测电压方
面,因为bq2060芯片本身耐压得限制(最大6v),采用电阻分压的方法。2060做了规定,
cell3,cell4 分压比例为16:1,cell1 cell2 分压比例为8:1。精确的分压依赖于高精度
的电阻(1%),同时698K与1.5兆的电阻叶有效的限制了浪涌电流,很好的保护了IC。需
要注意的,cell3和cell4的测量最大电压20v,cell2,cell1测量最大电压为10v,但是这
并不是2060ICpin的最大耐压。bq2060在电压检测精度方面不会很高,尤其是对于cell3和
cell4电压的检测。这个主要源于分压电阻的精度和电压的检测方式。VCELL4=Vn4-Vn3
VCELL3=Vn3-Vn2 VCELL2=Vn2-Vn1 VCELL1=Vn1-Vsr 我们可以发现,当测量vcell4的时候,
因为分压电阻的精度而带来的误差将会达到最大化。bq2060检测电流方面,通过SR1 SR2这
2个PIN来检测sense resistor 两端的电压。与2040最大的区别就是将这2个pin 独立了
出来,同时在外围电路增加了RC滤波电路。在电流检测精度方面,校准后,误差很小,基本
上在5-10个mA以内。检测电流部分,需要注意采样电阻的选择,一般应该选择10-
20mohm。阻值太大,检测分辨率会增加,但是自身功耗会增加,阻值太小则检测电流的精度
会下降。另外注意对此电阻的温漂特性的关注,当然越小越好。在layout方面,这里至关重
要,2条电流检测线,尽量平行,等长,最好via的数目都保持一致。 温度检测方面,
bq2060采用了K氏温度单位,需要注意单位的换算。需要提及的Thermistor一定要用胶紧
紧贴在cell上。因为容量的补偿将会非常依赖于所测得的温度。提到容量的补偿,这个其实
就是整个所谓GAS GAUGE真正核心的地方。不同温度,放电电流,终止电压,不同老化程度
的cell,所得到的补偿是不一样的。bq2060在2040的基础上作了修正,EDV也更名叫做
CEDV,实现动态补偿。所谓动态补偿与固定补偿的区别,在于动态补偿可以当时根据放电电
流,温度,内阻,老化因素等的参数来调整EDV2,EDV1,EDV0的数值,而EDV2的大小会关
系到FCC的计算。而计算EDV2,1,0是通过一个函数式,需要通过对cell做实验,然后利
用数学工具Mathcad计算出来。所做的实验主要是cell在高温,常温,低温3种温度下进行
轻载和重载放电实验,然后通过Ti 提供的Utility EV2200-60将SBS寄存器的数据Log下
来。通常在低温的时候,RSOC会跳变比较厉害,比如会突然从18%jump到7%,无法非常准确
的将电池真实的RSOC反映出来。RSOC会在full charge的时候,根据放电的电流,以及自
放电比率等下降,但是到放电到末期,当达到EDV2设定的电压,会被强行拉下来。我想这也
许就是这种容量修正方法本身的局限性。但是不可否认,这种方法的高明之处。其实有的时
候,浓缩的就是精华,Ti的这种看似简单的补偿方法,却也非常实用,Ti从来没有公开过自
己的这种算法,这种算法也许就是浓缩于多年的实验数据,外加一些聪慧人士的高度提炼。
在保护方面,bq2060于2040一样,需要依赖于其他的专用3/4串的保护芯片,比如1414和
8254等。Ti其实也有自己的保护芯片,只是很少见有人会采用到。但是高于2040的是,
bq2060在保护方面做了一些有益的尝试,采用cfc与dfc的Pin,来控制一个mosfet实现对
power mosfet的控制。但是源于bq2060电压精度不是很高的问题,以及安全性的考虑,
bq2060的保护功能那个只是定义为二级保护。一级保护仍然需要依赖于1414等芯片。
bq2060内部没有集成driver电路,所以在一份Ti的应用手册内,对cfc和dfc的应用电路
作了说明。但是,目前为止几乎没有在市面上见到有批量出货的产品会应用cfc 和dfc的功
能,只能说鸡肋而已。bq2060定义,当电池在低温或者低压的时候,进入prechage模式,
但是因为bq2060没有自己的driver电路,所以只可以发送信息到smart charger,依赖于
charger才可以完成precharge功能。bq2060同时还广泛应用到了一些after market 市
场。网上也能常常会看到bq2060+xxxx方案的讨论。到目前为止,bq2060已经在市场在风云
7-8年,在相当长的一段时间内是市场上绝对的生力军。bq2060就这样和1414,8254在很长
一段时间内同床共枕,休戚与共。但是事实上,Ti并不乐意眼睁睁看着1414 和8254与自己
一起分享这块蛋糕,他们也在一直努力向客户推广自己的保护芯片,但是收效甚微。终于,
Ti推出了自己208x系列,这是一种技术进步和市场经济共同作用的必然,也正是随着208x
的推出,告别了此前gas gauge ic 和保护ic独立工作的时代。在208x系列中,2个芯片互
为依赖,互相作用。Ti终于将这份蛋糕实行了垄断,同时实现了利益最大化。
用工具 ENEPCU 看到得电池信息 用的是BQ2060!