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