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

ov9650 Camera调试笔记— 之一

[复制链接]
发表于 2015-4-12 14:18:55 | 显示全部楼层 |阅读模式
   经过4天的调试,摄像头终于可以拍照片保存到电脑上来了,ov9650的调试走了不少弯路,一些教训总结如下:
7 n+ `& i' M* @# N+ n1:OV9650是OmniVision公司的COMS摄像头,号称有130万像素,但是实际效果感觉不如CCD的,特别是远处的背景更糟糕。
9 U% O0 h7 p6 _
0 [1 K7 N/ o( A4 B9 Z' F4 w" k& z
2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错

* a" g) N- W- C  o& v7 j0 b: a8 ^% |& X2 Y' }: A/ Q5 J
3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错

, u% ?5 t( J* g" m2 [5 m% L+ L- U1 E$ z2 a6 n
4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错
$ e. E6 M: V0 u- e" g

  D$ \8 z% X! Y5 p5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的! , Q7 a  {2 K' \

: D0 p+ q' O, N9 G8 n; _1 x我觉得调试步骤应该如下:
, A0 a# i9 K& h  d+ J! T  j一:先要保证硬件没有问题!

9 Q9 K% Q/ q# V& t& t* u    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。
. c% H+ i0 x$ z; E

! B& T# s: [" ^# a7 ~9 D    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了!
& U6 ?! n3 \; {9 A( E0 B6 S; _    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的): " f, Z/ [3 K6 m4 E/ v) [: Z
           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。
$ W1 O, g7 j0 h& K. R. d' ]0 K           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。
  r2 v( s" T7 P* |+ h/ {) h           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms)
5 V" @2 j1 x" M* x           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz)
8 @1 s9 l" ~9 T4 x           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.
: ?# f# @0 V# ~, X. @' }
' l3 E3 M# Y9 i
二:OV寄存器配置:
/ y/ A3 d3 M  _1 e1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省!
# n6 Q; R, h, \' _; J* D0 h. `  P2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。
) t5 }+ y. v; V: _3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。
( D6 R) ~, B2 C4:如果配置大体正确,现在摄像头的数据应该出来了。 + p$ ~& q, A( t: h
' Z5 c! [' q3 I# p. {% S% ]
$ s; N8 s* q9 Q" u4 o  `) o
==============
3 u# m1 T. X! N; c  h7 S以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以!
) K8 I2 s+ g9 Q% g# P: b7 e2 E1 p; D5 V3 W8 e
;09032004 4 i. U4 N2 n; Q4 z: E
;OV9650 + m# B1 }; v% }$ K
;VGA YUV $ f4 M2 m. ]" R
;15fps when 24MHz input clock   Z6 S  C9 r' l3 L& A4 L
;Device Address(Hex)/Register(Hex)/Value(Hex) - K9 u( T( s/ l7 `. W7 l
;
1 U6 S7 W8 C( }  P5 Y* a. c60 12 80 0 v# d; S0 _3 t) i3 S% K4 |( Q2 a
60 11 81 * l6 u7 [6 G' y% z
60 6b 0a
3 L! ?# |3 X) a, _60 6a 3e $ O9 J8 i; x9 r
60 3b 09
9 e* U" O: F' g. |9 t60 13 e0 7 H' E  {6 |7 G0 ?2 x9 q' A
60 01 80
' ]/ w# k* y1 x5 h. W4 J2 R60 02 80 7 q: \- S$ U; V. e; ]6 \2 [' r
60 00 00 4 V5 g( x. U# O! G) ^
60 10 00 % S3 r, E; U3 I5 W: B
60 13 e5
) {- D) i' g0 U; ! B$ @4 ]. E7 U3 ?
60 39 43 ;50 for 30fps # A: Y: u$ V2 [2 E$ ?/ A1 j
60 38 12 ;92 for 30fps ; m; l- R' q6 f9 |! o
60 37 00 * I; O2 W- e# ~. E# e" v9 A1 B+ U
60 35 91 ;81 for 30fps & \: i! I+ `6 U7 B3 i
60 0e 20
3 d" _# E$ s* E: O1 A5 M! h60 1e 04 # i# r% j  R4 k8 {3 ^; u# w
; + C4 a1 s- u+ G6 U" {% }+ s: F
60 A8 80
( T0 ~8 r; w- ?+ J. k& x60 12 40
- ?7 D- N  _$ i* q60 04 00
( ?2 A+ p- j, J5 d' K! c60 0c 04 ! D( y" i1 e# H6 l6 D% b
60 0d 80
9 T. u* }! z1 s/ _4 _6 p' C% @60 18 c6
" y  y- E( j( ^/ _7 _/ g- t60 17 26 % V3 w: k  v' m: T$ U
60 32 ad ( W/ H7 U- R( c+ M( j6 p0 Q
60 03 00
3 R( B5 Q3 \  S/ c' O60 1a 3d
2 P5 \1 S) s' X& J$ A) B% o! K60 19 01
1 ^/ n2 I1 a: O8 H60 3f a6
+ b6 D3 f- p: H3 N9 y7 W60 14 2e * G- R2 f- L+ E' t
60 15 02
& V6 L, n, n2 R" j8 R; q0 M+ l60 41 02
' @3 p" D+ C4 S3 g60 42 08
  E7 b3 d: L1 g;
8 H$ F+ I/ O3 \  o60 1b 00   ]! A  u( [0 v" g
60 16 06 / }/ }6 L; l- ^" P9 [3 k
60 33 e2 ;c0 for internal regulator ) [  R9 |1 q/ n8 I+ f' F8 \1 ^
60 34 bf
/ F/ e5 L% G. ~% F5 E: n60 96 04
8 u0 J! }. F7 @: S$ w( p- V3 m60 3a 00
. l! G5 W, _1 S; y# U8 V# @60 8e 00
& d& O( v' d1 Y( q, U;
9 |" j" b) r5 C9 S5 R: Y60 3c 77
* o( a$ v& c- ]: G6 Y% l8 A0 h60 8B 06
, j1 D9 C, F. l( E' m9 B# a+ w60 94 88
. Z2 i2 V: d. r5 Y! d60 95 88 0 S% g* J  x; w$ d1 L  B7 j' G8 E
60 40 c1 1 ~( Q! K* g4 ?
60 29 3f ;2f for internal regulator & a$ M) ?+ a" L2 Y
60 0f 42
. `) s& d" L% W0 ^6 }& F; ' P4 |" d3 p) ?  T
60 3d 92
5 ~! j. Y1 w0 Z+ x5 }% ^1 f$ N, g60 69 40   W" c& s" ^" K, X, _' y: f
60 5C b9 ' ^5 f$ w. d8 n- H/ c" `
60 5D 96
, U/ @/ C) u& J% q. Y; j9 Z% |60 5E 10
6 l1 w, V) h" @* D2 y5 Q  N4 g60 59 c0
. o- g) w& b; A: N! ^60 5A af * M3 y9 E! H; q. D7 ~+ Q; E
60 5B 55
* q+ M9 d5 F1 w" F% i60 43 f0 ! U$ h# ?3 `3 w% j! |' o( U4 |
60 44 10
! [* h  v  d9 T6 ~$ z: ]60 45 68 ; x6 B8 g! z6 H% k( A
60 46 96
# I# \6 ]1 B. _* U60 47 60
0 z( z+ X+ L2 z( b0 N60 48 80 7 E9 z( D+ |! E8 c% Q
60 5F e0 6 U* u1 q! U0 K, F% S0 I  u: U
60 60 8c ;0c for advanced AWB (related to lens)
' Q8 J, ^5 s5 n( l& Z6 Q60 61 20
: I4 \0 R2 v  c2 @60 a5 d9
& p4 `# [7 x5 B2 X2 J% U60 a4 74
' g2 n5 X, s6 P2 b3 z7 Q- p60 8d 02 7 t# ]$ `' a. v+ M  S0 j
60 13 e7 8 h( ]) X, [# g  Q$ d7 c
;   r7 |; y& X) _8 q9 G# Q2 w: R% U
60 4f 3a
/ k1 W! _6 B6 E5 k5 P60 50 3d 8 O3 N( H* |% H$ T: o
60 51 03 - G* Z+ U4 v9 }3 c9 K! T7 G
60 52 12 " j+ K$ L4 D( I$ P- X& K4 Q# v& E1 p! |
60 53 26
/ a7 m. n% }! l  J60 54 38 , U: ]3 Q+ U; s+ Y
60 55 40
  Q8 Z) k- R, ?5 L8 v2 I) W" S- E60 56 40 ! |9 b% B' G& [/ U+ {/ t1 n
60 57 40 & _+ `# z8 Z  ?/ J5 L0 z0 [6 B
60 58 0d ( e/ e# \3 y! g8 T4 _, A' W
; - R7 N7 \1 G( O* |" y8 @& A
60 8C 23 : F7 W$ E# G2 m) [  ?5 B
60 3E 02 / f6 G1 R8 b3 C2 b! Z6 @6 s
60 a9 b8 1 k# N3 a% w4 `
60 aa 92
0 N9 |, X* L4 x) i60 ab 0a # l6 V, U$ n; O. h! g
; 8 N4 f$ G4 Q. m2 j& d
60 8f df ) k" x$ q2 |; e: l( A
60 90 00 * P0 V7 J2 h5 m7 b
60 91 00
3 I2 M' e: l4 i  L* C3 o& _  V2 F60 9f 00 6 F$ T" u. l& t( f% Z, |3 `
60 a0 00
) _# {% M1 x3 O# ~60 3A 01   b0 `' E+ {9 \8 B6 {, E+ s. I
; ! w$ ~4 w9 E9 o3 W; Q3 N* l
60 24 70
# ]$ Q/ H5 w) o# `1 M: ?( Z0 G60 25 64
! ?& z4 p+ C8 v8 g. T60 26 c3
  r" G+ _0 {. _& ^+ V5 a" c/ w;
! r  y2 P% Y8 l1 C5 I3 A# H8 o, A* Z60 2a 00 ;10 for 50Hz
+ q1 g$ N; C7 Q0 m* [: e$ o60 2b 00 ;40 for 50Hz
! D7 ], E: F1 o; ; r+ E3 v+ Y, S2 ^5 I5 w2 k
;gamma 6 Z4 w1 z( }' n2 F
60 6c 40 ; c9 ]) ]/ W% S5 l
60 6d 30
" d6 `# X/ T8 C0 `1 n% ?( Y60 6e 4b
; V/ B/ M9 C4 O) y3 H0 I: r' [+ D* `% D( r60 6f 60
" Z7 Q( Z+ D: C60 70 70 5 U2 x: z; k# l, s/ r. O2 t6 y
60 71 70 ( w" t" F+ \, j3 w) ^, n3 }/ f
60 72 70
' i1 R' I( G- w' A. V/ R60 73 70
5 V/ b0 K& ^) V- T60 74 60
# @2 m+ T5 Q5 V60 75 60
: m/ b% j7 X3 B) t) I+ v& g+ z60 76 50 5 R, i9 x4 G4 u) j, s
60 77 48 & r$ ~3 d) f* @7 [" v2 m- {
60 78 3a
1 G; _# q# g' t! J1 S2 b7 ~60 79 2e ' O0 G3 {7 a- \$ G
60 7a 28 0 L. s/ k8 y. @1 ]
60 7b 22
0 [8 ?  e" y/ r8 r0 e60 7c 04
1 M9 k8 |; \7 t$ n" U, [' h60 7d 07
$ m9 m6 X* m9 h; i1 V60 7e 10
% I1 S0 n% p5 y, }  {9 ^/ D. `; w60 7f 28 # I9 f, `6 v9 K/ u  K: C) \8 O
60 80 36 & |! y; E4 @. `. O$ h8 `4 Q- z- Q
60 81 44 2 k7 F6 H5 ?; }/ O
60 82 52
2 v1 z' T' B0 j$ h" y6 k7 V/ F60 83 60 8 E& }" ^, S* \
60 84 6c
2 ^! L- |! n( b4 c+ ?7 ~8 L4 m+ w60 85 78
- o/ T- s' s/ c, W1 q  U60 86 8c
* _6 P& R: {- V3 ], ^4 u6 R" H1 h; d60 87 9e
! U, O2 P6 ~( Y/ A9 [' Z60 88 bb
5 ~9 n3 C5 M4 W4 Q, ~60 89 d2 8 o( C* ~! C9 N7 z/ ?/ y
60 8a e6
9 q7 l/ @! G7 o+ ]; ' ?! }- k  Z  U7 E
& r1 h1 F1 D+ |$ M2 Y
============== / Q( A5 D8 r7 l8 q5 m. d- D4 R: `
;09032004 " @/ I+ {+ N. `/ @1 m, y* {% y, d
;OV9650
( j6 J" w% e' U5 M1 p1 t  F;CIF YUV
  _- ^+ K, n; D;15fps when 24MHz input clock / [/ i/ N/ V3 }1 g: P4 V/ n( F
;Device Address(Hex)/Register(Hex)/Value(Hex)
+ q  A) H" w7 \; , j0 g$ ]0 N/ p# G6 J! }8 t
60 12 80 ( P( m9 E4 S! Y. p% u7 ^8 d
60 11 83
# x* ?9 B* y7 w9 p% I( O$ r% b60 6b 0a 2 E1 r( j1 @2 |; M9 ~9 i6 k3 i
60 6a 30
& T/ a# X* a) d8 _: k60 3b 09
- t' q; [' \' @1 G2 h. y7 c60 13 e0 1 {% A3 l. X; ~& z4 n; z
60 01 80
$ w! Z% Q& w. @0 C" u$ R3 X1 I60 02 80 & h6 i; |2 h- p  M. x
60 00 00   f! g, ~/ g& D( l% y( u
60 10 00
, C3 g- y1 k% h% p60 13 e5 " w9 ^, b' c5 ~, i
;
( ?# _0 o8 o! D' [( ?* v- F9 r: @60 39 43 ; T( \  b$ k! Z+ T
60 38 12 ! j5 @3 B$ E9 b. W( R
60 37 00
( L- D6 o5 D6 _7 K" c60 35 91
0 A. J- O! F& L% p1 Z6 j" g7 j: I60 0e a0 3 m6 h+ O7 i" f; X
60 1e 04 $ C" N! }. e( k
;
" [% L4 b2 c8 z6 ]60 A8 80 2 g& V' C5 ^  c$ j, T
60 12 20 0 G( m; s( w5 c6 ]% r( g2 Y/ e
60 04 00
' t# K& l( F& z60 0c 04
% p+ w; r$ y7 K4 ?+ s! q60 0d 80
" A1 {! o. {/ i/ X60 18 7e   O8 ], E5 F) g. B
60 17 26 / n7 Y8 }" @& q) _+ m! x) G
60 32 24 * K" X+ [$ b$ x, |9 R1 y4 u
60 03 36
7 @- q: m! z* C' z60 1a 24 # m" y6 s- ~- t( l
60 19 00
, ^+ Y; N( r: Z5 f60 14 2e ' _% M! [7 m+ O$ X, x/ H4 e
60 15 02 5 V$ O' j* ^) h3 ?3 ^% s
60 3f a6
! F+ ]. g8 Y6 Z60 41 02 " y& y5 C# w1 M
60 42 08
0 x2 Q! `4 s  p' r; o, Z% Q% Z;
2 H# e$ i( F( G% l% T4 O) V3 F60 1b 00
  `, l5 C! @- w: P60 16 06
8 y$ l% f$ ?6 U- W! X# H$ O( u60 33 e2 ;c0 for internal regulator
. P5 E' k4 a9 e  V2 w4 K60 34 bf
% W: G/ i: Q! z  [# O60 96 04 " f! c7 f5 ~, c
60 3a 00 0 g6 \' D9 H3 m0 z! i! \
60 8e 00 5 |  F9 O7 R0 f. X
; + K5 D7 n3 M- w2 J' P0 c
60 3c 77
& \7 M+ [6 \- e6 n1 Z60 8B 06
1 m9 S4 W! T4 O9 L" j* n60 94 88
. c8 ?/ t" d) [3 C7 f9 |60 95 88
" g" Z4 e- y9 v2 z( T" }60 40 c1 , I, }$ _1 ]) u9 v' D7 J4 d# f' G
60 29 3f ;2f for internal regulator
8 V2 z$ m' e5 z. u5 c# y- a! P) V60 0f 42 . W+ l' w4 I' B$ S/ J$ c
;
& x" Q: y' `; k- ]3 t+ H' H60 3d 92
) o! T7 u- N3 F6 k  Q; X60 69 40 4 p6 B& o) W5 C9 t8 i
60 5C b9 ; U0 Y3 W, \) t& @
60 5D 96 " O: f6 ?0 i1 D* T* x
60 5E 10
. W* g$ O- |: M+ `- G/ t0 b  v' m# Q0 U# N60 59 c0
* K) U( e& G- {  b$ t60 5A af 5 ~" D8 j- ^1 g) j
60 5B 55 6 W/ p1 t+ ^4 H6 B
60 43 f0 7 m5 Q4 \9 N& A; O$ s. g. t
60 44 10 % b* ?& O2 C( k6 t/ ^8 f3 d% M2 z
60 45 68 1 P) M1 y& n! P1 U# J) E9 Q* h
60 46 96 7 p& N2 C% j3 z) k( n7 v" Q
60 47 60 3 L# \. O% J0 H! }$ i
60 48 80
% R' T2 w7 C3 s& K+ r$ Z, \60 5F e0
8 F; r- R  g6 }( @2 j7 v+ W. t# P60 60 8c ;0c for advanced AWB (related to lens)
* C% p  s: o  `" s+ Y& h& ?60 61 20 4 o0 W& J: D: m0 y) e# W  s/ F# h  Q
60 a5 d9 " m+ N4 ]0 v$ y5 X6 O- _
60 a4 74
% U- [  p) n* _; H3 K$ a60 8d 02 6 [7 R' ?! B# j$ U% v, V
60 13 e7 4 ]- ]0 z0 F5 _" z
;
7 \$ K. c2 Z: y% H2 a7 @2 @+ S60 4f 3a   e1 `/ D% S- _- k5 `! A
60 50 3d
  k) Q9 s1 E4 k. F60 51 03 + @3 `4 D% A( o& t( w$ o) L
60 52 12 , p- {) t- R& D7 @. k7 b: i/ N  h
60 53 26
" |# K" h1 H+ p0 f! u60 54 38
& o& v4 z0 Y, s! X. ~0 @) P9 F60 55 40
5 H, o+ M% v; ~/ Y1 o3 c' J60 56 40 . A2 t+ w( M! D6 G" v
60 57 40 " ]" G# e" ~. F' \6 _) X
60 58 0d
; M& [: |% g; n' I+ U: A; , O2 w& s, V6 I5 ^: [4 B$ T- N
60 8C 23
$ U1 L# J# a( N( {9 ^6 _( B( E7 {60 3E 02
* I) Y0 j5 X/ j# g) c60 a9 b8
2 Z7 S* w* T0 U7 O60 aa 92
: n* d( P  f, a3 L60 ab 0a
1 v& s$ G* Q# I; Q; t1 o- K;
- E$ w" D2 A" V" Q60 8f df ) s  P$ `. J6 c/ B' B: y: t
60 90 00
! n& V0 K8 l4 b+ r3 q' ~4 ?60 91 00
( K3 g3 [$ ~# |# }$ n60 9f 00
% [3 v, I. J% G, |9 |6 q* X( ~60 a0 00
. |3 E: u' ]% _5 m60 3A 01
. f4 E. {  J9 ~: c$ ]  M; . k# q9 D' D$ L- `
60 24 70
% ]1 {- @, |5 ^/ h1 t# t; ?7 N60 25 64 . f) |: O; Z! w  }8 k' s
60 26 c3
4 i4 }; d  s1 w$ R8 r. ?;
; m; [" S* G+ R- Q2 u60 2a 00 ;00 for 50Hz ! h% e0 O, `: ?6 }# ^, x
60 2b 00 ;D2 for 50Hz   d% X! u$ y* p( h) K" I
; 0 J3 J5 _6 B; y8 V% X9 Q& @
;gamma 4 I  \* d  c! [# p4 v
60 6c 40
- \% ~( g$ u0 \60 6d 30
5 ]' N$ Y1 }, g5 m60 6e 4b 3 _& v6 f$ Z7 I  d+ S
60 6f 60 % y5 ]/ p% E0 D/ N6 W
60 70 70   t  i1 m, l2 `9 y% }  v
60 71 70
: C: q. d+ v* T  }) t) h. o60 72 70 + [6 N4 g$ b* j0 ^
60 73 70 & |2 s% ]$ v/ l5 G
60 74 60 4 i3 K: F. b. J$ C5 N
60 75 60
7 A/ k1 o9 H5 V; M! F9 D60 76 50
0 \& T2 |' g. F  e4 D+ x5 r' a  ]60 77 48 : J9 l! }0 _0 ]2 E' P- w$ |
60 78 3a
# I% w* W9 v+ X' F, [. a+ d, B60 79 2e $ e; o2 n! q/ Q$ K( }& q: g2 m% X
60 7a 28 9 _( Y9 ?: X/ G  @, }% S
60 7b 22
2 m. R/ |7 u! O( J60 7c 04
6 ]- Q/ L2 ?  R' f; \* t60 7d 07 5 I9 O0 |- A% q$ z' E. ?, o
60 7e 10
& i: U8 I+ g% ^( ]$ K, S60 7f 28
4 P: R  ]! \; U' o; h5 p5 m60 80 36
) `1 @0 A: L' F* |1 M! W% ]60 81 44 ( [4 R% M+ L# h! {
60 82 52
- C8 O1 }8 A4 n* U% V2 A: l60 83 60 ! y3 z1 {$ X* U2 n9 b
60 84 6c
6 n5 j( p9 K; C  b0 y0 ]4 ~60 85 78
" W2 v! [( n7 q1 \60 86 8c 9 g) S- _% f9 B# W& `% r
60 87 9e
9 h7 a7 W+ P$ C60 88 bb
2 i+ g3 d: d3 j, M, K60 89 d2 / z! H7 x, {1 }9 x  W3 m. J
60 8a e6 5 @" r! ~" V& a
;
; F# d$ D1 T0 m4 ?) s8 T$ s& J1 x! Y
================= 1 s7 \' f/ D  o/ Q
;09032004 9 c: H/ t) p" m8 Q  @
;OV9650
& o+ M" y" W0 j. p5 @& \, R/ D;SXGA YUV , B! g' K! t% @. P8 k) b! l
;7.5fps when 24MHz input clock * m& S2 D7 ~, o7 K6 E2 Z; f/ f
;Device Address(Hex)/Register(Hex)/Value(Hex)
2 D( r! m) \: g; 5 h1 A% i4 \5 \9 G: S" S) H8 _
60 12 80 , w. B; l6 W! ]  I  x
60 11 80
* F3 D  w. y3 |3 R+ e60 6b 0a * h! H4 ~, ^( a$ j" h% p5 \
60 6a 41 / B5 Z- R# h  T& w, U
60 3b 09 . N6 J8 @7 y) k+ t# W
60 13 e0
& O) c& @0 Y! x60 01 80
( f  o* p. N0 e3 f: O60 02 80 9 o5 x# x5 n, A
60 00 00 $ R) l: [% Y- c  q4 M) s# _  }
60 10 00 - D: v' o) w& B, B
60 13 e5 9 ~$ @$ Q& x# G! a5 L0 K% |
; 6 y5 p" |) r. e$ s1 X
60 39 43 ;50 for 15fps ' }- d0 Y1 a3 X* e# I7 Q
60 38 12 ;93 for 15fps
$ N* Q$ }8 s: y7 {$ n60 37 00 : G- e7 |, l7 p! e
60 35 91 ;81 for 15fps
2 Y6 A) R' t3 R7 W1 e60 0e 20 2 q2 H9 r8 W: e4 I5 j
60 1e 04
! J% W% }7 E! R9 ]0 k' n; 4 t7 F6 H1 ?4 v
60 A8 80 % d* P. G- r  d- Q1 R7 q  _2 i
60 12 00
% j* d0 [. T& y. y60 04 00 5 b1 V- C8 g+ i8 X1 h3 y
60 0c 00 5 a# f2 }* P! A$ G: H& A9 S
60 0d 00
& b5 S) o6 o4 A0 W60 18 bd
/ w4 R, b1 a3 E: S60 17 1d 3 l; ^, U8 Z. s
60 32 ad
" {  ^$ f, L3 H. P2 m8 W60 03 12 4 P4 _+ b& o* D) I% q! v
60 1a 81
2 e6 e$ F' P( @2 F1 l60 19 01
$ C2 W: j+ F: [  g60 14 2e * J2 W$ j& Q& }2 N- v, U! ~5 ^
60 15 00
" Y* o( D) r+ ~* V& E60 3f a6
* n5 Q& y' M7 h' S" G0 e60 41 02 " L9 K' u( I. w  ^
60 42 08 8 k/ h0 ~  ]0 B  z6 ?* d
; ' T: a: A" f0 d5 H8 Z8 N
60 1b 00
' B$ Q# c0 z* Q6 ~8 C- c6 P9 c6 r60 16 06 * h6 I: r9 }, O, d- V: f' S! I
60 33 e2 ;c0 for internal regulator
7 Y! r1 _* _7 q  {60 34 bf $ \6 f4 ^- j: q/ e( p4 a# J
60 96 04 . D; ^* B: @& {: W
60 3a 00
/ [& `$ b5 N5 u5 \, {/ k, N60 8e 00
0 ~% p% _0 S  T& h;
5 G5 G% e4 e5 @/ `60 3c 77
& E! ?9 g3 M6 b) I' r: n60 8B 06
6 p! B# ~$ [0 Q60 94 88
1 H/ w* ^" s& Q- }60 95 88 4 N+ Z. g* i# I5 V0 ~
60 40 c1
" L) A- D. m, x9 [: i60 29 3f ;2f for internal regulator
/ i% Y/ c$ [8 F" ^60 0f 42
4 q, J0 V' r+ F: @* ~; 3 }8 r. X  M. ?# @0 s
60 3d 92 # ]# d$ {. t7 O
60 69 40 1 A7 ^/ x' N5 I# l. D+ u7 U3 u
60 5C b9
' E# p0 ^/ `" M: w" ~60 5D 96 8 |4 T; S- r( J8 m& i$ E' m5 v8 e* s
60 5E 10 ; J. R7 z, s. h6 \7 d: s! |0 Q+ b
60 59 c0
( j' R5 F: o: F, v# Q60 5A af 6 s& D( Q; ?+ w+ E8 l2 z: D% T
60 5B 55
+ @7 O" O, O9 ]" g' S* ^/ d60 43 f0
1 v& Z' m- |5 p0 _" M60 44 10
2 s, H! m. k& c/ c7 P# f60 45 68
8 G7 e0 d2 i2 _' i0 Q1 D60 46 96 ' E% `8 R" ~6 d" G
60 47 60
; f: t% Z% ~0 I8 ~6 Q" \. n# B60 48 80 ' ~- ?3 g  N3 M+ y$ \  C' M
60 5F e0
' d& m7 H3 k$ @" l60 60 8C ;0c for advanced AWB (Related to lens)
9 `/ H* M/ X- U& X& i60 61 20 . E+ {, S  W0 O# `1 ^
60 a5 d9
, C' r1 }  N: _! V60 a4 74
; y5 d1 I! _; S60 8d 02
' w9 ]0 V9 \8 M+ u; K. M60 13 e7 " s) k) W* T) w( i4 ?0 d/ e
;
; H. q' k+ z2 W' w5 Z4 d6 f0 G60 4f 3a
9 |1 [( j8 f" n+ Y5 [60 50 3d
2 s; X. z7 {: q2 X! |+ v/ J! ?8 A60 51 03
3 }3 @( [/ [+ a6 @( P60 52 12
3 Q3 j) G8 B! _. N60 53 26
/ ?: M# Y& ~  _% u* b" t60 54 38
2 E9 m6 x, s' R2 u. z' @2 s) T. n60 55 40
- e) V% e& s9 R7 I' e8 `/ i7 [0 S60 56 40
; H6 u. k9 t  I0 |) Z- @7 [60 57 40
' g/ ?8 m1 c, ^2 n60 58 0d 6 L: j( ]4 X4 t6 M
;
. x+ X1 P$ c6 b* S/ g1 y7 G60 8C 23 6 l7 v- N( L' O! L8 x7 r2 W
60 3E 02
: a- p+ C4 W$ s60 a9 b8
; ?8 R5 l) i" D: G* Y4 Q. D: D5 w3 _60 aa 92 # X4 j1 m8 X# j- F; f4 ]2 i) D8 g! y
60 ab 0a
: ?& b3 ]/ l5 c, l# J; : [) x$ u; h; w, T9 P' W6 u8 y: o
60 8f df / C$ w* K& [: U; X6 P
60 90 00
8 r# l! f  ?' X- U: N1 T60 91 00 $ J3 _: G& s0 K8 _- ^0 n- M3 B* n
60 9f 00 * m' ?9 o+ R: k4 H6 E9 m: u
60 a0 00 ' L1 Q: F4 [5 S* W  ^3 n2 y
60 3A 01
! ]2 |: g7 x3 g- y# e5 L1 N; 9 M, v2 y' t- J- m/ V
60 24 70
  W- n  K& _3 ?, e; r" m, ]60 25 64 % @/ ]' O- n" |4 |# R) T! k, ]
60 26 c3
! p" A+ o" r- A/ k& U;
: |* E' C1 P/ |4 C/ \* R$ d60 2a 00 ;10 for 50Hz % g  S, O: ~, _! e
60 2b 00 ;34 for 50Hz
, m# s+ M/ U# ?, D; : V1 e, a* o, `* [
;gamma 8 F& L6 T3 q9 d% ]8 h+ r, x
60 6c 40
2 `5 B& s& y" z7 B60 6d 30
0 L# a2 T0 h4 @5 p60 6e 4b
9 K# Q/ I/ b+ u: N60 6f 60
  q. E' |- _6 [' E1 y0 G; N5 ]60 70 70 ) |- x- A7 w8 y$ f% D
60 71 70
8 G2 x% `; ^+ g60 72 70 # _. n9 e: \- s1 |# b7 |, z5 \
60 73 70 2 e3 o/ C9 `0 f) g# r
60 74 60
& d! q# I9 i( b7 f& J  P, l/ \60 75 60 / Q, b7 K- S+ v
60 76 50 - [3 r: G5 O- `% @/ c2 U9 V
60 77 48
: a7 @/ B2 A6 A5 w0 P60 78 3a 8 F. s5 O) e1 z1 K
60 79 2e
0 G3 `7 J+ j5 H6 ]60 7a 28
) {4 u5 H) Z) ^60 7b 22 ; z- i$ I  P" F6 \$ l. \
60 7c 04 * k% A# {. h9 `* \) F6 a+ Z9 e
60 7d 07 4 q. Y' ^% a! x2 w: ^. E* P
60 7e 10
9 k1 L  h2 |" q( k& c% E* q% [60 7f 28
6 E; H% K: |% }/ J# Y60 80 36
) ]- R6 j7 [' _0 s2 e# @60 81 44
  W, R; @5 o6 S* w- q60 82 52
; o* |5 B0 Q2 |4 {# D: ~7 F60 83 60
2 \; D$ x. a. y1 v' O% f60 84 6c
' e6 ]: G( h4 t# I3 q# a" R60 85 78
' a9 \6 e4 i1 C) y; ^! ?60 86 8c
* w* d9 Y( d' ?% X3 D4 a5 @2 H60 87 9e
( f' G4 d$ E/ g* K7 S60 88 bb
1 g; W1 a: E; V60 89 d2 ' |1 E' @; [* l/ S
60 8a e6
% Y2 e6 A. O. j7 W! S5 W
2 ~' ~8 \: f1 t- L( }0 p    非常感谢网友李鹏分享他的调试经验,让我在调试中得到一些启发,OV9650的datasheet写得太模糊了,而且125个寄存器每一个都要配置!而且有个偏门的SCCB协议,ov9650明明兼容I2C协议的,可是datasheet上就是不说!! R1 ~2 M9 B6 z# X& W* U4 ^8 R
——————————————————————————3 F1 j, S/ {/ r2 i8 M/ w4 ?3 A0 B4 h5 R
原文链接
3 U; E. V+ O5 [# n1 }" f5 f* e8 K( E5 f5 X3 M4 U* \7 r
Camera调试   9 K5 o1 P" g, v4 p# l
基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:8 {7 U& J( c# }: D0 _
1,提供给CMAERA得MCLK是否太快或者不正常
/ x3 x2 I, s0 F3 h) K: H2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。' `+ N, X1 A1 [8 e
3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。, w( E) Z) l3 ~% T/ e8 U
4,量量数据线有无波形,等等0 ^! f8 I" K* y, [
至于发挥sensor得性能要找技术支持了。 : S( T' b, w% k* Y" o5 Z/ Q2 i
供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  # @# x. w1 o+ u+ M8 Q9 \( F% V
下面是我在调试OV9650的一些总结:
! Z7 ^. `  g4 ]

, ?- g) a$ @9 g" Q& G步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。5 O& J" }/ U* y/ \
如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:
$ i% {4 i3 a& }' E# g" b       RESULT IsiCheckSensorIss( void )5 ^3 E$ @* n7 z, G" F) l# a
       {' a. r+ B4 {4 y
             UINT8 pucValue;8 |4 a! E" W. j; w# Z" d- q) a
  
# A/ K) c# N+ U. j5 b0 [+ x* B             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
: m" k% j; e9 Y8 \1 r+ h             if(pucValue ==0x96)//pid value of OV9650# c0 U+ [* C) S
                  return RET_SUCCESS;
& X/ Q$ t1 J' L& Q. \+ O. w; M             else& X9 I; V2 e' ~$ @3 `& B. x
                  return RET_FAILURE;
. M- t' B. k" b$ l( N         }
! P/ Z' H6 N+ B# i# h
0 ~  P7 t1 J/ \# u8 e3 ^, ~1 g0 K
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。
* E3 z4 ?' Q1 m# b" Q* B3 u  Z. s6 COmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。; m* ^* d# M$ t. R6 T1 B
$ S" D6 }' Z5 e
步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。/ x. j0 z9 R# [! B! J& K
      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。
9 M) y) ~: ?4 x- o; [
3 H* S* r% W( W5 O$ L5 }
步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。
' I& A# q+ M: Y2 Q置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。

# @4 d0 S0 ]4 D* R7 \: x2 R3 Q& w# L
至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。
: I+ M3 w+ X( I. [4 c后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。
4 R% v% ~' s1 P( L$ R) J摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?
* W" l. g1 C/ w# X) i% \- YSENSOR的各路电源是否接好,
1 c5 |/ O6 B4 u& CCMCLK是否正确
6 }, E" B; Q; F2 r. x' lRESET sensor
. x% {1 G) `. z1 m5 w6 T4 zI2C总线上拉电阻是否匹配正确,5 z3 }4 o8 b% N" H
访问sensor时使用的 device ID是否正确,$ C% e8 w: _1 w6 e8 p, M0 }
I2C的时钟CLK速率是否太高,0 j, R; G: X( A2 J4 R  I6 |0 |
两次I2C连续读写之间是否有spec规定的delay时间
6 N' c# \( j4 l8 G6 G5 \% vCAMERA POWER UP 时序是否符合 SPEC。! s. b. g) ]  X9 p3 U& N
camera的工作过程(从进入相机到拍下照片为止)
" j7 @' d7 u1 e, u0 m! J1 ]一般先给电源 ,然后给 MCLK SENSOR的 时钟  然后复位 PWDN改变极性使SENSOR 进入工作状态,让后再过几百ms 进行 IIC 操作, 然后就进入 PREVIEW 模式了,拍照的话 是 截取完整的一帧信号而已,有时会关闭SENSOR 的AWB AE功能。
高级模式
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.