待机电流过大的一些调试方法

转自http://blog.csdn.net/cbk861110/article/details/8496490

今天调试遇到的待机电流过大的问题,借鉴以下的方法

待机电流过大,主要是从各个模块的电流查起,耗电流大的模块有TP,camera,屏,Gsensor等

这次调试RK3026的平台,没调试之前功耗有100多毫安,调试后只有10多毫安,具体的查法,就是将机器休眠,用万用表去查休眠后各个模块的电压,休眠后,理论上模块的电压都关闭了,若是有电压,就可以重点查这块的电压是怎么漏出来的,查对应的代码,看GPIO口有没有控制其,将其休眠时电压拉低,一般是由PMU去管控电压的,查PMU的规格书,看对应的寄存器。

以下部分是转载,方法挺全的

待机电流过大,不光是MTK平台,展讯平台,Master等等都是经常遇到的问题,这不光是驱动工程师要做的,有时也需要跟BB或者MMI的工程师协调,这种现象出现的原因太多了,不能一概而论,但可以有几种

方法尝试:

一、电流表查询法

这种方法主要是在待机状态下,去用仪器查询所有外设是否工作在正常状态,比如一些外设模块在待机状态下是否进入休眠等等;

二、模块查询法

这种就是针对外设模块来查找原因所在了,比如第一次download之后,或者重新开机之后,BT,FM,ATV,G_sensor等这些模块是否都正常进行了初始化操作,这部分主要是check code;

三、现象针对法

这种就是根据待机电流出现的操作流程来查询,比如开机待机电流正常,但是我开关一次FM之后,待机电流就大了10mA,很明显,要check FM这部分;

四、待机代码查找法

分析过滤休眠待机时候还在运行的代码,避免出现定时器和其他代码进程在LCD息屏时还在运行。

五、排除法

硬件:一个一个模块排查,必要时焊下芯片测,包括检查驱动。

软件:版本回溯,二分法排查版本,定位出问题的版本时间和代码修改点。

 

总之,待机电流过大是个很普遍的现象,而且出现的原因也有很多种不是三言两语讲完的,只能凭一定的方法或者经验和现象去迅速定位吧,呵呵,我个人只是这么想的,期待高手有更完美的讲解我以前在52论坛下过一个“电流法解决手机不开机”问题的文档,贴出来跟大家共享下吧,应该是个高手写的,给那些没有看到过这篇文章的朋友分享下,^_^

 

备注:Camera模块导致电流过大:

经常MTK6253平台驱动调试会发现待机电流过大问题,一般最小电流偏大到1.6mA左右一般都是摄像头的I2C上拉电阻漏电导致。I2C上拉电阻一端接VCAMA(2.8V,为常开摄像头电源),另一端则接在I2C线上。漏电主要是因为在软件某个地方将I2C线拉低,导致两个上拉电阻两端电平不一样高而漏电,漏电电流可以这样计算(以上拉电阻4.7K为例):2.8V/4.7K*2=1.19mA,加上正常的0.5mA,大概就会偏大到1.6mA左右。

那么可能是软件中两个地方引起,只要修改者两个地方即可。

第一个地方是camera_hw.c文件中将SCCB_SERIAL_CLK_PIN PIO和SCCB_SERIAL_DATA_PIN写0导致,那么只需将其写高即可。这里主要是在刚开机时就会跑此段代码而带导致一开机就电流过大。 #ifndef MC501CB_HW_SCCB

GPIO_ModeSetup( SCCB_SERIAL_CLK_PIN,0 );

GPIO_ModeSetup( SCCB_SERIAL_DATA_PIN,0 );

GPIO_WriteIO( 0, SCCB_SERIAL_CLK_PIN );//将其改为GPIO_WriteIO( 1,SCCB_SERIAL_CLK_PIN );

GPIO_WriteIO( 0, SCCB_SERIAL_DATA_PIN );//将其改为GPIO_WriteIO( 1,SCCB_SERIAL_DATA_PIN );

GPIO_InitIO( 1, SCCB_SERIAL_CLK_PIN );

GPIO_InitIO( 1, SCCB_SERIAL_DATA_PIN );

#endif

复制代码第二个地方是摄像头内部代码如image_sensor_bf3703.c中的BF3703_power_off函数中SET_SCCB_CLK_LOW;SET_SCCB_DATA_LOW;两条命令将I2C线拉低,只需将两条命令屏蔽即可。这里主要是在进入摄像头之后再退出引起的。 void BF3703_power_off(void)

{

cis_module_power_on(KAL_FALSE); // PowerOff CIS Power

UPLL_Disable(UPLL_OWNER_ISP);

#ifndef BF3703_HW_SCCB

SET_SCCB_CLK_LOW;

SET_SCCB_DATA_LOW;

#endif

//deleted by maliping 20101123

} /* power_off_BF3703 */

 

即使你把camera的电源关掉,如果IIC的两个引脚置为低,这样Vcc还是会通过上拉电阻流向MCU,也就是灌电流,同样会漏电。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值