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

ov9650 Camera调试笔记— 之一二

[复制链接]
发表于 2015-4-12 14:12:52 | 显示全部楼层 |阅读模式
    2 G& ]& U+ r4 L1 F+ m6 N+ A
   基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:
& F& O2 h% Z/ n( G2 u1,提供给CMAERA得MCLK是否太快或者不正常% H5 A, B1 Y8 k
2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。6 W' ?/ d( C! S+ I) r: N! ~. a1 R; E
3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。
. e; q" z/ G; \6 J- ^4,量量数据线有无波形,等等
. f; o! o/ T. Q! N

& S7 b0 Q, S$ Y至于发挥sensor得性能要找技术支持了。
" \7 y7 A8 S2 c# }. Z0 F8 J供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  / O; z7 _' G+ R* H- \, J1 y
下面是我在调试OV9650的一些总结:
: S1 h7 A8 A2 `( V2 J8 F3 N, \: f0 R: O: X
步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。
( L; T6 h1 ~9 W' l% `6 ^1 i如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:

: x7 I2 o. Y  _  C8 O/ C1 u       RESULT IsiCheckSensorIss( void )9 M5 @0 C7 R. w
       {7 g" g6 e) T5 u6 u
             UINT8 pucValue;$ r1 @. `) z" V; H6 f  d
  , x) v1 Y) D# o1 B% g/ n
             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
8 O' z  c) |2 O8 Q8 G* |             if(pucValue ==0x96)//pid value of OV9650
+ S! J8 f+ a. [1 A# R8 [                  return RET_SUCCESS;5 @+ _2 f3 o' a% ?  Y4 I
             else2 b# N- X2 f/ t  ~# @: f+ j6 z
                  return RET_FAILURE;9 t5 Q+ t4 p2 w
         }
& [8 R" l& j# R4 v  j+ j9 Q3 V; U3 C$ V2 L2 d: C& J! ~& o
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。
  C: M$ z1 j7 Q  r% ZOmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。9 d0 M% a" p! @6 n3 T4 [2 b% b

! O5 k. ?& Q6 D, v0 U& H; j) c/ B步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。& }4 y3 N$ K% a# ~0 p
      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。) k: q' J. m% N7 l0 p0 f% n, o& e" h
2 ?; O! E/ X* R4 f, n7 Z
步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。
# w& T* ?$ Y9 T! c+ O3 b% z. H置 位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线, 建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好, 对控制线的极性理解一致。( i7 ]* ]1 I5 t. u
" O' v/ K  o* h: R
     至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。
3 l" q2 |9 `2 t( l$ B后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。3 S- b0 R/ O" F, A5 R& I
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?% s+ ]  B5 H- r& U! `" z
SENSOR的各路电源是否接好,
% c; Q; U8 o  y3 b  y: F1 \/ w# WCMCLK是否正确
  C* f' ]% G! R& h' |- rRESET sensor2 \! q0 O4 c1 b% u2 \
I2C总线上拉电阻是否匹配正确,5 S4 ]" I) U$ b  l
访问sensor时使用的 device ID是否正确,
1 D3 @+ l/ g! X: A$ kI2C的时钟CLK速率是否太高,' a' u: ^5 d: b5 o( L8 p
两次I2C连续读写之间是否有spec规定的delay时间; B6 x1 y: U5 \0 C
CAMERA POWER UP 时序是否符合 SPEC。
1 |* E/ g( ?$ f& D2 a6 q) ycamera的工作过程(从进入相机到拍下照片为止)
# W0 V" _0 Y& y9 t1 e0 g一般先给电源 ,然后给 MCLK SENSOR的 时钟  然后复位 PWDN改变极性使SENSOR 进入工作状态,让后再过几百ms 进行 IIC 操作, 然后就进入 PREVIEW 模式了,拍照的话 是 截取完整的一帧信号而已,有时会关闭SENSOR 的AWB AE功能。: x3 c4 |' `. y/ ?2 @# ~  \9 e. W4 s8 f; v
& e; M2 x  z  {3 X( J* F7 @
6 {5 R' p8 @7 }! l$ R# q
高级模式
B Color Image Link Quote Code Smilies @朋友 |上传

本版积分规则

在线客服

客服电话

欢迎来电咨询

188-9985 8350

微信关注

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

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

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

返回顶部

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

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