查看: 5463|回复: 0
收起左侧

ov9650 Camera调试笔记— 之一二

[复制链接]
发表于 2015-4-12 14:12:52 | 显示全部楼层 |阅读模式
    0 W1 J& A" l( \
   基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:- ]2 d" g+ k4 ?  J* g
1,提供给CMAERA得MCLK是否太快或者不正常
+ l! w5 T* d* {0 V2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。+ L  `( t) U5 D0 Y
3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。; o% J& m2 `' H6 E
4,量量数据线有无波形,等等, \* m! U' F0 \: g. l5 u

) j* T# q: J; O, t/ d至于发挥sensor得性能要找技术支持了。
/ O3 Q2 r- M" }& `# d8 S$ @供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  / A8 ~/ l, r5 X3 P$ n) d) s1 H! c
下面是我在调试OV9650的一些总结:
8 W8 J8 B3 b5 L' P$ U+ N: @( m6 _0 e: H2 G- c: I
步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。
3 _* R7 L9 ~) v1 v0 Q$ L如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:

- [" v. ]0 w$ l2 h6 v* ]/ `       RESULT IsiCheckSensorIss( void )
  V+ Z$ R& K- r, _! I) z8 e; k       {
1 r" s& a4 U! j% o             UINT8 pucValue;2 B5 @$ k' u2 B2 f* O! N# T
  # `. M/ f& s+ N
             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
, G1 b3 [  J) j* D0 o             if(pucValue ==0x96)//pid value of OV9650
! Q" i4 C+ `& _! W" y7 e: U3 _2 r* g1 {                  return RET_SUCCESS;: Q  Y. N. |* t9 J5 s7 F% D
             else
' y* P+ h+ D, g- l6 s& s                  return RET_FAILURE;3 I# n) b# _2 y% t
         }
9 ?* g$ ^0 @0 e5 Y
$ S, z! c: C# P! V) ~* s. t2 L步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。3 G+ t4 v, a! L( `! A
OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。& c' G; j1 @: t) r! I! {4 [
. b0 p* H" q+ z9 Z/ j1 r$ u5 k; G
步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。
, ~# Q% y1 C  l9 h      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。" H' o3 b9 r2 L

6 s3 ?0 U  j5 X9 i步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。+ V1 ~# D& `- R4 b
置 位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线, 建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好, 对控制线的极性理解一致。
& K: Y/ r( _0 @! T: D) Q- P. M) U" w. j8 G' Q
     至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。  j2 K* y1 K: K
后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。
& Q! E& k* L) r! N4 \摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?4 m( ^) X3 f* }$ m7 Q5 _4 E$ W- c, D' N
SENSOR的各路电源是否接好,
% K' j2 U9 J  r5 G7 U, ?6 cCMCLK是否正确
5 a' {4 k+ U/ q- L- q, \RESET sensor
6 ?3 r2 x+ v) T2 P2 ]% WI2C总线上拉电阻是否匹配正确,
( y/ U! j# F" }; e! W访问sensor时使用的 device ID是否正确,8 }, t- ?5 ]$ ~5 I6 ]) |
I2C的时钟CLK速率是否太高,/ O% ?& i- h- F& r% O* o
两次I2C连续读写之间是否有spec规定的delay时间& t8 _: |( b5 c; G
CAMERA POWER UP 时序是否符合 SPEC。
2 g& d: W  y. C' b% ], lcamera的工作过程(从进入相机到拍下照片为止) - p; y" o) E( y! Y, M; b
一般先给电源 ,然后给 MCLK SENSOR的 时钟  然后复位 PWDN改变极性使SENSOR 进入工作状态,让后再过几百ms 进行 IIC 操作, 然后就进入 PREVIEW 模式了,拍照的话 是 截取完整的一帧信号而已,有时会关闭SENSOR 的AWB AE功能。1 s" {. S0 |! u$ J; q1 z

  o3 D+ ]7 w/ O, ?: L4 B
& z$ m1 {/ O+ S
高级模式
B Color Image Link Quote Code Smilies @朋友 |上传

本版积分规则

在线客服

客服电话

欢迎来电咨询

188-9985 8350

微信关注

手机APP程序:
扫码下载访问

微信公众平台:
摄像头之家公众号

微信小程序:
摄像头小程序

返回顶部

QQ|站点统计|小黑屋|手机版|Archiver|摄像头模组论坛网 ( 粤ICP备18155214号 )

Powered by Discuz! X3.4 Licensed© 2001-2013 Comsenz Inc.