【中科蓝讯】耳机电量是怎样更新到手机的?

从功能表面看,耳机电量更新并不复杂:ADC 采到电池电压,再查表换算成百分比,手机就能显示。

但在实际项目中,电量更新并不是采样后直接查表:采样值要先经过滤波,查表得到的也只是参考电量,手机最终显示的还要由软件继续维护。先把实际电压、参考电量和显示电量这三个值分清楚,整条链路就容易理解了。

先看完整链路:前 3 步把采样值处理成参考电量,后 3 步由软件维护显示值、完成双耳同步,最后上报手机。
在这里插入图片描述

电池电压是怎么采出来的?

顺着中科蓝讯 SDK 的调用关系看,系统会在 5ms 任务中检查 ADC 转换状态。转换完成后,读取电池通道和内部参考通道的 ADC 值。

内部参考电压的已知值用于校准换算比例,再结合电池采样值和分压系数,得到实际电池电压

为什么采到电压后还不能直接使用?

播放音乐或者蓝牙发射时,电池电压会短暂下降,负载变小后又会回升,所以一次采样不能直接拿来估算电量。

结合耳机电压变化缓慢、但采样又容易受负载影响的特点,我更推荐用递推平均的方式更新电压:每来一个新采样值,只让平均电压向它靠近一小步。平均电压变化达到条件后,才更新稳定电压。下降条件更容易触发,上升条件更严格,可以减少电压回弹的影响。

参考电量为什么不直接给手机?

稳定电压通过“电压—电量对照表”换算成参考电量。它只用来判断当前显示偏高还是偏低,不是手机最终看到的电量。

如果每次都用参考电量覆盖显示电量,负载变化仍然会造成百分比跳变。

显示电量是怎么变化的?

电量管理任务大约每 10 秒运行一次,并根据当前状态选择更新方式。

放电时,参考电量低于显示电量,软件就让显示电量逐级下降,不会一次跳到参考值;电压短暂回升时,也不会把电量加回来。

充电时,电压回升很快,不能直接用它增加百分比。软件根据充电电流和时间估算充入容量,再换算成显示电量;底层确认充满后,才显示 100%。

温度决定当前能不能充电、使用多大的充电电流。低电提醒主要看显示电量,低压关机最终看实际电压。

为什么内部电量和手机显示还可能不同?

显示电量发生变化后会被保存,耳机下次开机可以从上次的结果继续计算。耳机内部按 1% 维护电量,当前 App 路径按 5% 一档显示。

例如内部电量是 59%,手机仍然显示 60%;内部电量下降到 55% 后,手机才显示 55%。

左右耳电量最后由谁上报?

左右耳各自计算本耳电量,再通过 TWS 交换耳机和充电盒电量。主耳汇总左耳、右耳和充电盒数据后,统一上报给手机系统和配套 App。

现在再看这条链路,重点就是分清三份数据:实际电压反映电池状态,参考电量判断变化方向,显示电量负责最终呈现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值