本文針對電源管理文檔的核心文件進行了優化:無需改動硬件,即可提升充電狀態下的電壓測量準確性。
1.1 充電時動態校準電壓
修改原demo示例batteryMange.lua文件的checkBattery函數:
在讀取ADC電壓前,通過充電IC 2712A的寄存器控制,短暫關閉充電回路,消除充電電流對電壓的影響;測量完成后恢復充電——這是最為準確的方式。
我們之前的demo比較多配置I_CTRL和V_CTRL這兩個寄存器,這次主要配置工作模式寄存器MODE Register。
示例代碼如下所示:
1.2 加入軟件濾波
增加移動平均濾波:
在checkBattery函數中,記錄最近幾次電壓值,取平均值以減少瞬時波動影響。
這個方式存在一定誤差,但是也能盡量拿到較準確的電壓值。
示例代碼如下所示:
1.3 加入軟件濾波
根據充電狀態調整電壓計算:
在mathBatteryPercent函數中,如果當前處于充電狀態(ischarge == true),則對讀取的電壓值進行補償(例如減去固定偏移量)。
這點更適合標準差異,比如插上USB和未插USB的電壓檢測總是差距某一個數值,且一個測試周期內都維持這種差異。
示例代碼如下所示:
二、驗證步驟要點
2.1日志調試
在checkBattery中增加日志輸出,觀察充電/不充電狀態下的原始電壓值和補償后的值。
2.2 閾值測試
插入USB時,驗證低電量關機邏輯是否基于補償后的電壓觸發,避免誤關機,因為補償后的電壓會略低(原來的關機條件為電量低于30%且2分鐘內未充電)。
今天的內容就分享到這里了~
審核編輯 黃宇
-
寄存器
+關注
關注
31文章
5423瀏覽量
123415 -
電源管理
+關注
關注
117文章
6402瀏覽量
145798
發布評論請先 登錄
突破工業接口壁壘!ARK(方舟微)DMZ42C10S讓PLC\\\"萬能適配\\\"成為現實!
無線AP該如何突破瓶頸?
智能家居發展的瓶頸是什么?如何才能突破瓶頸?
Msp430f43x系列的ADC12采用內部基準電壓,2.5V和1.5V相比,準和穩哪個基準電壓比較好?
Air101 MCU芯片有何不同
穩石機器人|日化行業智慧物流:打造高效綠色供應鏈
Air8201,助力武裝押運槍支定位

合宙Air8201,助力武裝押運槍支定位

深度解析:Air8201如何使用LuatOS進行電源管理功能!

評論