引言
近年來,便攜式電子產(chǎn)品的迅猛發(fā)展促進了電池技術(shù)的更新?lián)Q代。鋰離子電池由于其具有高能量密度、長壽命、低自放電率、無污染等特性,迅速成為市場的主流電池產(chǎn)品。為了防止電池出現(xiàn)過充電或過放電狀態(tài)、保證電池的安全性能和避免出現(xiàn)電池特性惡化現(xiàn)象,必須在鋰離子電池組中安裝保護電路。同時要鋰電池能夠穩(wěn)定可靠的為設(shè)備提供能量,對于電池的智能檢測與監(jiān)控是必須考慮的環(huán)節(jié)。鋰電池供電是現(xiàn)代便攜式設(shè)備最合適的供電方案,但其充放電安全性不如鎳鉻電池、鎳氫電池及普通一次性干電池的傳統(tǒng)電源。如果充放電方法不對,將會導致鋰電池發(fā)生安全問題,甚至爆炸,故鋰電池有必要加入監(jiān)控電路以實時監(jiān)控充放電過程。本文以珠海炬力 SOC 芯片 ATJ2085 來設(shè)計鋰電池的外圍檢測系統(tǒng),該設(shè)計方案以微處理器作為各種功能控制的核心, 除了對鋰離子電池組提供過充、過放、過流保護外, 還可有效的對鋰離子電池組內(nèi)各單節(jié)鋰電的充、放電提供平衡保護、能夠?qū)崟r檢測出電池所處狀態(tài)并對鋰電池進行保護。
2、ATJ2085 的電池監(jiān)測的功能的使用
ATJ2085 為 LQFP 封裝,64 針腳,采用內(nèi)嵌式的 MCU 和 24-bit DSP 雙處理器體系結(jié)構(gòu),分別完成針對操作事件控制和多媒體數(shù)據(jù)編 / 解碼算法的系統(tǒng)級優(yōu)化,通過數(shù)模混合信號技術(shù),在單一硅片上集成了高精度 ADC/DAC 轉(zhuǎn)換器、USB 控制器,實時時鐘 RTC 等。支持 USB2.0(FULLSPEED),支援 MP3/WMA/WAV/WMV/ASF 等格式媒體播放;支持 MTV 電影播放;支持 JPG、GIF、BMP 圖片瀏覽。其系統(tǒng)集成度高,外圍應用電路簡單,擁有功能完善而成熟的開發(fā)工具和環(huán)境。
在 ATJ2085 中,電池電壓從電池電壓檢測引腳 VBATPIN 輸入,VBAT 的電壓范圍小于 3.0 伏,所以無論一節(jié)堿性電池(1.5V)供電還是兩節(jié)堿性電池(3.0V)供電,在外部電池供電電壓小于 3.0 伏時外部都無需要加分壓電阻。ATJ2085 中有一個 4bit 的 ADC,它把 0.9-1.5 伏之間的電壓 16 等分為:0.90V,0.94V,0.98V,1.02V,1.06V,1.10V,1.14V,1.18V,1.22V,1.26V,1.30V,1.34V,1.38V,1.42V,1.46V,1.50V。當電池電壓大于 3.0 伏供電時,BATSEL 接高電平,決定了從 VBATPIN 腳輸入的電壓在比較前會被分壓。并且 A/D 變換出來的數(shù)值會每 2 秒一次被記錄在 IO PORT(D8H).BIT[3:0]里,這樣軟件就可以讀回 IO PORT(D8H)中的值,與功能規(guī)格表(表 1)中的值作比較,來確定要顯示的電池電量及采取的動作。很明顯 ATJ2085 能在更多點上監(jiān)測電池電壓。
舉例如下:
假設(shè) VL0》VL1》VL2》VL3,電池電量顯示為 3 格
選 VL0=1.30V, 即 IO PORT(D8H).BIT[3:0]=0AH,
VL1=1.10V, 即 IO PORT(D8H).BIT[3:0]=05H,
VL2=0.98V, 即 IO PORT(D8H).BIT[3:0]=02H,
當 VBAT》VL0 時,電池電量顯示為滿格;
當 VL0》VBAT》VL1 時,電池電量顯示為缺 1 格;
當 VL1》VBAT》VL2 時,電池電量顯示為缺 2 格;
當 VBAT《VL2 時,電池電量顯示為缺 3 格,即空格,并閃爍。
另外,當電池的電壓低于某個電壓時(假設(shè) VL2),軟件把一些耗電大的電路關(guān)斷(利用 IO PORT 控制),如 DSP,DAC 等等。當 VBAT PIN 腳上的電壓低于 LBD PIN 腳的電壓時,ATJ2085 仍會被無條件復位。
3、電池檢測系統(tǒng)設(shè)計
3.1 電路設(shè)計
在本文中檢測電路僅僅列出鋰電池檢測電路的原理圖,該設(shè)計考慮到了鋰電池的過壓特性,于是選用 SC805 電池檢測芯片來進行硬件電路的設(shè)計。如下圖所示,電路圖一部分是對于 USB 充電和過壓的保護設(shè)計,另一部分為電池電量檢測
正如 ATJ2085 的電池監(jiān)測的功能的使用描述一樣,需要在電池兩端連接電阻 R424 和電阻 R422(理想狀態(tài)下電阻 R424 和電阻 R422 比值應該為 1:2)來分壓。但是考慮到非理想 ADC 的量化間隔是非等寬的,這勢必導致 ADC 器件不能完全正確地把模擬信號轉(zhuǎn)化成相應的二進制碼,從而造成信噪比的下降;且 ADC 每個量化的二進制碼所對應的量化間隔都不同,為了使設(shè)計的系統(tǒng)參數(shù)盡可能準確,我們需要克服微分非線性量化誤差。于是需要調(diào)整 R424 和 R422 的組值(如圖 1 所示)。
3.2 電壓檢測
ATJ2085 內(nèi)部有一個 4 Bit 非理想 ADC. 作為檢測電源電壓之用。此 4 bit ADC 可以根據(jù)固件(F/W)設(shè)定的電壓值,產(chǎn)生 LB- 和 LBNMI- 信號。對于鋰電池,由于自身特性不可能使產(chǎn)生的電壓直接可以達到 0~1.5,需要利用如下公式分壓:
將分壓后的值與鋰電池實際值進行對應,其電壓檢測如表 2 所示:
通過硬件后可以將表 2 的值對應到表 1 中去通過調(diào)用以下軟件流程進行處理。
3.3 軟件流程
該檢測系統(tǒng)軟件設(shè)計流程如圖 2 所示:
首先清 watchdog,然后通過 GPIO_A0 檢測 USB 狀態(tài),接下來進行充電引腳 GPIO 確認并開始充電,充電時將 GPIO_A0(如檢測電路圖)寄存器的對應位置高電平,同時利用 GPIO_B6 進行電池狀態(tài)檢測[6][7]。當需要對 4 位 ADC 寄存器讀寫數(shù)據(jù)時,需要設(shè)置其端口值參數(shù),通過電池狀態(tài)檢測后,最后將檢測到的電池參數(shù)通過顯示函數(shù)顯示在 LCD 上。
其初始化代碼如下:
output8(0x4e,input8(0x4e)|0x08)// 清 watchdog
output8(0xee,input8(0xee)|0x01); // 初始化端口參數(shù),開始充電
output8(0xf0,input8(0xf0)&0xbf);
output8(0xf1,input8(0xf1)|0x40);
output8(0xee,input8(0xee)& 0xfe);
if((input8(0x50)&0x40)!=0x40)
if(?。╥nput8(0xee)&0x04)) // 防止充電黑屏后拔掉 USB 不開
4、結(jié)束語
通過該方法設(shè)計的鋰電池檢測系統(tǒng)不僅可以有效防止電池的過壓、過充、過放、過溫,同時可以智能監(jiān)控電池的電壓狀態(tài);該設(shè)計方案簡單易行,穩(wěn)定可靠,對于嵌入式系統(tǒng)的設(shè)計與研發(fā)具有一定的指導意義和實踐價值。該方法的創(chuàng)新之處在于不管外接干電池、鋰電池還是鎳氫電池均可以用該電路設(shè)計方法對電池進行監(jiān)控。
? ? ? ?責任編輯:pj
評論
查看更多