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

ov9650 Camera调试笔记— 之一

[复制链接]
发表于 2015-4-12 14:18:55 | 显示全部楼层 |阅读模式
   经过4天的调试,摄像头终于可以拍照片保存到电脑上来了,ov9650的调试走了不少弯路,一些教训总结如下:
4 y$ t+ @5 u3 k1:OV9650是OmniVision公司的COMS摄像头,号称有130万像素,但是实际效果感觉不如CCD的,特别是远处的背景更糟糕。
! N3 H0 x) }+ w! [/ M% p9 ~( S% e0 t" d

  m, u0 N0 c9 N) W: y8 K2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错
& m8 A$ c0 f; x2 y, i

( u0 r) x( r/ t. ]; \- E3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错
5 u' x5 _. {3 B' I# w& ?

; ^' h1 C, f" X7 k7 `$ m4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错
: }, i( \2 T/ L+ {; I$ u! w7 E

" X( O" F7 F  t. x; z7 R5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的! 1 k$ [# B4 L3 d9 Y6 U( ^4 d$ R( f
( f2 D3 N+ X& J/ Y
我觉得调试步骤应该如下:
: a1 Y4 \& _2 U5 A" k  e一:先要保证硬件没有问题!
* v! l6 p0 F! b, d0 B% v( N
    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。
2 |/ v) n+ q) K+ O) ^0 f
4 W  m# x: Q6 `* L
    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了! 3 ~4 m4 W* H0 K+ w4 e
    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的):
# E* j8 R" D" a: v           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。 1 n* o' K5 N  d8 o
           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。 - N6 F" y, p# `6 h
           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms) ) \! d( B- S. x0 ?2 i
           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz) * D" _- j! e: p$ a7 h4 {: b
           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.

5 Q( `) T& |& S
8 X" I* t+ Y# m" t% A2 i; V  N. o二:OV寄存器配置:
+ y4 Q% |5 j% G1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省! ' g0 A' h! ?' _+ O" K$ e9 V, a
2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。 # a, N7 @7 Y. n
3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。 $ d  [8 J5 r5 @: R7 i
4:如果配置大体正确,现在摄像头的数据应该出来了。 1 L+ @" G4 v5 p  A# U1 i

- \7 d  }$ n0 h1 ?9 r" |( H
& }. k+ F  `0 f; T==============
5 u* N/ D7 D! Z8 J" |4 T7 U& ~以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以!
/ M* c; w$ \  Q6 }& D- s' \1 |8 \  ^( f5 f+ ?% ^
;09032004
- y) `4 F. C6 j  D: ]$ ~& \;OV9650 * y( e4 B* U' H% U
;VGA YUV 4 E( J! B1 I8 m
;15fps when 24MHz input clock * E5 \/ U% U' ~8 h; b; P, C" z3 d- o
;Device Address(Hex)/Register(Hex)/Value(Hex)
, C. t1 y% z- p, }0 |; 7 \9 J2 ?* f' R/ u: c. \; j
60 12 80 # M8 o3 J7 e5 I: y- ~
60 11 81
: |9 Z5 W2 e1 z% ?% m60 6b 0a * {; Y0 X+ w" W+ c1 l1 H# ]' y7 b) l
60 6a 3e
* i/ R3 h1 _% h+ t- ]7 ^60 3b 09 : s& n$ A/ ?, p( K7 K( z; P
60 13 e0
& ^8 R) D9 k& t  Z5 C: g* J60 01 80 * }0 i9 u2 [5 v/ ~' S
60 02 80
, S/ {; `; s* h0 @9 x5 I+ h3 R60 00 00
8 _9 T) l& j' [# J60 10 00
+ v6 ?; x0 C% ]2 h- q60 13 e5
  ]9 |9 f& g7 S8 b) }; ) z# e. ]4 ?1 [! u9 y
60 39 43 ;50 for 30fps
' E1 \# \5 [% L; A  Z, [60 38 12 ;92 for 30fps 4 n* K, f0 M8 b- y
60 37 00 ' R" s6 T; O& N
60 35 91 ;81 for 30fps 8 J* t% ]0 m. \, g# o
60 0e 20
( Q, p" X7 N/ W- \8 v60 1e 04 2 x8 `2 c! h7 |2 J4 J' B8 |1 P
; ) n3 J: N9 |* x3 ^6 w5 ~
60 A8 80 ) o0 ?( D% ?/ B# S+ z; }- ~
60 12 40 $ @3 `  |' v+ R  D" `5 Z
60 04 00
3 W  ^" {4 D3 Z% H' x60 0c 04
4 X7 D6 r3 @+ U0 j% ~$ p60 0d 80
5 o4 ]8 W- d' }/ i9 Y+ O! T60 18 c6 2 i: P0 w2 X5 C/ {! G: V
60 17 26
* s1 Q' b( ~# ?( G60 32 ad 3 z. j" D4 m- n! h6 i# u
60 03 00 / \: `# n  _: X
60 1a 3d
: Z5 v* }/ E5 z/ v3 y  {% u60 19 01 ( e0 I9 I! `3 Y- ~: l6 V
60 3f a6 7 s9 [: }4 u4 ~( ~3 r# z
60 14 2e + ?6 K9 J, E6 A, v7 K# A  B
60 15 02
! p) O/ I( Z2 }0 f, J' P; P% K+ x60 41 02 0 \2 [* f# H* c( q
60 42 08
- e, D+ j0 ^4 i( y" j4 Y; : E* l: f9 u7 J; o& x
60 1b 00
* `( D2 H; \- C* A" k0 Z( P( Z9 ?60 16 06
7 z( P) A2 H9 c- d- \) }  T$ g60 33 e2 ;c0 for internal regulator
! D9 l$ Y  X. H; G; S: j9 }60 34 bf # }; {3 q7 j2 W( I' p
60 96 04
) @6 j1 P5 K5 `  B& x60 3a 00
- G4 G4 ?6 j1 U) q1 P; L6 v60 8e 00 8 r+ y7 o. E3 ]  u
;
% e; p% E6 ?7 C0 F. J+ Y60 3c 77 & x* @) J$ O- j
60 8B 06 7 R, ?* j' `7 d
60 94 88 7 d+ \' j5 v8 R
60 95 88
; m* B+ A" v! F4 @9 ]/ R60 40 c1 8 T3 S  j6 F$ ?% n8 [5 T! d
60 29 3f ;2f for internal regulator
5 G1 m2 c& m- Q. o; @2 v60 0f 42 0 V' m5 p. e0 I& q' }, W6 G
; % T9 i' I' H# o2 \/ W. |
60 3d 92 , h, W, u' j" \4 }! Y/ V3 j
60 69 40   L+ g$ ^5 }# X: s
60 5C b9 1 D1 Q7 t- \& L6 M, ~2 t9 t
60 5D 96
2 ]7 n) z! S4 n60 5E 10
) `8 C' y# X6 ^; M" ?  a/ M# L60 59 c0 8 m+ o4 X! j, o0 K- \
60 5A af , J3 ~: k4 V" O* z' Z2 ^% k3 }
60 5B 55
+ J: R  U( P% e+ n: @60 43 f0
% Z) P" u& x0 e/ R9 `60 44 10 : ]. J# w9 _8 t- H. B5 H  _
60 45 68
/ P8 q1 |- c  L5 O- }: S; a. J60 46 96 1 f7 T: e& v% C3 ~3 @
60 47 60
- j- y1 {6 r' N) r, |5 T. c# h60 48 80
$ n2 h% G, M/ b60 5F e0 9 y& @8 m" y6 O5 f
60 60 8c ;0c for advanced AWB (related to lens)
5 w9 z1 `7 i8 ~60 61 20 0 J9 n; k- I, t! z
60 a5 d9 % m/ C6 S% r6 p) B( F* d
60 a4 74
8 }& L( c' Q( s, c5 M  C9 ?60 8d 02
1 e' \# b3 m# R8 P60 13 e7 % Y2 Z* E& n7 S% I$ C! k
; 9 L6 }0 J% x2 L7 F
60 4f 3a & a# k3 v% i3 i) F  i# i
60 50 3d - Q) f- p4 j- G! x2 C
60 51 03
- C# k3 ], E2 f$ A/ s1 L, k" c4 r60 52 12
( @% n0 [% W2 M: `' V' D2 u* V3 g# \3 Y- w60 53 26
6 B. O: R% Q" C/ v. I$ }60 54 38
3 y7 ]" p8 y0 h4 D+ }4 v/ Y60 55 40 3 Z) e5 c* c* ?- `7 ~' e9 X) @
60 56 40
2 Q( y/ F9 `; a" ]; x60 57 40
. g( \! [. j; {. c0 r" \60 58 0d 3 v) U. I9 W+ b  o
; , X' M& C& P  }/ `' M* X
60 8C 23
# l, b0 D/ d4 x+ m# e2 Y0 S. L60 3E 02 & E0 p6 S* D8 ~$ w1 e% j
60 a9 b8
. i4 @4 I3 l3 W3 ]60 aa 92 - O: f  q; m8 l
60 ab 0a 4 S4 k/ o) s% p; D
; ) _' ~, a# c+ |/ f% `$ r; Q6 x
60 8f df   ]( l! p0 I! F. B! Z$ H+ L
60 90 00
/ J9 r9 F- ^1 V; t3 F60 91 00 ' V: C8 R" \+ ^
60 9f 00
9 {$ L( K5 q- e# V60 a0 00
' D6 s# N; `  A( p, B60 3A 01
; ~; t2 a: e3 K: x2 S( [& h0 [, L5 p; 8 j/ g# w& E3 U  x) t; d
60 24 70
$ ^( Q- B& l1 N" H* I. G60 25 64
6 g% V% x3 i" C0 s& w! r60 26 c3 4 J, i* {7 N  \
;
' G5 U3 K6 i6 i% K3 }' w/ L60 2a 00 ;10 for 50Hz
' y; V0 R) R1 [# I8 [" H2 c60 2b 00 ;40 for 50Hz % F; }* a$ f- }5 C6 ~" y# b* R9 L
; ( P* x, Q9 Q% _* W
;gamma , b) e) U( T) T" P. C
60 6c 40 * I8 Z8 H  e" S" Z" }
60 6d 30
* H( R. j' C0 o1 Q60 6e 4b
5 B% X. m8 ?5 @9 J& E# L! p60 6f 60
0 s3 m% R: Q& w) e1 I! d60 70 70
6 b$ |4 ^: [1 Q! E60 71 70
, y7 B' b$ K- F: T& R60 72 70 2 z7 R/ c% e9 ]. H" K5 {. B
60 73 70 ) A! L- @' @0 J1 a8 X
60 74 60
6 s  }4 y% A  ?" S! _60 75 60 ! E! p; ?7 V4 V
60 76 50 : E, I6 ?1 y" c* @. F5 a) C8 i
60 77 48 : B! i# X3 H4 p
60 78 3a 0 W+ v* Y. M& V) V
60 79 2e % D9 N6 q/ ~4 L8 m7 E+ x
60 7a 28
& T0 N) O( {3 ~60 7b 22
, C3 S: \6 a" l4 G) Y* @- N60 7c 04 7 |% c1 }  v$ n: ^, J# _, M3 ~
60 7d 07 4 U  ^# F- i- k5 x
60 7e 10
2 |- y. v7 _3 G. g9 i0 N( }3 \. }" |0 v60 7f 28 " U% q9 r7 S8 u7 V2 j7 v- \
60 80 36 , Y& f$ ?' `+ Z; h# N( f
60 81 44
7 j- ~5 i$ [' ?+ e4 ^60 82 52
: b- C; j7 B. ]6 I5 o! W6 n& H. n2 w60 83 60 8 w" N2 T% V! u$ \3 r) N
60 84 6c
8 }; A7 b/ x- p2 Y3 _* D+ R- d60 85 78
, \; U* P4 ?/ w60 86 8c 9 i" u* }4 r# l
60 87 9e 4 s8 @/ v% i: `* A& a8 f
60 88 bb & e% |# e! [" w3 Z/ Y
60 89 d2
7 G* {2 Z! Q" |0 g0 B% x. x60 8a e6 ) L6 F. C! B# D$ ^# A+ k% p# ^
; 6 F. Y* `: V2 e! ^4 u; D

) t, d/ r0 c' Z/ v: r  r# [4 D! ]- @==============
8 O( [3 b1 f, M1 e' j6 T( ^9 w;09032004 / m% A' {0 p4 v7 i* X! @8 j
;OV9650 ( w$ g  o8 n+ n, f2 b
;CIF YUV
  l3 ~3 O1 Q" B3 f1 w% s;15fps when 24MHz input clock
- @% X  f' D% ~; P8 h- k2 g;Device Address(Hex)/Register(Hex)/Value(Hex)
; I. s; x6 l. X* l' ^" W2 `) x" s) F; 3 f6 w8 b% t0 B' }9 `9 H& M
60 12 80 ; K; T; X4 _5 u( R* F/ \
60 11 83
+ v8 I, X1 I, _+ n6 B8 l" Q60 6b 0a
- w- i2 a" Z" F$ {5 Y4 K) t60 6a 30 & X* g3 Z% @, b/ m
60 3b 09 3 y& ~+ ^2 o. f7 k7 ~- p
60 13 e0
- t$ p0 f. W% c; Z60 01 80 - ]( V- A8 f1 Z: q5 F
60 02 80
0 H/ G( h/ N: ~1 @* o60 00 00 $ D5 U5 c( l% P6 h& {+ J
60 10 00
" j. b% o# ^( x0 [( I9 _$ X. r. k) ~60 13 e5
3 T! Z8 A& o: K" v;
2 E9 `" c8 r- k1 H  r6 i+ T7 ?60 39 43
8 P3 ]+ S# o( q7 l0 o60 38 12 ! C' ?$ q* a! b7 _
60 37 00 7 n# Y- A; @# V4 |
60 35 91 6 v% {% v0 E4 H0 h1 Y) }# `
60 0e a0 + b0 M0 g7 Z# u' C8 O8 `
60 1e 04 # A- c( K! K& l7 V& o' \  E; @/ e1 }
; 2 e9 v, D! E* K  y8 u% l: T* j' b
60 A8 80 7 U2 ]" ~* o& Y3 l) T& _1 L8 v/ P
60 12 20 9 x" |) \# j  ]5 J
60 04 00 + `+ L  t# }4 _! ~( x7 |0 c, L
60 0c 04 : f9 J& d- Y) `; V% e4 n
60 0d 80
& Z& u! T$ i9 s% P3 q" W60 18 7e
- [$ p  Z( P4 K0 o" v60 17 26 + e4 ~4 @' s# K& d2 \9 o
60 32 24 " {1 K$ i9 D/ x' _
60 03 36 4 ~2 N+ W  j! Q# S* F# x
60 1a 24 ) {. M5 l- K3 X% q% k
60 19 00 & T0 ]% }# p0 M4 }6 X% B0 K
60 14 2e
7 U; l3 N1 e& b% a0 L/ f60 15 02
& y8 Y; s: L1 Y7 c1 N60 3f a6 / O) C- d+ {5 E9 g, }6 T
60 41 02 ( p  F% ^* C4 F0 ^( w6 i& e' t
60 42 08
6 |, z0 y& @- {6 K2 q; S* n;
5 M- Q0 K6 {% ]" Q1 {+ d8 P8 y60 1b 00 : Z1 w! o, P5 I4 H& k. }& U
60 16 06
2 w+ G3 S7 J3 C" N& ?; o60 33 e2 ;c0 for internal regulator ) W" V6 _1 S/ o, H4 T0 ~5 m( j1 l5 q
60 34 bf
+ m" y) W; z# \1 [9 t60 96 04
$ t! `6 Q, d5 ?9 k  F% K60 3a 00 - j1 n# P' {! @: ^6 P# y0 l1 f
60 8e 00
  |/ y, c/ L5 r  @. K;
& E$ \! H% |$ C60 3c 77   {( l8 [  q: K1 ~9 J/ N- K1 Y1 \
60 8B 06 & D8 R/ f6 {3 N2 R3 V
60 94 88 ; x9 _3 B2 }7 x4 ^6 [4 v
60 95 88
' {9 E9 b3 v+ g( i- V3 E60 40 c1 0 _% G/ |2 u+ ~! P- d
60 29 3f ;2f for internal regulator
. D' V! H8 A: {7 s# r60 0f 42
& a  L; h. A" I;
; \) ^" A  ~& s& A" _( r60 3d 92 : j2 l  B% h1 p) Y5 d8 H7 m/ T, W& s
60 69 40
# n1 u0 q+ b9 f, X% v* j- o0 t60 5C b9 & W( O- U/ E2 W4 s6 }
60 5D 96
& O+ c+ q* D' Z0 P! D# F0 E60 5E 10 8 I; d+ V5 S' L, g
60 59 c0 ( B0 c( Z3 r3 ~% a" \$ s
60 5A af 0 m7 @8 }" W" |( E1 j) x. z. B' d
60 5B 55 " l- S; n4 z0 x! J
60 43 f0 # S$ L3 {/ L+ |% y6 h. M( M
60 44 10
0 d5 K( v- S( X60 45 68
1 a1 |' y$ E! Z$ e60 46 96
* x0 D% Z1 U/ p60 47 60 ) x% ~1 Z4 M  Y, y8 q/ t* A, o* |: J
60 48 80 + v1 `1 U" q) y7 S" g8 q# {
60 5F e0
7 `: ]; D/ `% R8 T3 O* k; N60 60 8c ;0c for advanced AWB (related to lens) : S" ?" z" u: D; ]/ ^
60 61 20
6 `% m- c: o$ {9 c; i( D  k$ O4 b* ]60 a5 d9
+ L$ o6 o0 S6 E! v' C3 Z/ u. l60 a4 74 . b" A6 F4 Z) L
60 8d 02 " c# M3 \  C/ @5 F5 _; [( {6 ~
60 13 e7 9 W9 z' v" l: y, L. R, V0 K
; . k4 ~4 m% Q& `6 B: F; H
60 4f 3a 8 K  X' N9 d. G( g9 T* r  c9 G
60 50 3d 0 o' H8 P) E! c" x9 W
60 51 03
0 F1 I8 b3 n6 J$ U60 52 12 1 @6 z* ]  o. e* E3 P
60 53 26
% A8 N' A- N- ]. l* l60 54 38 ' V) f0 L  O9 O) q- v  U
60 55 40 5 n, H* |* o5 W7 S6 m3 o8 z
60 56 40
0 E- F- U7 _. j* n2 }60 57 40
1 _6 h0 o: W" q' |60 58 0d . W* F6 K) _& E0 ?3 x
;
8 ?( Y9 M. L- A# B60 8C 23 $ O5 X0 r+ A* S9 T- a
60 3E 02
) y+ C1 F* n9 Z& ~. {6 F7 h" `" {60 a9 b8
; J6 R- c! u3 ], T" f60 aa 92 " s1 E* Q+ y: M
60 ab 0a
7 `9 E7 }8 N8 F5 M! H; - p1 m/ I& H) J  O
60 8f df
7 n& |( C3 N3 [3 b; s% r60 90 00 ) @4 [+ r% K1 t' z1 M" K  i
60 91 00 - m8 W+ n3 `- h, x6 M
60 9f 00
3 d8 S4 x' a; @4 r9 T60 a0 00
' ^' g; X0 [. ]0 M  |1 Q3 y0 A0 v60 3A 01 ! y9 }& {) P1 W  U0 X. N% d- `
; ( f/ F! S: {$ H& p8 |
60 24 70
: Z2 d* C$ S9 ^& o. U  N( E8 [. w60 25 64
. X" {, f& i3 s: O! [& y60 26 c3
$ i7 a& p+ w1 _, r& h: r;
4 v# C8 Y* Y( h60 2a 00 ;00 for 50Hz + j! R( N: B8 n4 W
60 2b 00 ;D2 for 50Hz 9 }: A8 \3 ~  ]3 O* ]
; ( p* k. r4 a3 h* d. R+ _
;gamma
6 R; u% W7 H* D. }60 6c 40 - a& w4 t$ l' N# r1 o- o
60 6d 30 $ N2 s3 w8 G& H1 J
60 6e 4b
% d  g: k$ K% {: j' Z+ e60 6f 60
' v# l/ t. L2 ?- l3 W9 K60 70 70
+ l& V! {) x8 r6 o60 71 70 * y0 v( W4 W" ?. y
60 72 70
! T) Y, K0 b+ I( a% `6 q1 {60 73 70 8 U2 L. m% `% J, f
60 74 60 , A9 n  @( Y: m3 P0 I) }5 G
60 75 60
% e1 v* q7 O/ r" P7 d60 76 50
/ h8 x1 s( A: G  A60 77 48
- y# y$ t4 o7 N# g8 f60 78 3a
8 ?: G4 i. L, c! L60 79 2e 7 ^# d9 Q+ }1 R1 Y% T6 _* b
60 7a 28 9 g$ H* P& e5 D: [7 z
60 7b 22 % a1 j: }8 W* S6 ?
60 7c 04 . Q  z5 G- E" M6 I$ S8 G8 S9 V9 J
60 7d 07
0 p% Y" f0 Q6 M" I# R' M60 7e 10
. B9 \3 X( f% ~60 7f 28 . G( B/ M; [/ o3 j' p) C
60 80 36
/ d# i& O; l2 N$ p60 81 44
0 ]2 P. i) `0 K! c! R- ~  }60 82 52 # r" o* n+ e/ _7 n7 [$ }- Z
60 83 60 . ^& C: E4 z8 q% r& W
60 84 6c
2 D7 i, _' ~/ U9 I( G6 [" F6 x60 85 78
7 x* y# k2 ]- }# B9 k: S# n! L: I5 n- I60 86 8c $ j7 a& c9 c& l+ y& w3 ]! V
60 87 9e - D% y8 d; y) J1 G7 k
60 88 bb & t8 `: u1 B! Z: I+ x5 H- k1 d
60 89 d2
! u5 I' V( g/ H4 a. n60 8a e6
: d6 y2 k" s3 r8 h/ L/ ^;
6 q7 X' {) b8 i7 h8 [6 ~
- F$ A& N" m+ i, A# V* ^9 o================= ' \$ u4 s) ?* w& U9 r" z, ^# K
;09032004 5 Q9 g- |$ v4 l! b" j1 x8 G
;OV9650
) G# g: j! `# \) @# g. _;SXGA YUV ' z5 [$ u* @' x' [3 `2 o' T( B, l
;7.5fps when 24MHz input clock
+ k# {( `! e( M;Device Address(Hex)/Register(Hex)/Value(Hex) 7 N' m2 ]% s7 J3 z0 y
;
- ?; d2 _+ b& [6 u60 12 80
- L* P9 r! R9 e& `; B, m. ]' V60 11 80
; {* J8 O9 Y) a. l, c. l60 6b 0a
0 K. s$ K6 r$ z( J- ?! N60 6a 41
/ _  W" z, X1 @  M/ w' g# a60 3b 09
! b$ }* A5 U: T3 t$ d# B60 13 e0 1 n, c: b: w9 r6 N! m
60 01 80 7 E% w* _* \' c4 n/ t; P
60 02 80
2 w  y) {2 L6 M# k60 00 00 + k; S5 ?1 m& ?! w" X
60 10 00 - t" a  I, L" m1 x6 W; N
60 13 e5 & H# p1 C. P1 I& b- M0 n
; 5 u. |; j9 X8 x1 f: A
60 39 43 ;50 for 15fps
- K! E  J5 `# s0 X( n% T60 38 12 ;93 for 15fps 0 P, [7 E' _: r
60 37 00
  H7 H9 E8 ]+ I( X2 H" ^4 q60 35 91 ;81 for 15fps . o7 F( A8 h' n6 C- N
60 0e 20 . _3 `: g( X2 e  N" W
60 1e 04
' O; n% U( N( U) K! L# `' L& {, B; : C: T/ S' ?! U0 f" X) H
60 A8 80
/ q) z9 h; _9 h- u3 H2 M: V60 12 00 4 q9 @& i7 L- r& X/ q0 f4 q. e- P
60 04 00
9 O/ K9 L/ \( f7 I3 |- F0 T& Y60 0c 00
& X* C: c; X$ @8 g: p60 0d 00 ! P$ |5 i  D( _4 K; N! ^
60 18 bd
8 {% h0 R2 a% \- L7 J8 x1 ]  G) Q1 r" ]60 17 1d
) r/ I/ ]2 v7 d/ l60 32 ad ( W8 ]5 g* w( D1 v
60 03 12 5 y# Y: _" }2 G, g& t# j
60 1a 81 1 s, g& ^' |5 {) p1 d$ t3 a  ^
60 19 01 - l* }5 M" x0 b& I6 Y7 c0 Y6 {5 ?
60 14 2e
- ~' c" H: A% @/ Q" I! h" Z60 15 00 0 J, ]7 r/ e; f0 a9 h8 d
60 3f a6
8 \! }! v, q: q5 p1 w; y; z+ P60 41 02
# R' x& p4 _1 _6 x6 P) f60 42 08 0 \6 {/ u$ {; K
; & D6 C: Q4 e0 e: K+ S
60 1b 00
1 z8 b- ?2 q; s" j& F' k60 16 06 0 ^- K1 E5 v: T+ h: Y* r* T
60 33 e2 ;c0 for internal regulator + c& M) {% g7 i+ U9 ?0 Y' E
60 34 bf ) W9 S: ]# F7 _% Y& N6 p
60 96 04
+ w$ u& B- g. g" G% @0 O60 3a 00
+ P. b) z# g6 r0 N# N' M60 8e 00 ! \1 s6 F5 j  r* ]4 l
;
( O. q) [  E& p0 @! f60 3c 77
* v; t& b! M  Z- f6 y5 X60 8B 06
9 p6 S1 [8 Y9 q) X: |: A! S60 94 88
* k1 l: k4 l4 m( K60 95 88 " b) A, `* s9 Y% x$ W
60 40 c1 ; J* J+ S5 g. X+ {$ C/ ?
60 29 3f ;2f for internal regulator 8 ]0 y2 H  W0 v
60 0f 42
0 D, s. M+ E2 D) d( r# D, h3 t# ]8 I9 r5 J;
  I: p$ U2 U; L1 H8 S( R60 3d 92 ; w  `6 t3 y' ?- S# U+ j+ }) ?
60 69 40
5 b+ v8 C. ^  E) b/ m8 w! {60 5C b9 1 J1 K8 D4 o5 a1 z# _/ E! N
60 5D 96
; z. h& \6 z- n" u60 5E 10 7 k. L4 d! P" c' N! N
60 59 c0
. d, h+ a1 d6 C# U% q60 5A af
4 u+ D& \' F' s8 L, P9 `9 z60 5B 55
- B3 I7 p/ a& X3 w  ]9 E' z  p60 43 f0 ( x' l3 ]2 Y9 ?  L- c* B
60 44 10
+ @/ w0 T& G, P5 q- A& G+ g% W7 F5 F60 45 68
( q/ F8 o) J( B60 46 96
& `& o( ~4 u. e6 @% \. E60 47 60 / J/ X6 [" x/ Y* `! s' E4 y1 u
60 48 80 " H& |* P) u) O4 h4 o
60 5F e0
. v$ {2 @" k  ]( m, t6 c! }3 E+ i60 60 8C ;0c for advanced AWB (Related to lens)
! S+ v/ a! f1 \6 T+ [60 61 20 . ^$ {/ l5 @1 U' A4 K! g+ d) ^: u
60 a5 d9
, `: g, t7 o6 N" `60 a4 74
8 h6 I# R" p" ^# E# X! c3 e60 8d 02
2 c0 x+ [+ r$ X1 v, W- p: f60 13 e7
$ _8 y' p. K) P; & j' `. z+ f5 E, H& i
60 4f 3a ; ^2 {6 ~5 |2 F; F, I  n
60 50 3d # q% z* Q; L" K6 h' R+ S) `! T5 k
60 51 03
( ^9 g6 b' Y" a+ k60 52 12 5 D1 t" f0 m8 v, ?! X3 h: R0 b; n
60 53 26
+ y& i: l% M- k/ a60 54 38 , L) r& K2 W: }/ A- G' K
60 55 40 0 S" k5 c5 e% Y* |; B: E
60 56 40 - u1 W) g* t- ~5 t* O
60 57 40 # I2 Y: W2 j( O) p2 A# t
60 58 0d
9 `/ z: e' S: `7 i) K: K;
: i' j9 ?0 t/ F9 E7 G60 8C 23 1 f. _% {( I) O+ A# a
60 3E 02 ) ]( |& h. @# r' C8 j$ O' a
60 a9 b8
( L( |3 b- L! C8 Q/ ]) Q/ y/ e60 aa 92
" T% g8 Z' v$ P& s/ h60 ab 0a % M* J  e6 G, i  L: T; g" U
; 2 R$ V9 U( \& r: e+ @% Q/ U
60 8f df / q- G9 q. A3 Q9 M+ q
60 90 00 $ y- a4 @( C" v- d, h+ i' f- J
60 91 00
6 P/ G: P. W% P( F' \' t60 9f 00 7 Q# j4 f3 z  {
60 a0 00
* E# h; c4 [# X; n$ ^4 J' b4 i60 3A 01 & _& m* W6 ?! D6 X9 e& s, }7 n
;
8 S& L1 h( A6 g; M7 y- ~60 24 70
* Q6 E2 \1 X2 v60 25 64 1 B% M& u* Q& L9 a, f  a. N  [
60 26 c3 ) F9 R( E. j/ p9 t1 W# s  |
;
: \: n& V$ K3 L: ^" K60 2a 00 ;10 for 50Hz
. R, G$ \: L; r% Z! P" h3 _1 B3 n% ^60 2b 00 ;34 for 50Hz
4 w3 d6 y: T- u; 0 J, R! \3 U" N/ P& W
;gamma
/ e9 ^$ m3 p  b60 6c 40
; K# x9 b  N8 z/ m( H60 6d 30 - q% b. k6 ^) H5 C
60 6e 4b
+ J5 ]: i% _+ O1 [# G60 6f 60 ) s$ a1 c- ]+ ~+ r3 P
60 70 70 - Q, e. ~6 ]' z5 v- N
60 71 70
  O. Z. P, O+ h8 O9 v; Z* B' N60 72 70
4 D! N* n2 U' m* ~% w8 z+ w" B60 73 70 7 I4 n, |) n9 p1 b4 ~5 @
60 74 60 ; x$ n' J6 |" {: H1 g) `
60 75 60 & _: n" n; _' Q8 S8 @" ~' p
60 76 50
' J* X  I; s* T% c60 77 48
' W' J; y# F2 I60 78 3a
2 T% o0 `: N6 E. s60 79 2e % t+ z% O+ X8 R
60 7a 28 $ n( Y5 Z. O- y$ v- s, C
60 7b 22
4 |, Z/ G! @1 S* c60 7c 04 ) A% `1 G+ |4 _4 i+ s
60 7d 07
+ ~% k6 h5 j! M+ g. |% q8 y$ B0 Z5 b60 7e 10
4 `) e- n- r6 O+ e. |+ T% p* u60 7f 28 # s4 w& X9 }6 K+ H3 q+ I, A  z
60 80 36
6 y  o7 J; X# N. q) [2 d; t+ I60 81 44 # o/ U8 M2 ]- `( i  i5 c" W; _9 Q
60 82 52
* _/ y* `. |( A" z3 k60 83 60
- L9 E9 ^* @# s' t& J9 n60 84 6c
4 j, L  V6 x/ I60 85 78
  R0 _+ b+ j/ R7 L60 86 8c
5 j- O+ v) L5 @) s1 v: o60 87 9e 4 f' n, I. Y$ L
60 88 bb % H3 w& F' f* f7 I, P, t# {
60 89 d2 3 o8 \6 I5 Q2 V+ d" G) _
60 8a e6
4 Z! b0 }+ G0 y5 O
/ J- |8 L: O6 O( s    非常感谢网友李鹏分享他的调试经验,让我在调试中得到一些启发,OV9650的datasheet写得太模糊了,而且125个寄存器每一个都要配置!而且有个偏门的SCCB协议,ov9650明明兼容I2C协议的,可是datasheet上就是不说!
) B* [6 u! r. |% B, O——————————————————————————8 e- G+ x7 Z5 `$ N
原文链接! E6 U6 f; p. k) E' P, c

8 U' X# a2 Z0 T0 m0 }Camera调试   
6 u* G( }' W$ ]# f0 q基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:$ Z9 K2 K/ o8 a! ^
1,提供给CMAERA得MCLK是否太快或者不正常
2 r1 A  w$ n6 [9 f( i, k2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。
; Z; Y. S, l  g3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。. G, ^" B: F8 l+ R& R
4,量量数据线有无波形,等等' ]' [( c' g$ S1 w, Z4 P3 q5 R
至于发挥sensor得性能要找技术支持了。 - _5 @5 f. K& w- B
供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  
6 T/ m# @: i' C. D9 J$ ?* _; Z2 S2 `1 E: B下面是我在调试OV9650的一些总结:
# G: T0 C! F0 ?3 {2 v
0 g* r/ U# C* R5 t6 E. e
步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。
2 ~+ B- }/ s; F' h: R5 q2 t如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:, U# H; U* \9 Y  Y$ d( A- p, p
       RESULT IsiCheckSensorIss( void )' u' o/ `8 g- M, G
       {
2 z" I  Q" t' F             UINT8 pucValue;+ p8 R* P5 l+ g9 _2 S4 x% m
  + d9 f7 o6 O9 b/ [6 Y$ k& r- t
             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
  v* p0 \9 D0 [9 \4 n             if(pucValue ==0x96)//pid value of OV9650
! r7 K# ~% V# b' G                  return RET_SUCCESS;7 y/ i* b  z! m  O1 t2 N2 m2 ~/ n
             else
/ t( D" k# L. \1 u) S6 ^* u                  return RET_FAILURE;
% l3 E" m/ d" S* q, R4 Q2 N         }
3 E. p: M; f2 x+ P( b0 B( g
( j, V' A" }7 l5 Q9 P( N% R; g: I5 ?
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。
# L% |9 f! s7 L0 M4 i0 ROmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。
2 H, \# g1 u# s# f4 O
* m6 m6 K* M1 o6 j- V2 @- t  k
步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。
  e2 G* j# @- I: @- y; j      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。
* O9 A$ ]4 F! v  m7 y( v( S$ B
$ s& ]: w" Y8 X: D- ~$ p" s
步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。, x$ o+ Z4 G$ p% \& {
置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。

' ?/ M. A- [/ V8 T' ~% G% w/ y9 E6 ?4 ~' J
至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。8 _, a1 Y$ v3 \
后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。( y9 j: X3 X/ @
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?
6 u8 A9 X7 D% b2 b3 m) VSENSOR的各路电源是否接好,* G7 ]  g/ p  Z2 u+ t
CMCLK是否正确1 Q- b2 }4 }* ~7 `6 i3 m
RESET sensor
4 I) k) x- @# w0 }+ s# \I2C总线上拉电阻是否匹配正确,
! k  |, g9 o( @, U. v, @访问sensor时使用的 device ID是否正确,2 o( p& Y; f' F! W% j1 p
I2C的时钟CLK速率是否太高,9 w  l6 M/ A. A7 |- p  i
两次I2C连续读写之间是否有spec规定的delay时间/ n. L0 U& S' w1 I- ]( E' X
CAMERA POWER UP 时序是否符合 SPEC。: P3 J; J% L2 g$ {, H
camera的工作过程(从进入相机到拍下照片为止)
: R% h2 h1 f, c一般先给电源 ,然后给 MCLK SENSOR的 时钟  然后复位 PWDN改变极性使SENSOR 进入工作状态,让后再过几百ms 进行 IIC 操作, 然后就进入 PREVIEW 模式了,拍照的话 是 截取完整的一帧信号而已,有时会关闭SENSOR 的AWB AE功能。
高级模式
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.