admin 发表于 2015-8-19 10:15:58

摄像头预览竖条纹调试分析!

摄像头预览竖条纹调试分析!
fantasyhujian


      前些天在展讯6825C 上调试gc2115摄像头,发现后摄显示效果非常的差,出现很严重的整个预览界面竖条纹现象,但是对光线变化还是有反应的,初步判断是sensor上电不对!后来经过测量各个管脚的电压,发现是PowerDown脚的电压不正常,导致切换摄像头失败,最后还是修改AVDD电压算是解决了!过程甚是纠结!
http://img.blog.csdn.net/20140310142825859?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFudGFzeWh1amlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast


   一般sensor上电分为AVDD模拟电压,DVDD数字电压,IOVDDIo口电压,这三个电压必须设置正确才能正常的打开摄像头,新ic兼容需要配置摄像头配置文件,并且在摄像头驱动文件中修改makefile,更改配置文件,编译新ic源码,整理完毕后,编译生成动态库,导入system/lib/hw,重启进入摄像头,发现显示不正常,调试算是正式开始了!
    首先是抓取打开摄像头时的log,发现是摄像头ic的i2c通信有时会失败,但是可以读取到对应的摄像头id,证明i2c通信至少是连通的,硬件上是可以通信的,只是某种原因导致了i2c通信会失败;接着是量取摄像头ic上主要的管脚的电压,切换摄像头发现本应该拉高的PowerDown管脚并没有拉高,这可能导致了切换摄像头时会概率性出现相机已停止的问题!
   通过分析代码,发现切换摄像头时确实是通过GPIO操作PowerDown来实现切换,切换出现相机停止可能跟切换过程有关,而且代码里确实是这样写的:



[*]LOCAL int _Sensor_K_PowerDown(BOOLEANpower_level)
[*]{
[*]         SENSOR_PRINT("SENSOR:_Sensor_K_PowerDown -> main: power_down %d\n",
[*]                        power_level);
[*]/*
[*]         SENSOR_PRINT("SENSOR:_Sensor_K_PowerDown PIN_CTL_CCIRPD1-> 0x8C000344 0x%x\n",
[*]            _pard(PIN_CTL_CCIRPD1));
[*]         SENSOR_PRINT("SENSOR:_Sensor_K_PowerDown PIN_CTL_CCIRPD0-> 0x8C000348 0x%x\n",
[*]            _pard(PIN_CTL_CCIRPD0));
[*]*/
[*]         switch(Sensor_K_GetCurId()) {
[*]         caseSENSOR_MAIN:
[*]                   {
[*]                            gpio_request(GPIO_MAIN_SENSOR_PWN,"main camera");
[*]                            if(0 == power_level) {
[*]                                     gpio_direction_output(GPIO_MAIN_SENSOR_PWN,0);
[*]   
[*]                            }else {
[*]                                     gpio_direction_output(GPIO_MAIN_SENSOR_PWN,1);
[*]                            }
[*]                            gpio_free(GPIO_MAIN_SENSOR_PWN);
[*]                            break;
[*]                   }
[*]         caseSENSOR_SUB:
[*]                   {
[*]                            gpio_request(GPIO_SUB_SENSOR_PWN,"sub camera");
[*]                            if(0 == power_level) {
[*]                                     gpio_direction_output(GPIO_SUB_SENSOR_PWN,0);
[*]                            }else {
[*]                                     gpio_direction_output(GPIO_SUB_SENSOR_PWN,1);
[*]                            }
[*]                            gpio_free(GPIO_SUB_SENSOR_PWN);
[*]                            break;
[*]                   }
[*]         default:
[*]                   break;
[*]         }
[*]         returnSENSOR_K_SUCCESS;
[*]}




   切换过程代码不出现,那就是ic上电代码会不会出现问题导致上电ic出现异常,根据FAE提供的参考,将上电代码改成分步式上电,避免芯片突然上电概率性的断电保护!





[*]Sensor_SetVoltage(SENSOR_AVDD_CLOSED,SENSOR_AVDD_CLOSED,SENSOR_AVDD_CLOSED);         
[*]          Sensor_PowerDown(power_down);
[*]          Sensor_SetVoltage(dvdd_val,SENSOR_AVDD_1800MV, SENSOR_AVDD_1200MV);
[*]            SENSOR_Sleep(80);
[*]          Sensor_SetVoltage(dvdd_val,SENSOR_AVDD_2500MV, SENSOR_AVDD_1500MV);
[*]            SENSOR_Sleep(80);
[*]          Sensor_SetVoltage(dvdd_val,SENSOR_AVDD_2800MV, SENSOR_AVDD_1800MV);
[*]            SENSOR_Sleep(80);
[*]         
[*]          //Open Mclk in default frequency
[*]          Sensor_SetMCLK(12);
[*]          Sensor_PowerDown(!power_down);
[*]NSOR_Sleep(20);   
[*]          Sensor_SetResetLevel((BOOLEAN)!reset_level);
[*]          SENSOR_Sleep(20);   
[*]          Sensor_SetResetLevel((BOOLEAN)reset_level);
[*]          SENSOR_Sleep(60);   
[*]          Sensor_SetResetLevel((BOOLEAN)!reset_level);
[*]          SENSOR_Sleep(20);


       测试发现还是概率性的打不开前摄,而且后摄也还是花屏的,仔细看了gc2235的datasheet,发现AVDD工作电压是1.7V—3V,拉不高管脚电压可能时电压设置的不够高,修改后发现后摄终于正常显示了,而且切换到前摄发现也是可以进去了,只是发现还是会概率性的出现前摄相机已停止的现象,甚是奇怪,到现在还是没弄清楚这是为什么?
   以后有时间还是会继续关注这个相机概率性停止的问题---未完待续!!!   
版权声明:本文为博主原创文章,分享是一种美德!未经博主允许不得转载。

liuhanqing 发表于 2015-8-19 10:54:30

“AVDD工作电压是1.7V—3V,”
怪异的设置。非要做成单电源1.8V供电再内部升压?
这种现象也许是针对性的。

essam 发表于 2015-11-30 14:26:01

AVDDD格科产品一般都为2.8V

admin 发表于 2015-12-3 08:11:05

essam 发表于 2015-11-30 14:26 static/image/common/back.gif
AVDDD格科产品一般都为2.8V

摄像头芯片模拟电压是的一般是2.8V左右的。
页: [1]
查看完整版本: 摄像头预览竖条纹调试分析!