电源管理技术的革新是设备性能突破的关键。Air8201方案以稳定性为核心,确保系统运行零风险;以精准性为手段,动态挖掘硬件潜力。这场“效能革命”彻底打破传统电源管理的桎梏,释放设备的巅峰性能。
本文针对电源管理文档的核心文件进行了优化:无需改动硬件,即可提升充电状态下的电压测量准确性。
1.1 充电时动态校准电压
修改原demo示例batteryMange.lua文件的checkBattery函数:
在读取ADC电压前,通过充电IC 2712A的寄存器控制,短暂关闭充电回路,消除充电电流对电压的影响;测量完成后恢复充电——这是最为准确的方式。
我们之前的demo比较多配置I_CTRL和V_CTRL这两个寄存器,这次主要配置工作模式寄存器MODE Register。
示例代码如下所示:
1.2 加入软件滤波
增加移动平均滤波:
在checkBattery函数中,记录最近几次电压值,取平均值以减少瞬时波动影响。
这个方式存在一定误差,但是也能尽量拿到较准确的电压值。
示例代码如下所示:
根据充电状态调整电压计算:
在mathBatteryPercent函数中,如果当前处于充电状态(ischarge == true),则对读取的电压值进行补偿(例如减去固定偏移量)。
这点更适合标准差异,比如插上USB和未插USB的电压检测总是差距某一个数值,且一个测试周期内都维持这种差异。
示例代码如下所示:
2.1 日志调试
在checkBattery中增加日志输出,观察充电/不充电状态下的原始电压值和补偿后的值。
2.2 阈值测试
插入USB时,验证低电量关机逻辑是否基于补偿后的电压触发,避免误关机,因为补偿后的电压会略低(原来的关机条件为电量低于30%且2分钟内未充电)。
今天的内容就分享到这里了~
文章评论(0条评论)
登录后参与讨论