電量計(jì)在手持設(shè)備中的實(shí)現(xiàn)
本文引用地址:http://www.ex-cimer.com/article/114990.htm
電流采樣電阻Rcg是用采集流入或流出電池的電流,由于ADC采樣的限制,該電阻的壓降不能超過+/-80mV,所以,該阻值由應(yīng)用中最大的峰值電流決定,如式一。如果峰值電流為2A,那么該阻值可以選擇33mohm。
電流電阻上的電壓經(jīng)ADC采樣后放置于REG_CURRET(06H和07H)寄存器中,而ADC的LSB是11.7uV,這樣就可以按式二計(jì)算實(shí)際流過的電流值:
同時(shí),STC3100會把Rcg兩端的電壓值與采樣周期相乘后放入28位的累加器中,其中的高16位會放入REG_CHARGE(02h和03h)寄存器中,其實(shí)際的電量可以按式三計(jì)算。
STC3100自身的供電管腳Vcc和電池電壓檢測管腳Vin是分開的,如圖7所示,這樣很容易可以在電壓檢測管腳加入R2(1kohm)和C2(47nF~220nF)組成的ESD 保護(hù)和濾波電路,而電阻R1(150ohm)和齊納二極管D1(5.6V)組成對Vcc的ESD保護(hù)電路,從而不會影響對電池電壓的檢測精度。電池電壓和溫度經(jīng)ADC采樣后分別放于REG_VOLTAGE 和REG_TEMPERATURE寄存器中,按照式三和式四可以分別計(jì)算出電池的實(shí)際電壓和溫度值。
STC3100的GND管腳要用一個(gè)PCB走線連接與電阻的地端,確保所有的電流都是流過該電阻的,避免產(chǎn)生電流的檢測誤差。
3,軟件設(shè)計(jì)與驗(yàn)證
STC3100寄存器中可以直接讀出電量的變化值、電池電壓、電流、溫度等數(shù)據(jù),系統(tǒng)處理器需要在上電時(shí),配置STC3100的寄存器,啟動其電量計(jì)數(shù)功能,如果是第一次上電,需要通過檢測的電池電壓進(jìn)行電池容量的初次預(yù)估。完成初次預(yù)估后就可以進(jìn)行實(shí)時(shí)的電池電量的實(shí)時(shí)計(jì)算,軟件的流程如圖所8示。
電池的容量會隨溫度、充放電次數(shù)和使用時(shí)間的長短變化而變化,因此,為得到精確的電池電量,僅僅獲得電池電壓、電流是不夠的,還要考慮溫度、電池老化、電流檢測電阻精度等因素造成的累計(jì)誤差,因此,建議在使用中定期一次電池的完全的充放電過程,進(jìn)行消除累計(jì)誤差,不斷保持電量的精度。上述軟件在STC3100的demo板(STEVAL-ISB0011V1)進(jìn)行了驗(yàn)證,如圖9所示。該Demo板使用STM32進(jìn)行軟件處理,其上電池的充電芯片是具有800mA充電能力的STC4054,16*2矩陣的液晶LCD可是實(shí)時(shí)顯示電池的容量、電壓、電流和溫度等參數(shù),同時(shí)支持通過USB接口和PC通訊的功能,能夠把電池的信息上傳給上位機(jī)。
該實(shí)驗(yàn)采用1800mAh的電池,型號是(),實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)如圖10所示,其中包括了電池電壓、溫度、電流、剩余電量、電池容量和STC3100芯片的ID號。并且我們分別對STC3100施加外部和內(nèi)部的32K時(shí)鐘,測試結(jié)果證明,采用外部時(shí)鐘測量結(jié)果更為準(zhǔn)確。
結(jié)論
現(xiàn)在便攜式設(shè)備集成越來越多的功能,精確的電量計(jì)可以用于提示用戶剩余的使用時(shí)間,甚至可以在電池低電量時(shí),可以提示用戶關(guān)閉耗電較大的設(shè)備,這樣可以給用戶以更好的使用體驗(yàn)。意法半導(dǎo)體的STC3100是用在系統(tǒng)側(cè)的電池電量監(jiān)控芯片,可以精確地監(jiān)控電池電壓、電流、溫度,并且實(shí)時(shí)輸出電池電量,減輕了系統(tǒng)的工作量,并且它本身具有較小的功耗,比較適合便攜式設(shè)備的應(yīng)用。
參考文檔
1, STC3100 數(shù)據(jù)手冊;
2, STC3100應(yīng)用文檔AN3064;
3, STEVAL-ISB0011V1使用說明手冊UM0903;
評論