一、什么是底电流?
底电流即机器完全睡眠时的最低电流;待机电流即机器在一段时间内的待机平均电流,通常指的就是测试机器的飞行待机电流。
一般测试机器电流,用到的工具:power monitor(功率监视器)
power monitor使用:Power monitor使用说明(非常不错).doc
二、项目bringup阶段,软件方面如何定位功耗问题
1.跟踪每天的daily版本,观察飞行待机平均电流以及电流波形,及时给予反馈;
2.查看底电流是否正常:
2.1 如果底电流电流过高(先检查是否进入最低功耗模式)
通过xo shutdown 和Vdd min的检查命令,查看是否进入系统功耗最小化状态。(如果XO shut down计数为零,VDD min计数不断增加,则已经进入了VDD min);
XO关闭和VDD最小化计数的adb shell命令
a. 输入以下命令获取RPM数据:
mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/rpm_stats
以下内容是以上命令的输出;计数代表XO关闭和VDD最小化出现的数量。
RPM Mode:xosd
count:0
time in last mode(msec):0
time since last mode(sec):791
actual last sleep(msec):0
client votes: 0x00020001
RPM Mode:Vdd Min
count:28
time in last mode(msec):8000
time since last mode(sec):475
actual last sleep(msec):233000
client votes: 0x00000000
b.或者检查以下RPM RAM转储的变量,以确定XO关闭和VDD最小化的计数
– sleep_stats[0] --XO关闭计数(系统进入XO关闭的次数)
– sleep_stats[1] --VDD最小化计数
注意:若系统进入VDD最小化状态,则只有VDD最小化计数会增加。VDD最小化是最低的功耗状态,包括了XO关闭。仅当系统未成功进入VDD最小化而进入XO关闭时,XO关闭计数才会增加。
2.2 如果系统未进入VDD min,则需要检查各个子系统休眠情况,通过查看子系统sleep count命令(cat /sys/power/system_sleep/stats,cat /sys/power/rpmh_stats/master_stats)能看到ADSP MPSS APSS等子系统休眠情况,如果sleep count未发生变化,则对应的子系统未进入休眠。
ADSP:产生问题点:sensor radio audio;
解决方案:拿掉不必要的器件,定位sensor。
MPSS:产生问题点:①modem未启用;②NV未配置完善;
解决方案:①分析MPN日志;②抓取ram dump。
APSS:产生问题点:AP侧(上层)wake_lock持锁;
解决方案:①在代码中打开功耗debug,添加必要的打印log;②wakeup_sources。
2.3 xo shutdown 和Vdd min计数最小化后就一定表示系统功耗正常了么?
不一定,若终端成功进入VDD最小化后,基底电流仍大于预期值,则可以得出结论,终端中存在一个或多个泄漏源计入总电流消耗中。泄漏可能有多处来源,例如:
(1)睡眠期间未使用但启用了的SMPS和LDO的泄漏;
定位方式:PMIC转储有助于检查SMPS和LDO 泄漏。
(2)某个或多个GPIO的最低泄漏设置不正确配置导致的GPIO管脚泄漏;
定位方式:GPIO转储有助于确定MSM™ GPIO的睡眠配置。
(3)外围和外部元器件未禁用或进行低功耗模式配置所导致的泄漏;
三、XO shutdown和VDD min是什么意思?
上面提到的XO shutdown和VDD min分别代表什么意思呢?
XO是XTAK Oscillator 石英晶体振荡器,XO提供RF平台BB(基带频率),WTR(射频收发器),NFC,GPS,FM所需的系统频率;XO shutdown即晶振关闭,这些传感器不工作。
VDD min指最小操作电压,即最低功耗模式。
四、功耗分析处理流程
分析问题 ---> 判断关机漏电流是否正常 --->飞行待机电流是否正常 --->判断场景
一般场景功耗分为以下三种:
单一场景待机电流测试:数据网络/wifi/蓝牙/GPS...待机电流是否正常?
复合场景待机电流测试:语音通话/拍照和拍照预览/录像和录像预览/浏览网页...待机电流是否正常?
高复合场景待机电流测试:DoU和类DoU续航测试/APP场景使用电流/...是否正常?
本文介绍了Android设备在bringup阶段如何定位功耗问题,包括底电流和VDD最小化状态的检查,以及功耗异常时的排查方法,如SMPS和LDO泄漏、GPIO配置、外围器件功耗等。同时解释了XO shutdown和VDD min的概念,并提供了功耗分析处理流程。
4408

被折叠的 条评论
为什么被折叠?



