高通平台底电流调节心得

Q:底电流和待机电流的概念?
A:底电流即机器完全睡眠时的最低电流;待机电流即机器在一段时间内的待机平均电流,通常需要插入SIM卡测待机电流。

Q:底电流调试方法?
A:1.首先,需要进行射频QCN文件下载并进行射频校准,因为QCN文件不下载射频不能正常工作,会引起漏电,继而引起底电流偏大。
   2.射频校准后如果仍然存在较大底电流,则需要进入飞行模式测试底电流,并排除GPIO、LCD、CAMERA、SENSOR等外设问题,可把外设拆除再进行测试。
   3.分析机器有无进入睡眠状态,可通过串口信息查看linux kernel有无睡眠,kernel没有进入睡眠则查看是哪个模块引起的并有针对性分析相应模块。如果kernel已经睡眠,还存在底电流偏大问题,则需要接上jtag线,并通过trace32分析,最主要的是分析系统各模块的clock有无关闭,例如:lcd的MDP_VSYNC_CLK没有关闭,则需要查看lcd模块。
   4.可通过检测TCXO引脚的状态来确定modem端是否已经睡眠。
   5.在modem端tlmm_bsp.c文件下比对各个GPIO有无设置错误继而引起漏电。另外,sleep_target.c文件也值得分析。    
   6.如果相同代码上的其它项目底电流ok的话,应该重点排查新项目新添加的模块或者GPIO口是否被更改。
   7.如果以上都ok的情况下仍然存在底电流过大问题,则需要硬件协助排查问题。

小结:引起底电流过大的问题就是睡眠状态下有些资源没有被完全关闭导致漏电,这对使用电池作为电源的手机来说影响很大,底电流的调节是一个综合的过程,需要团队每个人的配合。

================================================================

最近调试了几个底电流偏高的项目,加深了对高通平台底电流的理解,记录如下,备忘。

1.当底电流偏高时,先不要急着连上JTAG线(连JTAG线很是麻烦),应该先用示波器测量TXCO脚,看modem能否睡眠。如果TXCO引脚在睡眠时为低电平,不会输出正弦波,则说明modem能睡眠,也就是说软件层能睡眠,这时候即可断定是硬件漏电引起的,应该测量各GPIO引脚看是否是正常状态。必要时需要逐个拆元器件来判断是哪个硬件引起的漏电。

2.当modem不能睡眠时则需要连接上JTAG,通过trace32工具来判断哪个clk没有关掉,定位到相应模块再有针对性地解决问题。以下是一些使用trace32工具调试时需要执行的一些命令:

Msm_pm_collapse() in msm_sleep() in pm.c/pm2.c
Clk_regime_apc_rail_off() in modem switches off the power rail to the Apps.

BP side:
sleepmod_tcxo_shutdown() // Perform TCXO shutdown
sleepmod_ok_tcxo_shutdown() //Check votes and other misc reasons not to perform TCXO shutdown.
clk_regime_tcxo_shutdown_asm() //performs the TCXO shut-down

clkrgm_linux

 

do ../boot_debug.cmm         //执行高通给我们提供的脚本来加载modem端代码以便使用trace32工具调试modem端

d.load.elf M8X25QDOSKOLYM3070.elf /nocode /noclear       //加载modem端编译出来的镜像文件,需要注意的事这个文件需要与下载到机器里的modem端软件相匹配

b.s clk_regime_apc_rail_off /o          //设置断点,可以通过这个断点判断app是否睡眠

b.s sleepmod_ok_tcxo_shutdown /o //当modem运行到这个函数,说明modem准备睡眠,但不一定能睡眠,这个时候可以查看clkrgm_linux变量,可得到哪个clk没有关掉

 

Y.SPATH.SRD += ../../core\power\SLEEP\src\

symbol.sourcepath.setrecursedir  ../your path  //这个命令能将trace32中的汇编代码与本地代码相匹配

v.v gSleepInfo

v.v clkrgm_linux


==============================================================

以上内容仅简单的思路整理供笔者备忘,并没有详细介绍trace32工具的连接方法,一些细节问题也没有详细介绍,所以可能无法通过上述步骤来实现对高通平台底电流的调试。

 

你可能感兴趣的:(高通平台底电流调节心得)