微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > Camera加载慢问题分析

Camera加载慢问题分析

时间:10-02 整理:3721RD 点击:

CAMERA加载慢问题分析
A开机加载慢
Description:开机进入camera工厂模式很慢 ,或者是开机加载camera很慢
正常情况下search sensor耗时不会很久,大概200多ms的样子,从 mainlog.boot.
可以通过搜索关键字: impsearch, 来查看search时间。
01-01 00:08:56.379 232 232 D ImgSensorDrv: [impSearchSensor]SENSOR search start
01-01 00:08:56.640 232 232 D ImgSensorDrv: [impSearchSensor]SENSOR search end: 0x3
/[0X3087][1]/[0xffffff][255]/[0x5648][0]
出现异常的时候,
mainlog.boot的搜索时间会很久,例如:
01-01 08:11:22.761 263 263 D ImgSensorDrv: [impSearchSensor]SENSOR search start
01-01 08:11:35.176 263 263 D ImgSensorDrv: [impSearchSensor]SENSOR search end: 0x3
/[0x841][0]/[0xffffff][255]/[0x2508][1]
对应到kernellog.boot往往会打印出
Line 14320: 01-01 00:11:24.988 <3>[ 11.732933]<2> (0)[263:mediaserver][mtI2C]ERROR,481: id=0,addr: 3c, transfer timeout
Line 14355: 01-01 00:11:26.988 <3>[ 13.732941]<0> (1)[263:mediaserver][mti2c]ERROR,481: id=0,addr: 3c, transfer timeout
Line 14828: 01-01 00:11:34.988 <3>[ 21.732979]<0> (1)[263:mediaserver][mti2c]ERROR,481: id=0,addr: 3c, transfer timeout
当发生上述现象时,请检查客户的上电文件kd_camera_hw.c,有客户会在上电判断条件中根据pinSetIdx做判断 ,如


这样做会使得给main sensor上电的时候,如果参数pinSetIdx == 1;就不会跑上电过程或者直接return 0,导致DOVDD没有正常上电,用来挂main的I2C就会没电,从而发生I2C transfer time
out.同理给sub上电的时候也是如此。
Solution:
请修改上电文件,拿掉类似pinSetIdx == 1/pinSetIdx == 0这些判断条件,让I2C正常上电。
B Normal AP 进camera慢


这里主要从kernel driver层面进行分析,
1) 上电过程,根据不同的sensor,三路上电的过程中所需要的延时会不一样,尽量满足spec的要求即可,不用添加多余的mdelay。

2) I2C写各组setting寄存器需要花掉时间(这里可以调整I2C speed),默认一般是300K,可以提高到400K. 默认情况下, I2C写寄存器一次是传输8bits的数据,但可以改成i2c burst write mode,可以一次写多个bits的数据,具体修改方法可参考FAQ08147。同时在setting中写寄存器的时候,也请避免不必要的mdelay.

3)preview帧率相关,如果默认就是30fps,这里看起来也没有太多可以改进的,由于暗处帧率较低,请在亮处测试。

4)camera开始抓取sensor吐出来数据的时间,在kernel driver中pre_delay_frame=3, 表示前三帧输出的数据会被丢掉,从第四帧开始抓,这里可以和FAE商量,看有无调整空间。

5)YUV sensor有AF,那么AF initial也需要时间, 其中AF initial是在feature control中进行控制。

6)若有做OTP,在初始化的时候会读取sensor 烧录的OTP数据,这也需要消耗一定的时间。

谢谢分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top