Camera调试常见问题及解决方法 [

Camera调试常见问题及解决方法 [

ID:38220880

大小:24.85 KB

页数:5页

时间:2019-06-06

Camera调试常见问题及解决方法 [_第1页
Camera调试常见问题及解决方法 [_第2页
Camera调试常见问题及解决方法 [_第3页
Camera调试常见问题及解决方法 [_第4页
Camera调试常见问题及解决方法 [_第5页
资源描述:

《Camera调试常见问题及解决方法 [》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在嵌入式系统,如手机等平台上使用的Camerasensor通常是由类似I2C这样的总线进行寄存器控制,由CPU端的Controller提供所需的驱动时序,通常支持YUV和RGB等数据格式。有的Sensor需要由CPU进行图像处理工作,有的Sensor自己会集成图像处理芯片,完成一些基础的图像处理工作,还有些高像素的Sensor甚至自己完成JPEG的编码工作。因为硬件的多样性,我所遇到的问题可能和你的原因现象都不尽相同,分析内容仅供参考。Sensor端I2C总线没有响应,V;I  m)S)?.m-O%h4T·症状.C6Q,p7T3S3y+I+@%v8R'`)b$O   

2、   所有输入电压和时钟信号都正常,往I2C总线上写入读取寄存器数据的命令后,sensor没有响应,没有数据从I2C总线上输出。0q(B3K#?$c3S  e#~-s;Y0[)I8P:E*^0n!o*W&e$B$[6Q(?#·分析7a%U(L/s5

3、#~,]'r.[5[!c3p.~({7y#O"_9}3{  因为测量发现一切输出信号都正常,所以往往都会怀疑Sensor硬件存在问题,不过99%的情况,实际的原因总是因为I2C总线的ID值没有设置对,导致设备不响应命令。据我的观察,每次一个新的工程师在调试Sensor的时候几乎都会遇上这个问题。5U'_4W+r"T#R9

4、q)

5、-i;?,_(K1a/T1I  之所以这么容易设置错误的原因,是因为通常CameraSensor的Spec上所写的I2CID号,还包含了最后一位读写方向位。而这一位在I2C总线的定义中,严格来说,不属于ID的一部分,所以LinuxI2C的驱动API中的调用参数里的ID号,通常是不考虑这一位的,读写方向位会在具体的读写操作中,在寄存器中进行设置。:M.`9l!K'x6{,q%y!B0l5q+o3b:O;n*U·解决;t.A&T+v$F6l)V%z9]6p3^4m9b.g1d)z  例如Spec上会写读写寄存器操作I2CID分别为0x64和0x65,实际调用API时

6、应该使用0x32作为该设备的I2CID3O1H*q+C!O*T图像中有不断变化的细密的水平条纹·症状/G0j3f$D#J7[1L9i([*j#]7]:}5v,w  与荧光灯的频闪造成的大面积的滚动水平条纹不同,表现出来的是一个像素高的水平条纹状躁点,位置不固定,数量比较多,而且随光线强弱有一定的变化*u(]&s+Z2u$U#?3S+c*v:l'j;J:v·分析2H)I#s8n  q-C+k+p  因为设置某些sensor寄存器的时候,会影响到这些水平条纹的颜色,所以基本上排除是在数据传输过程中板子对数据造成的干扰,也排除接触不良的可能性,应该是数据在sensor内部已

7、经存在这些水平条纹。  此外相同的初始化序列,相同的sensor,在厂商的demo版上也没有发生这种情况,所以也基本排除软件的问题。  最后,发现原先为了节省硬件成本,将sensor的两个电压相同的模拟电和数字电由同一芯片输出供给,导致两者之间互相干扰,影响了sensor的正常工作)n1z8}1M;t-x2j8

8、:F.b/x  R#h.s$k  f(p/X1@·解决(`/L4X*P#_-m0F5r*}-N*p  将模拟电和数字电分离单独供电0C&j;z0],R3T  p+E%H5@;B$~&R2e*q,Z!S9R)B7o6?图像上有固定的锯齿状垂直条纹·症状8?"n,

9、q%_+K5c.f;I)S4X!^;v)w(r(D  图像上有明显的垂直条纹,全屏分布,非常细密,好像百叶窗一样。  I"x9Y  h  v/n;T·分析;c!f7N1S:V0s"z7

10、$h&[;G)y'^(q;v5

11、%^  仔细看可以发觉该垂直条纹实际上是由于图像上相邻的两两像素互相错位造成的锯齿状条纹%a"q"d4_(z  仔细分析spec可以看到,由于sensor是按字节送出图像数据,在RGB565模式下,两个字节表示一个像素。而在我所使用的CPU的Camera控制器中,数据是按4个字节也就是一个字为单位处理的,由于CPU这端是按LSB方式处理数据的,所以在

12、一个字内部,未经调整的话,两个像素的顺序是颠倒过来的。也就是最终由DMA将数据送到内存的连续buffer中时,像素的顺序是:像素2,像素1,像素4,像素3。。。6I"k&b1V:{$V1w  P8^-j;v,[3[$M3e7

13、&b5s.k#e:n'9M·解决+B9h5b.X'r;a%X)k&V:p$p1Z"O1b9P5N  用程序调整像素顺序,为了减少附加计算对CPU的负担,可以将这一步操作合并在其它类似颜色转换或PACK模式转Planer模式等操作中。-U*~/R)b+M0E5{0Q/~&k![&}'P  E#z([大尺寸时容易出现图像错位·症状

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。