高通7x27a平臺目前遇到幾個底電流調試問題,發表以下見解
1:首先個人在調試不睡眠中遇見2次由於串口睡眠模式配置不對導致系統無法睡眠的問題,要是串口連接其他模塊比如BT和modem,我們在sleep模式不可以配置成普通gpio功能,這樣很容易導致睡眠時無法與設備通訊導致無法睡眠,modem有radio lock 。
2:在系統可以睡下,底電流在20mA以下但是大於2mA的情況下,很可能是設備漏電造成或者開了一些clk,特別是clk對底電流影響很大。我自己有遇見過wifi芯片gpio倒灌漏電,CTP漏電。只要發現是哪個設備漏電,解決起來應該不難。遇見過一次camera clk導致sleep底電流偏大,普通外設需要的CLK我們睡眠時應該關閉。
3:只要系統可以睡下,我們在kenel config裏使用小點的配置來逐一排查哪些設備漏電,逐一檢測,睡眠模式通常gpio配置成pull_in pull_down。只要發現問題就好辦了。
4:關於系統不睡的調試,我們可以在kernel CMD中填入no_console_suspend來使睡眠時串口輸出log,還有可以打開PM_DEBUG。具體方法有篇文章有介紹。
目前認爲做的最有成就感的2件事,一是將無法睡下的手機調到可以sleep底電流到5mA,再排查出漏電問題底電流降到1.幾mA,二是決解一款芯片漏電降低底電流致該方案成功上市。
For the current optimization, you could check with below:
1. external device, you could remove one by one to check.
2. check power supply with each LDO, please disable them if not used,
and enter LPM if needed. --when sleep the current will add 0.1mA once you used a ldo to supply voltage known by experience.
3. check each GPIO setting