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

ov9650 Camera调试笔记— 之一

[复制链接]
发表于 2015-4-12 14:18:55 | 显示全部楼层 |阅读模式
   经过4天的调试,摄像头终于可以拍照片保存到电脑上来了,ov9650的调试走了不少弯路,一些教训总结如下:
: _" V( n" m  D8 y$ }1:OV9650是OmniVision公司的COMS摄像头,号称有130万像素,但是实际效果感觉不如CCD的,特别是远处的背景更糟糕。

+ r- b8 ~/ O( T6 \4 _( x0 s$ M  C# w( C9 j
2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错

! ?8 D: J' g3 B$ ]8 ]% S' B* N  {! N1 ]! c
3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错

- v; A+ h) L( U% `: F2 S( U& F( R9 g- x! f5 W+ O
4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错
, k5 x- V, @' m
8 ~! @% c4 o. G2 q1 O$ Q
5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的! ! S3 j; ^3 t& z$ S" B' R0 i
& e  s  L0 Z  _! K9 L
我觉得调试步骤应该如下:
0 ]1 z8 f1 g) S' O9 ^& i. k6 ]7 A一:先要保证硬件没有问题!

2 ?8 q5 g, j& G3 p: Q    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。

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

0 `1 s& u! X# Q% j8 ?8 s+ P4 f步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。* C; S  o- R" `( d, T( n
OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。
9 F! t  Z' B, A9 c7 G3 N! B( e

" ]4 ^! ^+ }7 H4 U步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。
1 i2 W* A; ~, e# @* C5 T4 V6 n      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。' S& b1 I  V1 k8 w4 B" @1 @5 ^

0 J5 l- Z; g8 W步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。/ b8 u: O+ A1 Q; Z; f# a8 [
置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。

& X4 }& K6 N$ o. ^  r8 [& W: B- O5 W% Q
至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。
% h% W7 a: G; J- p3 @后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。
- Q" N4 p* e1 z4 d$ _2 V6 ~* ?: s$ s摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?
. A0 E! {( Y! ASENSOR的各路电源是否接好,/ `8 T& S0 w( _! R
CMCLK是否正确
! Z( y) {2 P) o# H- JRESET sensor
; C/ `, @  y$ B/ X! L- EI2C总线上拉电阻是否匹配正确," B2 c, m; z* p# g; T
访问sensor时使用的 device ID是否正确,
" ?! s! ?7 D- @I2C的时钟CLK速率是否太高,
' `4 P; {( d6 u8 @两次I2C连续读写之间是否有spec规定的delay时间) t% T* n3 H! J/ v5 i, |& O' L) p; o# N
CAMERA POWER UP 时序是否符合 SPEC。
# \3 @$ @6 Z5 Q1 ~2 m' [" ecamera的工作过程(从进入相机到拍下照片为止) * l$ n* O$ s# [% x
一般先给电源 ,然后给 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.