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

ov9650 Camera调试笔记— 之一

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

0 `' H* y0 d& r. v
& v7 a$ g* c+ \4 U2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错

" t- e5 F/ T4 C" S8 R
/ D, F, N7 q( v- X8 }4 R, X  K3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错

! T  m% Y/ _. h% M8 c# U4 F' d- z4 ~- Q5 \2 @# [' @
4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错
2 X' s3 ]: q2 f" _1 _
2 J( X7 y1 l  u
5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的! 2 h, u! c" ^2 ?7 {/ ^4 A, l
4 r/ Q0 z; X0 E
我觉得调试步骤应该如下:
* z4 `1 o' g( u! {: Q. M  I一:先要保证硬件没有问题!
% U5 d" h) E' M; y3 k6 X
    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。

# `' r) G* E# s& `% l5 [2 V; ^" l3 H3 _
; p( ]7 R; S0 {: }4 ?$ R' W7 x    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了!
( w6 q& ~/ Z- p# z4 v( v; j! i+ s    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的): / w( V- k4 S8 z$ L
           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。
/ t' }( L, [/ R. X8 t0 A           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。
0 R2 t! u7 e/ R. v           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms) ' f8 P5 _% _1 A& ?: X" c
           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz)
3 ?. v, @- @) {. i" J- m# [           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.
7 l/ i5 D! x; l% f
2 v! o% v; E; F& {  X
二:OV寄存器配置:
0 H% j7 x3 |6 |6 i# J1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省! ! S2 Z% B, O$ G1 z2 ]
2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。 ; Z2 K& {- W( K; i: F/ U& U5 Y
3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。
) o3 a+ s2 D( o0 D/ w6 O9 ~4:如果配置大体正确,现在摄像头的数据应该出来了。 ! S1 `# A2 k: Y" Q

3 L9 E3 j  B- T
- W/ S' l- a, c) {==============
5 g/ ]* E0 T( D3 u1 d以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以! ( F  s2 A! D& O. L' S

0 M) {3 t1 }0 g% y1 g6 y" \;09032004 0 ?: Y' B- |- T
;OV9650
% _  x: a. F) d5 j;VGA YUV
" u; Z% _0 e; J9 ?& u;15fps when 24MHz input clock : [5 A* ]" t# p, {5 H7 }% y, L$ L9 A
;Device Address(Hex)/Register(Hex)/Value(Hex)
4 I' ?. Z( W; R9 z;
# u6 `( T5 P: k( A+ N$ T3 q( q60 12 80 4 y8 A2 _& h+ I) v7 }
60 11 81
  @8 u) r$ Z! B6 z% w60 6b 0a
8 e6 S0 \$ p8 B- ~2 V, g5 _& ~60 6a 3e
1 |% p, O! b( ?2 r" H" L# K60 3b 09 - q9 u! p5 q4 ?9 K4 P
60 13 e0 , k' J- K7 o, @4 w: o% X- d
60 01 80
; C/ }" e! f5 [( A+ G+ ^60 02 80
$ v8 D% h9 Z4 x; W- Y7 G; `60 00 00
3 W) l  [. `8 S$ C3 S60 10 00 8 z& Y: |) D0 S9 J5 t9 ?$ t% V
60 13 e5 6 K) O+ w& D6 e/ _/ A) p4 v. r) o/ k
; : M- _( B( e" k5 _3 ]& r
60 39 43 ;50 for 30fps
6 o% [) Q' F, w60 38 12 ;92 for 30fps
3 R  u+ {) P; ?- e5 H, g5 M60 37 00
! s. X  H  V4 w. n* P* D60 35 91 ;81 for 30fps
- E3 ?: Y: D# s- A* R% z/ p60 0e 20
) o8 k4 m* W0 r# I# k! f% V0 F/ q60 1e 04 : C# D  d# K) {4 ^
;
6 x) g5 t. [0 V60 A8 80
1 S5 [/ j% I! s: n( W60 12 40 + o9 R0 V8 W: }+ F; D" W
60 04 00 # f5 H  C! C# ?- q: \/ o
60 0c 04 3 A3 N6 S6 {2 }: r! a+ }
60 0d 80 " Z6 `+ n* q; G4 m7 A, H
60 18 c6
! Z2 r) w: j/ c60 17 26
: M' D6 r& C$ f% l60 32 ad
. ]4 [/ `' P$ }. ?& u) O/ `4 q; j2 _60 03 00
( @. i% _" u; b% {* c9 |1 q. z60 1a 3d   H! B7 I. {/ L2 j) l0 f
60 19 01
7 V  X0 y$ x7 R' `, Y60 3f a6
; b) y$ R5 K, X7 _, U( U60 14 2e : b8 C# C9 s$ g7 Q8 _6 u/ T
60 15 02 7 |6 E% |3 S/ ]( f& P3 J' g% Y) a
60 41 02 $ b+ q. _, F3 I+ y2 g! m- M' ?
60 42 08 2 o# y: D2 b  y6 i
;
/ l0 T0 ]3 A. P0 m! L# J; E60 1b 00 + y; x6 }7 m7 ~# M% n. ]8 Y
60 16 06 ' Q- R6 Z% @6 V$ s! Y8 _
60 33 e2 ;c0 for internal regulator
2 x0 |1 T1 S  C60 34 bf
# c# q9 q& G$ v2 W! N/ M: S60 96 04
- d$ w% q4 e2 @1 V5 y5 `60 3a 00 0 j/ y; I% V! p3 C* U1 S
60 8e 00 ' f5 m0 K3 m# h7 R. [: U) j$ y
; : h' Q2 [( j& G1 X" e# n
60 3c 77 ; s/ J! O* X; X
60 8B 06
4 ]+ g5 }% r+ X' \# v60 94 88
4 P/ J7 |& f$ s$ N" E60 95 88   x2 R0 [6 Q, Y1 a6 {" {
60 40 c1 % t4 S/ z" ^6 I0 ]
60 29 3f ;2f for internal regulator 1 U5 a0 J2 N! Q, m) _, Q
60 0f 42 % k3 n. O, }- `9 z4 }- s& q
;
8 k2 s% X2 `2 c60 3d 92 ) W7 Z4 H* S8 k+ y' V1 |8 U
60 69 40
# b/ x; J% p0 y- p60 5C b9 % `4 I6 b6 d5 n/ [$ W0 d( _
60 5D 96 4 l; S- m6 r9 J8 Y% `5 p  j" R
60 5E 10 : a' \/ T5 `/ Q5 ]7 H( ~
60 59 c0
0 Y/ H9 W7 T" b; F60 5A af + ]7 t: l  Q2 ?( f$ q4 ^% @) E
60 5B 55 + d% M0 |8 Y9 M) B
60 43 f0
; `8 O; A8 F8 w  X* q/ k7 g. S60 44 10
( B% @! n' B# r/ a" I" m/ y0 r6 ]60 45 68 7 C/ {' h, X( t: X: C+ Y. \
60 46 96 7 {) T% {. Y' ]% R! e
60 47 60 - p+ D) q7 ^' W: z# V3 s
60 48 80 : y0 `9 b; q  T' V% |
60 5F e0
/ H) Z8 i. }% O: a0 r/ E60 60 8c ;0c for advanced AWB (related to lens) " D1 j- y, W! Z, w$ L
60 61 20 # b3 y8 E) `- v* y% F
60 a5 d9
# M; X. V. a$ X: ]60 a4 74 - d1 v- v/ D5 x0 l6 |
60 8d 02 % {8 y+ b) h; H6 W" t+ T
60 13 e7 - m, h' ~3 D% c. _
; - @: `3 ~! y( }( `* i- Q2 ^# {
60 4f 3a
9 N2 z% u' B/ R# A8 j3 t: u2 o60 50 3d
1 P; n$ S. q. m& R" U60 51 03 2 C% j$ C8 y7 I& r5 b8 `0 {7 n
60 52 12 1 _! U  @. a% r" k, ?: @
60 53 26
4 q+ n1 _9 o, \2 \60 54 38
7 N' x2 |  ~% C1 ]7 s+ q; C  F1 Y60 55 40 4 n9 T& t5 `5 D$ M* U$ d6 O/ S$ [
60 56 40
" ^& U( f  y, C* k4 L6 E9 K60 57 40
+ m; R4 P. @3 y1 v; V60 58 0d
3 g  R- M6 u) x6 q, Q9 S4 G; ) u6 Z& H  K# f) A* K2 r& k
60 8C 23 . D9 H3 a- W; Q, J, O. u  S9 |' D
60 3E 02
6 I6 K$ e2 W# x3 j* [/ N60 a9 b8 * f; @6 `0 t$ ]# u# _
60 aa 92
3 T2 X  y5 V8 A3 j1 I7 d+ V0 q4 p60 ab 0a
7 _) a: H9 |# ]) [5 k2 n1 I; + e: E8 S& P1 z+ t
60 8f df
' j( ]0 H0 l0 g% F' z0 G60 90 00 9 q$ E) K; u! `9 W& o0 V
60 91 00 8 w; E+ f, P7 ^0 l' e
60 9f 00
+ z9 r8 x7 m: H% @( d* r60 a0 00
. f6 z2 E0 j  w: s' L2 x% v8 \60 3A 01
- |7 N* y4 l" I% F; 6 z. r# j/ L+ C& \- N
60 24 70 & @4 F/ A* j7 B* w% t4 ]
60 25 64 0 [5 b9 V1 T% f6 n8 W6 ~* \
60 26 c3 & g* O' C$ ?3 A3 u. C5 l$ v
; : v: w8 |9 l, O
60 2a 00 ;10 for 50Hz
0 ^  R( {- x' B  K6 ~1 i60 2b 00 ;40 for 50Hz 6 ^7 C% C+ J# C# ~4 R
;   |5 G' h$ S: K1 D" \
;gamma # q" ?; A. w+ D! K2 b
60 6c 40 / x3 a, A! e, {7 [- h6 Y3 K2 `2 S
60 6d 30 * |' h) m8 S7 T8 W7 i% V
60 6e 4b
7 }$ C0 c' @, n. r% O# z60 6f 60 4 u4 [& r: ~  b5 L1 E. M, c
60 70 70 / A6 Z& \% g' z
60 71 70 / O% Z4 j) |) u7 c) p5 ]1 j
60 72 70
$ q1 w( f0 J, f" z1 s" h& z60 73 70
) e. P" a6 D9 R; X" Z60 74 60 ! P" O0 b( q* Q/ P* o1 T- }
60 75 60
! X$ M- m7 i8 x( ?* r& L2 T60 76 50
1 T( j" Y9 Y' Q) I8 y  _60 77 48 . C9 P0 }$ r4 R
60 78 3a
* H. a+ g& C4 `9 U60 79 2e
3 P( e3 O0 q5 n7 D60 7a 28
  V1 h0 E" C; A. K  j! A- \5 I60 7b 22 + U( ~2 I9 D* X0 k/ B$ v
60 7c 04 / X+ \, ^" f9 t1 n. I; T7 I4 w1 M
60 7d 07 " ~* y3 @9 j9 f5 a
60 7e 10 * m, y9 n& B/ u; r3 Z" }* h, H  ^3 s4 b
60 7f 28
9 B" `8 D: ^5 s% o, E$ S% W60 80 36
( I1 T2 e/ g8 K: j60 81 44
: L. f4 a) ]& _" O) P/ C. n60 82 52
5 J( J3 c) v$ C0 r% p60 83 60
! t1 z8 l: p9 r* W: i5 |60 84 6c ) N; u2 g# z2 B1 f$ p! `- V
60 85 78
1 F- y, }8 P. w4 h0 w; x60 86 8c ; ?+ ?! l) b- p2 ^) ~, G7 q9 ^( O
60 87 9e
) x6 Y3 s: @9 j- ]60 88 bb ' r0 q, K1 ~' p" E) u8 ?! x4 p
60 89 d2 0 M7 x/ l7 n9 q4 u5 p
60 8a e6 # l0 f# T8 V& N# l
;
& ^# u: r3 |8 ^- o* U/ h4 G4 B; M4 Q4 L0 _. ]% }- J- N3 [7 k
==============
& T& N. l' F' [) D;09032004 + r! O4 e8 J2 T- G7 E
;OV9650
6 Q8 y6 ^, Z. u& h;CIF YUV ) ]2 [7 v5 }- E' f. p0 J1 u4 f$ S; Z
;15fps when 24MHz input clock 6 }) Z. M3 c* {7 D4 h) @( Z& J' @
;Device Address(Hex)/Register(Hex)/Value(Hex)
# i6 k' R- k( j0 y, d1 B;
9 X( M1 w/ p+ J6 E60 12 80
  o5 w2 }6 y7 ]/ L7 N$ r' W60 11 83 ! ]3 Z) T% Q" V
60 6b 0a
5 o+ `, |. \8 q" }0 n* }2 N: j60 6a 30
7 `' m  ?8 E4 E" y# n" X. l5 T60 3b 09 ' d7 G! u: h8 d2 H- i8 L6 ~' Y: ]. p
60 13 e0 5 j% e! `5 I2 _: r
60 01 80 # M- f9 |  F2 r* \1 X: Q
60 02 80
8 z2 _  i8 o' ]; Y60 00 00
( }6 J* O' h# t5 e( v$ }60 10 00 . m! |8 Z+ s9 i- E
60 13 e5
7 i# ^, V( Y6 e# R' @; , u% b. w. b7 r7 ?) f- r4 _
60 39 43 ' I3 a; h5 }( a/ t; d9 d+ E6 X1 a
60 38 12 8 e5 l( x9 c4 D& @& c
60 37 00 9 K1 w( N9 u6 a
60 35 91 ! ]9 w4 Z7 N! @' w  R( t
60 0e a0 # c, r+ C+ |$ k& h- c/ |5 d
60 1e 04
: D2 s( K: m9 X& A7 e' N6 `" v;
* }: L0 c; U: F6 `1 }7 t8 U+ `60 A8 80
9 c: d+ V% I/ g60 12 20 $ j3 v6 y* `9 p# C
60 04 00 % h- T% j) k" m9 S
60 0c 04
+ \. N5 n- E8 M  ]8 V60 0d 80
$ Z9 S: c9 J) P6 A7 R0 B& X) v60 18 7e
" a% M7 Q$ i1 r% q- X2 [  c60 17 26
7 u/ @6 C, G, R$ Z/ z60 32 24 ( s! f" ?: v7 J. \- k9 ]; N
60 03 36
7 J: v3 j4 W) Z60 1a 24
' i' b- Q4 H) x7 z8 J60 19 00
( F7 V2 e3 a) ~8 y8 U60 14 2e . U! s4 b* t0 P4 ~; S
60 15 02
! }! H$ v' ]' r+ r60 3f a6 ) O/ Q* y2 m; k3 ?% ~
60 41 02 4 P* Q+ n- R$ J; f( b5 J
60 42 08
+ x) a; u1 N% e' a" i; , p. g8 |- O0 S$ o
60 1b 00 ; T/ O" Z7 J& E1 [) I! U4 p
60 16 06
. C; ?' J! t4 n- P1 n: i# q3 |60 33 e2 ;c0 for internal regulator
4 P- G5 f1 O: B, c60 34 bf 5 W, Z4 l' h+ S5 u1 A; l
60 96 04 ( X. b! |+ ]1 w& h; B
60 3a 00 % e- E' c( m4 M2 O9 a
60 8e 00 / Q* e$ h4 y" i" u
; + g+ C% k- P& j- s3 [7 I
60 3c 77
8 j! T% i8 J1 u. y4 a- ]60 8B 06 & ~3 i3 a& F1 l
60 94 88
( U- l% X& Q& t! W6 J60 95 88
' ?7 w8 A+ P! g6 b6 z' k60 40 c1
5 \9 y! J) c& e# H3 f! o3 f60 29 3f ;2f for internal regulator
& F  v" e: h# u2 Z7 n7 R60 0f 42 + P. J1 c+ s- c. O3 B
; 5 p; F" n6 T0 G1 C' q! @7 Y/ e
60 3d 92
! L2 x( v% r! ~. u! M5 s1 P& `$ U# g60 69 40
; B9 r' B' p; d0 r2 _8 [, p60 5C b9 # T2 R. [- x6 Z$ Z
60 5D 96 $ k) p& S. n% d/ q- n1 J
60 5E 10 * W8 P& I3 t, s. z
60 59 c0
& N5 ~" C' [) C* j4 c% t60 5A af , s$ s9 ~; u$ o( r
60 5B 55 * Z  a4 }' ?1 {8 m0 P8 G. ~- q- t
60 43 f0 ' Y) z+ B" G' ~# d6 I
60 44 10 ! S) a9 w" m, J: [9 l0 o1 D
60 45 68 # P. d2 s' u& _( M! r' g7 W6 p
60 46 96 & c& l. |: W1 ?" f9 `+ b5 ]+ S: c8 V
60 47 60 ' r/ V: O" T& J) h' [# S, V
60 48 80 4 t  b" y3 ?9 t7 z. U
60 5F e0 / P! }3 a$ Z$ D+ l% I) a4 F9 J
60 60 8c ;0c for advanced AWB (related to lens)
$ T. q9 g/ k0 v& a; R' r- ?, J' H60 61 20 / e/ N7 y" v% Q; q1 k# _9 o' a& c6 z
60 a5 d9 0 L0 h) m% y) O: P8 N
60 a4 74
- `- |5 G$ A. R% u6 D, ~* e60 8d 02 5 Y& e0 V2 y8 r9 G9 i
60 13 e7 ( W7 ~' U7 ~1 R
; ; y, \& t8 t8 _) m+ @6 M3 j
60 4f 3a 4 t# Y5 i$ k) z3 J
60 50 3d 4 q  Y6 U/ H0 ^" h$ J9 `& \! o# ^6 }2 m
60 51 03   A6 S0 ~$ J4 h0 f
60 52 12 4 X! A/ F% j& s. U
60 53 26 0 [1 N* r: j1 m. w( S1 ^0 L6 K; {
60 54 38
) ?! p0 \1 o$ a6 A$ u4 J* r60 55 40 / {: ]- I6 _' f+ [
60 56 40 ) [/ d4 k1 O- \$ _1 O$ w& o" T
60 57 40 + X, Z9 ]8 \  j" G8 F' O  L( t
60 58 0d
; s$ a+ s3 M2 }, L, c  C# b;
3 k1 \0 M3 ]$ s60 8C 23 . D) ~$ N$ Z9 X# I- ?: Y0 E6 q
60 3E 02
' |0 |) K; q2 P# x, J2 p0 N60 a9 b8
2 A9 }8 [* ?$ E& H+ Y! P' Z60 aa 92
# E. `8 V3 [; B; X8 F60 ab 0a 7 M' s, ^; n2 e5 r) H' v
;
6 `( Z) W% T) |60 8f df 9 \1 H" o: @: `; |& Y- z$ e) I
60 90 00
, o* p$ v; r1 u" L  v+ |, k9 d" U60 91 00
0 @2 ~9 l  x* p60 9f 00 & y3 U2 k# K9 v( [" B0 E
60 a0 00
: P$ o8 y- a3 h/ B, W, x60 3A 01 # G( F# o% c3 c) ^# |
; - Z: Q! R, p! c/ P, F, k% G
60 24 70 7 u- g9 v3 ~8 w' f. G% x! Q  C. G
60 25 64
4 U* ?+ O" `+ H8 R# u( H# ?60 26 c3
( a' ~; J, o1 C6 n: x6 ?* _- x) d* K;
" h" r7 E. x% b6 ?$ l0 s60 2a 00 ;00 for 50Hz
/ k* N$ L# x% w; ~  L( y60 2b 00 ;D2 for 50Hz
6 q' |8 [6 y  P;
9 ^+ R2 B8 q# @) l0 P;gamma
9 \: v7 {" |2 p- |9 |60 6c 40
/ J2 Z9 w' ]" X8 M: g% \60 6d 30
! E9 L0 ^; t! S$ R1 y! W- @& n$ M60 6e 4b
" t& Q+ U& V/ q+ e8 s8 W4 g60 6f 60
" U8 _/ P3 d! N! z60 70 70
0 J+ v% }* `. Z; L5 `' Y60 71 70
4 s+ p: y4 I/ g6 ]2 _- s; N60 72 70 : U7 p5 g, @% o. D3 S; T: R6 N& {
60 73 70 + \) U0 F( A1 l4 D$ t
60 74 60 ) `& ?/ _& [5 [$ o' p( Y
60 75 60
7 B6 F) q+ \) j# d1 s% O60 76 50
* G, T( V) Z9 z( p; C60 77 48
' w- Q9 c0 a* r; ?0 s: t7 R% A* z60 78 3a
2 ~  c( J% Y/ f9 t  @4 `6 O60 79 2e
* s' \4 z- W1 v% t60 7a 28
1 }5 d0 c( h! D7 L* y6 x60 7b 22 ! Q* Z5 l$ ^5 g* b6 S
60 7c 04 3 ~: z1 |- s/ T! x, g" b( W
60 7d 07 ) `7 e/ }1 [, }' b& u( T
60 7e 10
' Y& x3 T3 W; o0 @1 B; r, C60 7f 28 - D1 d( X  y; E3 \
60 80 36
' |: w7 ~" h: |6 v% q* W$ F60 81 44
( l1 y  k# K- P6 e60 82 52
+ B$ a9 z& [2 D60 83 60 ! M3 D4 G* D& m! O& R% o; n: o% ~) Y
60 84 6c ) ?0 P/ j" q- G7 Z
60 85 78
' H. v: s, Q5 j/ ~60 86 8c : k# C( O2 h* e2 }
60 87 9e ( r  n  E) P3 ~) w
60 88 bb % ~4 D2 P* t! ^' n  a+ P
60 89 d2 # z+ Q6 x+ S6 u1 o( o" h
60 8a e6
/ P7 f" ~! T% p; . z1 H: X9 [/ ~8 K3 K* Y
; {/ d' l+ e- G  y( Q+ q/ a
=================
& G# x  \* C# o;09032004
/ |/ W7 U$ m6 v/ G;OV9650
/ {9 m' C$ r% D9 J8 q;SXGA YUV + O- I# b8 m, Z  e- ^
;7.5fps when 24MHz input clock
0 y. V  U+ \$ `, o3 H! q; @;Device Address(Hex)/Register(Hex)/Value(Hex) & l& b. Z" R! q1 q
;
+ C9 n9 [3 R  H5 W" @9 J2 X60 12 80
! B7 r1 m8 N5 b; \0 s8 m60 11 80 1 m* c4 M0 b$ ^+ s
60 6b 0a   B" P0 C  |' L; |- T, @  v" S# e
60 6a 41 $ E( c# g+ y6 p" m
60 3b 09
- U1 _1 ~' Z( @% z0 @( n, P" r60 13 e0   j0 S% f# Z- w6 F3 T
60 01 80
/ w0 z+ q* i( }- P- `5 o60 02 80
8 g# }# N/ a9 H, a, V: C9 y60 00 00
" ?- q5 N! R/ n2 m. t1 S- G! l60 10 00 9 [& @; u+ ~' B3 S% B' \+ K) B
60 13 e5 : E9 V, r& m6 K
; - V8 n7 Z/ P. _. f' H& W, X
60 39 43 ;50 for 15fps   R7 F5 {! r1 ]3 n
60 38 12 ;93 for 15fps
; t$ T) A7 v4 B# S60 37 00 $ Z5 [7 o  d% `8 i3 t
60 35 91 ;81 for 15fps
( K/ C  H* v7 a8 T9 X60 0e 20
4 U1 \! H" H: a1 i4 a60 1e 04
! x+ G: W! m7 t1 D1 R  f; 8 I8 q; {2 r2 Z7 K  ?1 k
60 A8 80 " n. A/ K/ u" I6 n% w! W$ y
60 12 00
+ v  F) U5 y4 k( K& L5 W, g60 04 00
: W  v) H. J  o& F  n+ z60 0c 00 4 S; `5 Z% G5 g7 Q$ O8 k- P8 b* p
60 0d 00
# t& u0 W7 U4 E$ `60 18 bd # u8 z9 a; K0 @) J# G% `/ X" n
60 17 1d
& l; U& N7 d) k7 J" o8 Z60 32 ad
! v5 S! k: T* H60 03 12
+ X* r# u9 Q* P" _60 1a 81
+ T% {# ~2 @/ o. t$ n1 I5 q: W: p60 19 01 " c7 u/ M$ Q+ R3 i
60 14 2e
5 X+ y: b: z3 e7 s60 15 00 8 X4 |: F! ?; |' q. p9 A
60 3f a6
  H( s3 w  `* G1 ]60 41 02 ; a0 P( q1 ?7 K
60 42 08 6 D- f9 h% I( z( P8 d
;
% X( T1 B- v( S& _- `& K8 O: W! o60 1b 00
  G$ o# h: t8 ?0 ^9 @60 16 06 3 D: D- a2 n, e8 s/ r8 r  x& c; H
60 33 e2 ;c0 for internal regulator
& `3 L2 u9 r+ f' |2 }, ]  ^60 34 bf
% b$ b; I- N' b% |60 96 04
+ F' x3 h, L1 y# \" q& e+ _60 3a 00
4 t9 m( |! Z5 T% j7 v: q60 8e 00
3 \: Q5 }( @2 o% u) B;
: D0 t/ w/ C; [2 a1 @3 G60 3c 77 ) w) m& [* e) c+ I% `7 U, Z4 m! {
60 8B 06 2 g0 \! ?& d3 r2 ~
60 94 88
0 ^+ k( D! q' u, g) H60 95 88 % G; A- A' H0 L) O, R. }% @
60 40 c1 3 M+ H2 e! B6 [9 N# N' E
60 29 3f ;2f for internal regulator 4 F' u, d3 s! B+ N4 n2 f
60 0f 42
( y1 s, v: [( b5 g" i;
, h4 F. D: ]( K! p: D60 3d 92 2 C' ^5 v: D; p( `
60 69 40
* g" {. R4 f. s# u3 [' Y3 T& p60 5C b9 ' T+ i5 ]3 R3 |+ d9 H4 i
60 5D 96 + T" t4 V/ a5 A( d( D
60 5E 10
9 {( ?3 T! Z* G60 59 c0 6 g5 @7 [7 a+ i+ M; o
60 5A af ( _) b3 o: i/ {6 v/ ?# J: M% w
60 5B 55 - u" x" }# @8 |* t$ H/ ~
60 43 f0
! q" m0 P+ E' ^: r# A60 44 10 0 ?! K, A! z2 Z1 s+ F* N
60 45 68 + F9 b& \5 h6 u+ y5 S
60 46 96 . S" A# ?; c) e9 p& ]( {2 N1 J( A
60 47 60 . x9 V( ?# p$ C6 N& l' w& {, h% f! n" Y
60 48 80 7 z0 J; S+ y4 C- @
60 5F e0 3 }! A8 `/ Y" t  C
60 60 8C ;0c for advanced AWB (Related to lens)
) \& Q9 X# `( H9 @+ a4 `" x8 N60 61 20
7 l. x& W! x  J) {! L! J60 a5 d9 2 h& C" H) _( n( L' g
60 a4 74
- l+ b" g) K% [2 u5 P6 o60 8d 02 ! _$ R7 B" O  I& _+ w' t
60 13 e7 ; J! Z' S/ [1 l+ Y# @/ ?# T3 f
;
& N5 ^% P3 S3 H' g60 4f 3a 9 \! x1 ?: W6 y- r5 H: {2 L
60 50 3d
  l7 D! w- o6 V/ \5 b- H9 G, p60 51 03
) I" [$ y; Y9 n( F3 i' X) L& }, ~60 52 12 2 D3 r2 f" |# ]7 Y/ A
60 53 26 , a0 O9 y. V7 t7 O0 w, H9 p
60 54 38 , I5 F8 |: g) W" q  C1 z6 n
60 55 40
8 r) \- t1 V' g7 f+ E' C- o60 56 40
, Z9 S" m* ~4 F: ~# O1 ~60 57 40
- q4 ?3 g% y, W60 58 0d - {" F+ u7 L; n+ t7 R0 V# e
;
2 L" x5 E& G# \4 `* `2 n60 8C 23 0 g3 t' P4 |, R4 C  t
60 3E 02 2 C: i5 X3 y3 z* X
60 a9 b8
$ C, j0 U  J; J) @  j60 aa 92
( x' q% l* |" o, B60 ab 0a
1 w% G9 T& I. e$ ?/ Y" E; $ p* D( a( m% `- I( M; b
60 8f df   c) y( H' w% G% }* F4 f$ |* F
60 90 00 / U3 c) N" G9 G* E' r
60 91 00 . |$ p3 [# z- G+ ~# A
60 9f 00
. z, M& W! U3 k) N% _" V60 a0 00 6 G; Z6 u* R8 z9 w" k0 x
60 3A 01
" P% y& y" ?* @3 u: m; & f. `- M, C0 T
60 24 70 4 {% }* Y( j3 |- M& n/ v6 U
60 25 64
( D& O3 y: d2 R6 q3 j% d60 26 c3
/ b$ D7 a' K* d0 W4 u- I; % t( h$ n( l  J; U! m
60 2a 00 ;10 for 50Hz " r0 \6 P( J) |) S7 a: A5 x8 G
60 2b 00 ;34 for 50Hz 9 g* C1 B0 [0 v$ l& a$ i
;
# D8 X# }% m/ y2 n+ n;gamma / u0 ~- S! ?  ^$ m
60 6c 40 ( |' C" g, J* T
60 6d 30
) R! \9 ^( g: _' k4 M4 q60 6e 4b
/ {6 K- }4 e6 x5 S9 ~. A6 `7 A60 6f 60
4 h1 p( @/ d: P2 N0 |3 k9 ]60 70 70
2 Q2 B3 ?5 @! K: s60 71 70
  R# B% m7 Z  Z0 C0 i% i60 72 70
/ `& e% |9 b% d% e& ?2 d% s60 73 70
. k1 A) j4 s( j/ o  i( S60 74 60
& |6 ^2 m. U" Y( _4 _60 75 60
5 k$ d+ a5 g2 @4 I3 p60 76 50
, P. H: a3 @6 Z  f& i" F$ ~, `$ Z" D5 g60 77 48
* S: l4 y8 j' x, k5 L60 78 3a
! C( V0 e5 f1 |! [) e60 79 2e
2 \% E: X0 B  o  q6 _: {0 t60 7a 28
  b# j# {4 d: B7 w2 v% U60 7b 22
& x" H& W# X* x60 7c 04 - M& b0 W$ ]6 W- j+ g
60 7d 07
+ b6 ?) f  {3 F8 K& |+ ?60 7e 10
; ]) k9 E5 z% _60 7f 28
) r* n5 ]* f3 r, `3 o60 80 36 ! K# S. K* s8 s2 T+ y+ R
60 81 44
- N( t. c% t  @" D60 82 52
: w* }' p8 o8 ~$ K60 83 60
6 \& u5 A3 t% m6 ~, l60 84 6c
0 T5 ?) J* v7 K+ ]60 85 78 6 M! E- I" b1 B& ^4 \' Z8 Z
60 86 8c   {) k  }5 h5 g7 W2 V
60 87 9e 2 |8 L7 G" D  C5 @- _: e2 w" B
60 88 bb
+ D, `# T( E( G3 K" z( x4 I60 89 d2 " w" t, z: m* u. D" e+ k) L
60 8a e6! m8 k% W9 E" \1 t

8 l( i+ H+ C4 F) q2 u, t    非常感谢网友李鹏分享他的调试经验,让我在调试中得到一些启发,OV9650的datasheet写得太模糊了,而且125个寄存器每一个都要配置!而且有个偏门的SCCB协议,ov9650明明兼容I2C协议的,可是datasheet上就是不说!$ ]' A0 x9 c& e
——————————————————————————
1 q! z# r. v1 v1 Z原文链接
7 b: R0 c/ P/ [# r4 p" z
/ m! b# x6 n2 h8 ~Camera调试   
, T8 H% |" |' A( [) u4 j! W) t8 `# f) T基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:
- C; p# i4 F2 o3 k3 Y+ W1,提供给CMAERA得MCLK是否太快或者不正常6 f$ J$ ^' d8 o5 h( @
2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。
& {" X" X0 q) w# k- J3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。
* p3 s* Q3 R' X( d4,量量数据线有无波形,等等9 ]- ]( |5 F4 R: w* @& {
至于发挥sensor得性能要找技术支持了。
# }! [) }& x" ?% V供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  + m; i1 I1 q  T7 e
下面是我在调试OV9650的一些总结:0 q# [1 z" K8 F* f1 g* x( i6 g
3 _, J; k8 c1 X7 ], C
步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。4 U) a2 n! Y$ Q' r
如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:! u* X* |5 M5 W- u
       RESULT IsiCheckSensorIss( void ). B* l8 Z; p4 W: D1 A" p
       {
+ w8 l% q9 ]3 _6 Q. g& T$ n             UINT8 pucValue;7 l  M5 a! w8 x' W
  4 v6 o& C( w( f. o, K
             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
: @" D! Y: @* E5 H. j             if(pucValue ==0x96)//pid value of OV9650
+ ~% Q2 q8 z% D& T) S1 Q                  return RET_SUCCESS;
, _+ m5 h! S- f' H! b+ O  H. `             else* e7 r" g* l6 [$ ^! ]  |1 ~( T: j
                  return RET_FAILURE;
3 U- u% W; u9 C3 ], V         }
, g2 N% e6 v  G- W, U% C

* p3 y; h( C2 r5 o2 @/ S* F步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。3 P0 e' N" c/ w
OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。
% d- O5 E0 r: d$ m' f6 `; j

+ G0 A! |8 |2 @; Z& N8 I7 ?6 k步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。- ]( l" D" |4 q8 I' m, y
      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。
& g* n! I) h9 e

0 r$ _9 w; W1 H1 C步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。
5 H! D; _6 a! Z+ s" S. J* D置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。
+ N7 [0 R2 D, O; c3 S. r
$ Z& Y$ ]! t, x$ ?. s
至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。
7 }8 {# t5 d9 g后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。
' S' a  e+ m7 @摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?
1 ~4 }1 E2 L- F: f! USENSOR的各路电源是否接好,
& a/ Q' I7 H- Q% NCMCLK是否正确
! D) H! a% w2 k% N* X; \9 `& oRESET sensor
& B3 O( ~; C. YI2C总线上拉电阻是否匹配正确,8 T/ d1 r. v( |0 I2 @0 E
访问sensor时使用的 device ID是否正确,
1 K- S* h! ?6 HI2C的时钟CLK速率是否太高,; \/ k& i+ \$ y" t# k+ t! v- p- Y# t
两次I2C连续读写之间是否有spec规定的delay时间
2 l$ G+ [. `0 a. |CAMERA POWER UP 时序是否符合 SPEC。
' G! }2 F6 @1 E! B) E% y2 b. v, icamera的工作过程(从进入相机到拍下照片为止)
5 N5 ^3 Z5 X/ T8 s2 O一般先给电源 ,然后给 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.