|
这个帖子的LZ说了一个经验
http://www.study-bbs.com/thread-44697-1-1.html
本帖最后由 masi 于 2010-11-23 17:51 编辑
手机调试中经常会遇到待机电流过大的情况,这里只分析MTK6253平台最常见的待机电流过大情况。
此为高人指点和个人总结得出的结果,有误请高人指出。希望这贴对大家有好处。
经常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); // Power Off 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 */
复制代码
本主题由 doow 于 2010-11-23 18:07 加入精华[br]<p align=right><font color=red>+1 RD币</font></p> |
|