用簡單測試方法檢查電池容量

作者 : Adem Kaya

電化學動態回應(EDR)方法透過施加負載脈衝,評估電池對攻擊和恢復的響應時間,從而比較電池在負載時的狀況以及所儲存的電池性能相關參數...

大多數手持裝置使用鹼性電池或充電電池供電,因此測量電池容量是這類設計的一個關鍵特性。但是,在大多數情況下,對預算吃緊的專案而言,使用電池電量監控IC可能是一種奢望。本文提供了一種更簡單、更便宜的選擇。

如今,即使是最便宜的微控制器(MCU)也常常內建類比數位轉換器(ADC)模組,但是由於其解析度(相對)較低且雜訊較高,因此並非總會選擇採用這一類模組。然而,那些未使用的內部ADC通道之一,足以用於執行測試,從而確定電池是否仍然可用。

本文檢測電池健康狀況的方法稱為電化學動態回應(EDR)。該方法已由Cadex Electronics申請專利,美國專利號為7,622,929

EDR透過施加負載脈衝,評估電池對攻擊和恢復的響應時間,從而比較電池在負載時的狀況以及所儲存的電池性能相關參數。如1所示,好的電池具有很強的恢復特性,而幾乎耗盡的電池則具有較大的放電斜率和較差的恢復能力。造成耗盡電池出現這些差異的原因有多種,例如內部電阻增加。

 1:比電池在各種充電狀態下對臨時負載脈衝的響應,可以發現它們在EDR方面的差異。

利用EDR理論,對電池電壓進行採樣,找到在特定時間下(例如最大功耗發生時)的最小電池電量,即可獲得有關電池健康狀況的資訊。系統的初始開機時間(也稱為「打招呼」時間)是衡量電池健康狀況的一個特別好的時機。

在系統完全啟動之前,電池電量似乎處於安全工作水準,但是,如果電池快要用盡了,則當系統達到滿負荷時,電池電量可能會立即降至安全水準以下。該裝置會在不執行EDR測試的情況下以正常模式啟動,但是卻會在第一次重載時不受控制地關閉(即電壓下降到如1所示的關鍵電池電量級)。

2顯示實現EDR測試建置的簡化硬體版本。此處選用負載電阻來代表整個系統負載,因此其值可以根據系統的不同進行改變。系統要產生此處所示的資料,需要一個10Ω的值。電阻R1和R2用作分壓器,實現對電池電壓(Vcc)的測量,而升壓電路則用於確保即使在測試期間電池電壓下降時,ADC的基準也保持恒定。電阻R3是開關電晶體的下拉電阻。

圖2:簡化原理圖顯示EDR測試建置的總體設計。

測試系統在設定的時間段(約200ms)內對電池電壓進行採樣。在韌體控制下,MOSFET僅在測量週期的一半時間內導通,然後關閉。這樣,系統就可以測量滿載情況下的電壓,以及最小負載時的電池恢復回應。(可以在韌體中更改時間段,但我發現200ms足以充份評估電池容量。)測量完成後,可以通過UART鏈路讀取結果。

在為展示EDR所搭建的示例系統中,我使用了兩節AA鹼性電池,因此Vcc的最大值為3.2V。升壓電壓Vdd設置為恒定的3.6V。系統在正常情況下消耗55mA,但在滿載時消耗127mA。使用「好」電池(3a)和「壞」電池(即耗盡的電池,3b)對系統進行測試時,所獲得的示波器跡線顯示了欠載電壓的差異有多大。

3:電池電壓的負載測試結果顯示,充滿電的電池(a)和幾乎耗盡的電池(b),二者的回應之間存在顯著差異。

我在某些專案中使用的示例設計基於STM32F303 MCU,其韌體使用KEIL IDE以C語言編寫。在GitHub頁面可以找到這個韌體。

測試程式碼的流程圖如4所示。一旦UART收到“S”字元,就會執行測試。ADC採樣頻率設置為250Hz,如前所述,測試週期約為200ms。

4EDR測試程式碼將負載打開,以一半的測試時間採樣,然後關閉負載,完成採樣週期。

這個程式碼僅用於進行測試和收集資料。處理資料有很多方案。在最簡單的情況下,可以查看資料的最小值,然後將其與系統的安全工作電壓水準(也稱為臨界水準)進行比較。如果在測試過程中電池電壓接近臨界水準,則可以警示系統使用者該更換電池了。

可以編寫更全面的演算法來精確確定電池健康狀況,例如用作電池電量指示器。然而,為了在顯示器或電池指示器上向使用者更新、顯示適當的資料,還應對所採集的資料進行過濾。若原始資料未經過適當過濾,那麼負載變化將導致其完全無用。緩慢的無限脈衝回應(IIR)濾波器可以適當地讓訊號平滑。

總之,藉由MCU中非常基本的ADC,可以採用EDR方法對電池健康狀況實現低成本的檢測。將初始上電期間的電池讀取時間設為約200ms,幾乎足以對所有系統實現基本的電池健康狀況測試。

(參考原文:Check battery capacity with a simple test method,by Adem Kaya )

本文同步刊登於EDN Taiwan 2021年4月號雜誌

加入LINE@,最新消息一手掌握!

發表評論