要直接解釋BQ2060 EEPROM 的參數可能效果不好,所以還是先從"開始"說起.
在《筆記本電池通通通!!!》中說過:大部分電池中只有電量檢測和保護兩部分,如HP f4486、HP f4496、IBM T20、HP f2019、FUJITSU-SIEMENS BP-8050等等;有些電池將充電器也做進電池里面了,如COMPAQ N系列的電池多是如此.沒有充電器的那些電池,自然要在筆記本中加上充電器部分;而有充電器的電池,筆記本中電源管理部分就簡單多了,少了充電這個大頭.
從上面可以看出筆記本電源系統包括電量檢測部分、保護部分、充電部分,除此之外,還有系統管理部分.所謂的電池系統管理部分主要是多電池管理.一個筆記本可以帶幾個電池,這些電池卻公用一個地址,當然要是一個電池一個電池,也就沒什么要管理的了,可惜,事實上,筆記本中所有的電池都公用一個地址,這就出問題了:筆記本說,我不管你到底哪個電池給我供電,你只要有電,就請給我供電.多個電池一起工作肯定要管理,可是筆記本電腦卻不想管,于是就出來個電池系統管理部分.其實不光是筆記本電腦中如此,在數碼攝象機等便攜產品中都有這種情況.想知道詳細情況,可參看標準《Battery System Manager Specification》.
上面四個部分的工作不依賴筆記本電腦,我們使用筆記本電腦都知道,即使不開機,電池也照常充電,這時連BIOS都沒有運行呢.通常我們的筆記本電腦中有個軟件(如BatteryMon)可以測試筆記本電池的好壞,其實,筆記本電腦本身只是查詢電池,它并沒有測試的行動.這往往使剛入門者混淆,因為從根本上講,對用戶來說,最好是我打開一個軟件,就能從上面看到筆記本電池好壞的測試結果.
關于筆記本電池方面的標準有四個基本的:《System Management Bus Specification》、《Smart Battery Data Specification》、《Smart Battery Charger Specification》、《Battery System Manager Specification》.至于《Smart Battery Selector Specification》,它和《Battery System Manager Specification》差不多.這四個標準其實都體現在具體的產品中,建議入門者將它們和具體的產品結合起來看,如BQ2060A的Datasheet基本上就是前三個標準的集中體現,其實BQ系列的充電管理芯片的Datasheet就是后兩個標準的集中體現.
下面先解釋一下所謂的 Gas Gauge Operation.您要是初看資料,還挺費神的呢.其實說白了,原理很簡單.Gas Gauge Operation最主要的目的是測量電量(電池最多能充多少電量FCC和現在還剩余多少電量RM).從簡單開始,電池的電壓測量簡單吧.幾節電芯串聯在一起,不但可以簡單地測量總電壓,還可以簡單地測量出每節電芯的電壓.所以可以很簡單地知道電池是過壓了,還是欠壓了.溫度測量也很簡單,因為熱敏電阻的阻值隨溫度變化是有規律的,用個熱敏電阻就知道是否溫度高了,或者溫度低了.電流測量您覺得復雜嗎?話歸正題,Gas Gauge Operation主要是為電池的電量測量服務的.將一個很小的精密電阻和電池串聯在一起,只要電池工作,其上就有壓降,要壓降就知道壓降是正還是負,也就知道是充電還是放電了.如果對這個信號不斷積分,是不是就可以計算出電量了?不知道VFC是如何測量電量的,那就以后有時間在深究吧,不過可以想象一下,我們家里的電表不也是測量你用了多少電量的嗎?
所以,測量電池電量,必須要電池工作.如何知道電池最多能充多少電量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.建議初學者不要在這上面大花工夫.
最后說說充放電控制吧.
電池完全自己實現充放電的控制過程,我們的筆記本電腦決不參與充放電的控制過程.電池報告說電池快沒電了,電腦就提示用戶快沒電了,等沒有電時,電池自己就切斷供電了.充電充過了,電腦并不知道,電池自己檢測是否過充,過充了,電池自己切斷充電.
當然,控制的結果電池會向外批漏的,外界可以主動查詢結果,廠家也可以設置讓電池主動向外廣播控制結果.(這就是電池智能化的體現.這個控制結果就存放在BatteryStatus的寄存器中,其主要用處是被充電器使用,或者是電池系統管理使用.
現在來說說BQ2060 EEPROM參數的意義吧.
初學者對這個好象很感興趣,往往又云里霧里.其實它只不過是上面測量、補償、控制、顯示等過程所用的參數,因為這些參數不同的電池不一樣,電池檢測芯片廠家為不變應萬變,設置個EEPROM,讓電池生產廠家自己寫上.
下面以BQ2060 EEPROM 解釋一下其意義.
EEPROM中最簡單的幾項,它們是電池廠家參數,只是為了顯示而已.如Manufacture Date是電池生產日期,Manufacture Name是電池生產廠家的名字,Serial Number是電池的序列號,Device Name是設備名稱,Device Chemistry是電池中電芯的化學物質名稱,Specification Information是所謂智能電池的版本號信息,EEPROM Constants是EEPROM中開始或最后兩個字節的內容,它們是固定的,即0x3c7f和0xa55a,表示這是BQ2060的EEPROM,若是其他的值,BQ2060芯片就會認為這個EEPROM不對.Manufacture Data Length是生產數據的長度.生產數據就是EEPROM中的數據6個主要的數據:Control Mode,Digital filter,Self-Discharge Rate,Battery Low%,Near Full和EDV threshold,這六個數據是7個字節,所以Manufacture Data Length的值固定為7.一下就去掉8個項了,其實這些沒什么作用.
EEPROM中最最基本的參數只有兩項:Sense Resistor Value和Digital Filter.Sense Resistor Value其實就是BQ2060應用電路中和電池串聯的那個電阻的大小,看看BQ2060 Datasheet 中圖1,其中的Rs的大小就是這個Sense Resistor Value,因為不同的設計者使用不同的電阻Rs,所以要告訴BQ2060,這樣BQ2060就知道它的ADC和VFC的增益大小了,Gas Gauge Operation主要是要檢測其上的信號的,當然必須要知道其電阻的大小了.
Digital Filter,當電池不放電時,且SMBUS處于idle狀態時,BQ2060檢測到信號小于Digital Filter時,會進行自放電補償的,這個Digital Filter是生產廠家設定的,而以多大的值補償呢,有要廠家設置,即設置Light Discharge Current.當然廠家也可以選擇不進行補償,將EEPROM中的Control Mode的NDF設置為1,則BQ2060就不進行這種補償.補償的目的無非使RM和DCR的計數更準確些.
下面解釋充電控制參數.
ChargingVoltage和ChargingCurrent,智能電池都會主動告訴充電器應該用多高電壓ChargingVoltage和多大電流給電池充電ChargingCurrent,ChargingVoltage是廠家設定的,它是電池恒壓充電的值.ChargingCurrent是一個總稱,因為它可能有四種值:當電池說可以用大電流給我充電時,它告訴充電器ChargingCurrent的值為Fast Charging Current,當電池深度過放要求小電流預充電時,它告訴充電器ChargingCurrent的值為Pre-Charge Current.當大電流充電結束時它告訴充電器ChargingCurrent的值為Maintenance Charging Current,還有一個值是0.這4個值中的3個值存放在EEPROM中.
過壓控制參數Overvoltage Margin:當電池電壓大于ChargingVoltage + Overvoltage Margin時認為是過充.Overvoltage Margin大小在0~255mV之間.
過流控制參數OverCurrent Margin,當電池充電電流大于ChargingCurrent+ OverCurrent Margin時認為是過流.
溫度過高控制參數MaxT:當電池大電流充電時,若溫度高于這個溫度時,將暫停電池的大電流充電.
Li-Ion電池充電充滿的判斷參數Current Taper Qual Voltage和Current Taper Threshold:當電池的電壓大于ChargingVoltage - Current Taper Qual Voltage且充電電流小于Current Taper Threshold時,認為充電已經充滿了.
NimH電池充電充滿的判斷參數△T/△t和Hold-off Programming.
電池剩余電量RM調整參數Fast Charge Termination Percentage:當電池在充電結束時,RM的值可能小于FCC,此時BQ2060就將RM強行調整到FCC(這里是大致的說法,因為Fast Charge Termination Percentage通常為100%).當然廠家也可以設置不作調整.這個設置就是Pack Configuration中的CSYNC.
電池電量是否滿標志控制參數Fully_Charged bit Clear Threshold:當電池充滿時,電池會將Fully_Charged bit標志置為1,當電池電量回落Fully_Charged bit Clear Threshold以下時,就將Fully_Charged bit 標志清除.
循環周期數CycleCount和CycleCount Threshold:CycleCount記錄電池已經經過了多少個周期,每個周期代表CycleCount Threshold mAh的電量.BQ2060每次更新CycleCount,都將該值寫到EEPROM中的CycleCount去.
剩余時間Remaining Time Alarms和剩余容量報警Remaining Capacity Alarms:設定以當前的放電速率,還能運行多長時間,當還能運行的時間低于Remaining Time Alarms時發送報警信號;當電池的容量低于Remaining Capacity Alarms時發送報警信號.
Li-Ion電池保護參數,低壓CELL UnderVoltage和高壓CELL OverVoltage:當電池中有一節電芯的電壓高于CELL OverVoltage時,BQ2060給出標志VOV,當其中有一節電芯電壓低于CELL UnderVoltage時,BQ2060給出標志VUV.
再說說一些簡單的參數吧.
Pack Configuration:該參數8位,每一位一個意思.
DMODE:有些電池上帶有電量顯示燈,BQ2060提供這種功能,DMODE該位表示顯示的電量是絕對百分比還是相對百分比.假設電池廠家設計電池的容量為4400mAh(DC),實際電池的最大充電電量為3000mAh,而現在RM為2000mAh,則電量的百分比可有兩種:2000/4400和2000/3000.
SEAL:在BQ2060 datasheet中,表3列出了SMBUS命令,這里的命令個數不多.其實SMBUS命令個數可有256個.若SEAL為0,則這256個命令都可讀可寫,若為1,則只有表3中的命令可讀,而可些的就表中的那5個了.如果廠家將SEAL設置為1,則電池將無法UNSEAL,除非你將EEPROM硬連線去該這一位.廠家將SEAL設置為1,這樣用戶就不能讀寫EEPROM中的值了.(TI流后門.)
CSYNC:見上面的電池剩余電量RM調整參數.
CEDV:設置電池是否對EDV實行補償.建議初學者理解固定EDV0、EDV1和EDV2就行了.
VOR:設置電池是否進行mid range voltage校正.
CHEM:表示電芯化學物質.
LCC0和LCC1:表示電池中電芯節數.
操作模式Operating Mode:
這個參數中有6位有意義.
NDF:見上面的Digital Filter.
HPE:BQ2060芯片向主機發送數據時,其通訊協議是否支持PEC校驗.
CPE:BQ2060芯片向充電器發送數據時,其通訊協議是否支持PEC校驗.
LED:BQ2060顯示電量時是用4個LED還是用5個LED表示.
SM:是否關閉BQ2060向外發送廣播信息.
設計電壓Design Voltage,它不言自明.
設計容量Design Capacity:Pack Capacity就是mAh模式時電池設計容量,當mWh模式時,設計容量就是Pack Capacity * Design Capacity.
LMD:用來存放FCC,最開始時這個值由廠家設置,很隨意地設置都行.
EDV:當電池電壓低了后,BQ2060可以提供三級低電壓報警,這三級低電壓報警Threshold分別為EDV0,EDV1,EDV2.EDV有兩種用處:第一,當電壓到EDV2時,DCR就不再增長了,此時BQ2060設置full_discharged標志.當電壓再低到EDV0時,電池將設置TERMINATE_DISCHARGED_ALARMS標志,表示若再放電,就會損壞電池了.EDV的另一種用處是電池電量矯正.按照Li-Ion電池理論,電量和電壓有關系可循,為了矯正電量,在放電時,若電壓先降到EDV時,而RM中計數的電量卻沒到相應的數值時,就將RM強制減到這些相應的值.如電壓降到EDV0時,RM卻還大于0,則強制將RM減到0;同樣的EDV1和EDV2,EDV1對應的是將RM調到3%對應的值,EDV2對應的是將RM調到Battery Low%對應的值,就是EEPROM中的一個值.
EDV本身要設置為多少比較好呢?它有兩種設置方法,一種就是設置三個固定的值,還有一種就是動態地設定,不同的溫度,容量,放電率EDV的值不同,動態計算出來.和這個動態EDV設置有關的參數有:EMF、T0、C0、R0、R1、A0.
Overload Current Threshold:上面是說EDV的矯正作用,當放電電流很大時,BQ2060是不檢測EDV的,到底多大呢,這個參數就是Overload Current Threshold.
中間電量矯正Mid Range Capacity Corrections:簡單地說就是,電池開路的情況下,VOC25代表當電池容量為25%時的電壓值,VOC50、VOC75的意思類推.
從上面可以看出,電池容量的測量不是一個簡單的方程,而是要不斷調整的.
還有兩種矯正,在DCR計數時,還要漏電流估計和自放電估計矯正.
Near full threshold:前面我們說一個有效的放電是先將電池充滿,即從RM等于FCC開始放電,這是粗略地說法.BQ2060 Datasheet 中說法是:從FCC低一點可是放電也算是有效放電,低多少呢,可以設定一個值,即參數Near full threshold.
最后的參數是ADC、VFC、Current、Temperature測量的校正.筆者水平有限,不能用“說白了,它們就是……”的方法解釋清楚,照本宣科地翻譯沒什么意義,期待智者的“深入淺出”.
如此這般沒有章法地閑扯,實在不好意思.您期望我說點什么?盡我所能地奉獻.
其實BQ2040、BQ2082、BQ2085等的EEPROM差別不是很大,您覺得呢?還有BQ2050也是.
哈哈,別忘了我的廣告呀,王婆賣瓜!!!筆者開發的筆記本電池測試系統(老化柜)最大特色就是:
首先是電池板級測試(不是直接測試電芯哦);其次是能測試各種電池,包括象COMPAQ,DELL這些特殊的電池;深度過放電池的自動小電流喚醒.各位多多宣傳宣傳,在此謝過啦.13764025021,wang30001@126.com,汪生
BQ2060 EEPROM參數的解釋
全部回復(27)
正序查看
倒序查看
@小伍
汪兄,你講得精彩!!!AZHU老師應該給你加分,我想問一下,BQ2060A的DATAFLASH是用什么軟件編寫的,你的筆記本電池老化柜多少銀子,有樣品嗎?網站在那里?謝謝!
小伍:嚴格地講,你說的BQ22060A 的 DATAFLASH 叫做EEPROM,因為這個EEPROM和BQ2060A是分開的,通常用24C01,而BQQ2083將這個EEPROM合并到BQ2083內部去了,真正地叫做 DATAFLASH 了.寫BQ2060A 地DATAFLASH 有兩種方法,一種通過BQ2060A寫,一種就用通用的燒錄器寫.
我的老化柜 每點380元!!! 每點380元!!! 每點380元!!!
我的博客 nb-battery.blog.dianyuan.com
我的老化柜 每點380元!!! 每點380元!!! 每點380元!!!
我的博客 nb-battery.blog.dianyuan.com
0
回復
@小伍
汪兄,你講得精彩!!!AZHU老師應該給你加分,我想問一下,BQ2060A的DATAFLASH是用什么軟件編寫的,你的筆記本電池老化柜多少銀子,有樣品嗎?網站在那里?謝謝!
電池測試(放電)曲線
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/47/1162644410.jpg');}" onmousewheel="return imgzoom(this);">

0
回復
@小伍
汪兄,你講得精彩!!!AZHU老師應該給你加分,我想問一下,BQ2060A的DATAFLASH是用什么軟件編寫的,你的筆記本電池老化柜多少銀子,有樣品嗎?網站在那里?謝謝!
電池老化柜主界面
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/47/1162644632.jpg');}" onmousewheel="return imgzoom(this);">

0
回復
@小伍
汪兄,你講得精彩!!!AZHU老師應該給你加分,我想問一下,BQ2060A的DATAFLASH是用什么軟件編寫的,你的筆記本電池老化柜多少銀子,有樣品嗎?網站在那里?謝謝!
深圳市信強科技有限公司,是專業從事電子元器件貿易配套服務的知名品牌公司,也是目前深圳較大規模的原裝IR產品的供應商之一。至今已成為國內眾多電子企業廠商的指定供貨商。 http://www.xinqtech.com
0
回復