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