隨着嵌入式系統(尤其是IoT設備)的迅猛發展,業界越來越要求對為它們供電的可充電電池系統進行改進。特別是,有許多應用都可以從既高性價比又準確的電池電量指示當中受益。儘管大多數汽車、醫療和軍事應用都需要提供完整的電池管理系統(BMS),但許多其他產品也可以通過更簡單的電池電量指示來實現很好的服務,也即只需要利用它來告訴用户,可以為設備供電的電量是多少。
本設計實例是一個單點LED變色指示燈,相比於通常的四LED條形圖電池電量指示[1],它提供了一種簡單、緊湊、低成本和低功耗的替代方案。 它包括一個表貼(SMD)式的RGB LED,並通過一個超小尺寸的MCU驅動——在本例中為6引腳封裝的Microchip PIC10F220或PIC10F222。最終的解決方案可以在面積僅為3.1×3.2mm2的PCB上實現,也可以輕鬆集成到現有設計中(圖1)。
圖1:1點式條形圖顯示器為通常的條形圖電池電量提供了緊湊的低功耗替代方案。
原型板的尺寸很小,因此可很容易地添加到目前沒有電池電量指示的現有產品中。在本例中,它安裝在鋰離子電池移動電源的外殼內,在此,PIC使用其內部0.6V帶隙基準來測量電池電壓(在其自身的Vdd引腳上檢測)。ADC進行的測量將0.6V基準表示為在Vdd輸入上所檢測的電壓的百分比。隨着Vdd的增加,得到的數字將會減少,反之亦然,這樣就可以得到被測電壓與A/D輸出值之間的“1/x”關係。Microchip應用筆記AN1072中提供了通過A/D輸出推導出被測電壓實際值的計算[2]。
與任何電量指示器一樣,在選擇MCU顯示顏色(紅、黃、綠或藍色,與電池荷電狀態對應)所對應的閾值電壓時,本設計必須考慮鋰離子電池所呈現的非線性電壓與荷電狀態關係曲線[3]。為了避免在每次測量Vdd時使用PIC有限的數學功能來計算充電狀態時所遇到的麻煩,我們創建了一張查找表,可以將它存儲在PIC的程序存儲器中。這張表(可點此獲取)是使用Microsoft Excel創建的,僅涵蓋了預期的電池組電壓範圍,在本例中為2.9至4.3V。用PIC的8位ADC測量時,這些電壓會產生52到35之間的輸出值。
圖2:使用查找表可以簡化荷電狀態的計算。
為了使功耗最小,本設計使用了高亮度RGB LED[4],並將MCU配置為保持睡眠模式,直到它從其看門狗定時器接收到週期性中斷(大約每秒一次)為止。從睡眠模式喚醒後,MCU會測量其Vdd引腳上的電壓,並通過驅動與最新測量值相對應的相關顏色的LED引腳,使相應的LED短暫閃爍(每0.25s發送1ms脈衝)。
點擊此處可下載兩個版本的MCU彙編程序源代碼清單,藉此,本設計就能驅動共陽極和共陰極RGB LED中的任何一種情況。代碼清單進行了完全註釋,大小也進行了優化,並使用了宏來簡化閲讀過程。此外,它們非常緊湊,僅需要85個程序字和3個數據字節,從而使得在幾乎任何其他引腳有限的PICmicro MCU上都可以輕鬆實現該應用。請注意,再做一點試驗,應該可以修改此處提供的程序,在閾值之間插值,從而根據電池的荷電狀態按比例點亮兩個LED。
Benabadji Mohammed Salim在阿爾及利亞奧蘭科技大學攻讀計算機科學碩士學位。