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

ov9650 Camera调试笔记— 之一

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

0 K$ @+ r- j% }: |9 r9 b% n7 a& H- P/ ]/ f
2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错

: }- ]5 J0 H% b' _: E+ }- S1 O. @! m4 g9 M
3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错

0 b9 r, a7 z0 q) L: Z$ \
9 J4 A# z/ S; v7 V* T3 T4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错

; P* w  o3 u/ {% s7 W& Y' [* f9 _1 a9 K2 u
5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的! ' i- S* \1 K- v  R' c

" E( [+ X( m' ~, a  o3 Q- F我觉得调试步骤应该如下:
( a9 y. E* w  T7 I! D0 @) o4 j; O一:先要保证硬件没有问题!
! Z9 ]2 B1 G6 T  [
    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。

' j* A( a+ J4 a& \8 F& w
! N! l- }9 r% A7 V    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了! ! a" B: ]( z4 O* U0 K3 ?
    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的): 6 [( Z: N+ f2 |/ M- w9 O- p
           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。
* |" k# ]# P" E$ t5 W; d           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。
- n8 R2 `* U( U# M& q$ {           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms) . L5 N4 n  Q+ K5 y" [+ G9 v
           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz) 1 `" K" N- }, E& W1 I# k
           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.
, f9 [: {& T+ C; Z8 g
3 q! V8 A# L  k+ Z; K/ l8 _2 a2 B2 |
二:OV寄存器配置:
! T, O9 M8 \" D  D8 h1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省! ! w, @& y, w# T$ X4 W# z& U* m! D
2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。
* t8 F/ z) k- D2 U, g$ p# U9 ~. v3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。 ( ^7 Q& L1 I2 O- i1 G
4:如果配置大体正确,现在摄像头的数据应该出来了。
7 ^" s# p- u% B/ U0 t
$ H8 l5 J6 A+ j$ H' |: g

, X% u1 x: f; j( I( g: A$ y' D==============
" @; d) ?+ A  q  Y' @以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以!
  i: R* a5 y$ J: m" ^: r' r& R
+ o8 ^8 I  I! z! Y;09032004
1 Y! s; ^4 y( W. E& H6 g: y- M3 H;OV9650 + e; @  a7 D" U& |/ u, p
;VGA YUV 7 E6 q" Z6 x3 `7 z) M$ }& r  H! F
;15fps when 24MHz input clock
8 O9 x5 f' k  B;Device Address(Hex)/Register(Hex)/Value(Hex)   c1 u" M, u. Z8 F) P# Y
;
# ?' K8 o' v" j9 U5 M" ]60 12 80 ' Z  x  Z  r' H3 ^
60 11 81
3 q+ [: V3 `/ W0 _- Z5 z* ?60 6b 0a % v+ w( z" P- f( s
60 6a 3e
8 x  L- G) N3 W. C' |) L60 3b 09 8 e: K$ G6 P4 c, u0 J! C& x
60 13 e0 8 H8 g( ?" Q6 h/ P( G* Q- B
60 01 80 . V0 j& k6 W3 \3 z# ^. p0 C7 X! B
60 02 80 2 r+ L' m, f1 L% q. \* l" r$ p
60 00 00 , ]- N- R6 v7 ^# J
60 10 00
" U  g% h- R+ }$ [60 13 e5 6 H+ ~0 v8 y  d! p; {
; 7 G  }4 D! z# x  G9 G+ |& o
60 39 43 ;50 for 30fps % O  d, E8 n0 d; p0 w
60 38 12 ;92 for 30fps 1 s9 b8 F0 |7 |# w$ `: n- }
60 37 00
& p7 U- J. l: m7 A' @! P3 @9 l# s& N3 e60 35 91 ;81 for 30fps : N3 [0 P  |) U0 N. E7 l8 C' r
60 0e 20 2 e) V+ ^  G3 i/ e% E" m
60 1e 04
' {( Q4 X7 Z: z' K;
3 r8 F, g6 {: N/ b60 A8 80
" k1 C7 h2 K* I8 U0 H$ R60 12 40
5 h. ^: l/ v% p% c8 Q% u& u60 04 00
$ K' a6 f# x9 O( \5 C3 W3 y! A60 0c 04 7 }8 X4 ^1 _! K& W; P' z7 j
60 0d 80
9 e3 c: V3 P8 O/ U! O  F3 k( |60 18 c6
1 f. R/ G) |  i. \- g8 u+ ~60 17 26
8 W$ m) B( T$ e2 {. V60 32 ad
5 ]- [7 ^: D( `0 c+ R( r, @60 03 00 , c9 a( }, |7 |
60 1a 3d
  n8 ^$ H  R/ e  E- u5 f60 19 01
1 g2 Z. ?, U$ y% a3 H- v60 3f a6 0 m) n) F! s: O
60 14 2e
# _, q; F3 y2 G7 l" a! r60 15 02   J8 k5 M, f; |9 S
60 41 02
( |) |3 x7 c" I60 42 08 4 z7 b6 s; Z3 t
; 5 ^' O9 I, k" ~; U# \" B- @: U* E
60 1b 00
4 p: V9 [3 c  ?1 c60 16 06 - }. |" T3 o, A/ f8 \; N/ u8 N
60 33 e2 ;c0 for internal regulator
6 a! ]5 R# }/ i$ D" H3 V0 l. R% Z60 34 bf
! C6 a. {2 D( O60 96 04 ! [+ L! T  e: F5 u! D6 i$ S  T# O6 x
60 3a 00
* ]; o8 z( Q9 v' U  `60 8e 00
1 A- {# ~* Z: d. o; L7 {: T8 S; ) w; ]. E2 l! p! c+ j+ Z0 t* N5 z
60 3c 77 % k" E" `% \4 W; _: n! s2 u
60 8B 06 2 y" R8 L; k0 p, J
60 94 88 ' F! M4 Y# P6 F3 T6 R: q
60 95 88 . k* r' T' r3 a5 \" }: J* ]
60 40 c1 6 n6 v  P" z: K  k' j
60 29 3f ;2f for internal regulator
5 f* r4 v, L0 f: |( _* V# B60 0f 42
7 ?3 `( {0 H/ Y- c  D1 a3 |;
2 q( d, u" i. r2 F' k60 3d 92 8 y9 x$ l& T* N" u, B" J; I- ]/ K% g
60 69 40
9 {5 s0 j3 `( j4 I% h60 5C b9 8 |  h' K0 \: V, P$ C4 p
60 5D 96 - U  Z, V* T0 C: E$ a* _
60 5E 10
# @5 G# }: |6 V6 W; m; |- B5 Q6 A60 59 c0
/ t( p) X  f1 w7 x' R$ N+ x9 x60 5A af , T/ A5 }3 N( o7 _/ z
60 5B 55
  z! x. z4 b+ w" P( Y60 43 f0 ' p# O3 W$ A% _% N% x( \( h
60 44 10
% G: i7 S9 H5 s% Y* s60 45 68
1 H* {% p; s1 A$ D$ [# l60 46 96 * j1 o" H1 m8 l
60 47 60 / ^* b* M: ^6 m0 N+ n
60 48 80
0 ^( e* @9 y. R0 B7 o60 5F e0
( |% d" H& U! b1 U2 R60 60 8c ;0c for advanced AWB (related to lens) , O8 c4 K% e! y, g. U
60 61 20 ) ^& @7 [& ]( Q8 D. `: L
60 a5 d9 , v" A; J7 z) V, Z* O
60 a4 74
2 ~2 T) e3 w4 z6 ?& P60 8d 02
6 ^" c5 [2 M7 N( s$ l60 13 e7   l$ s! [; U7 |& M' `1 v, \# H
; 6 h4 t- |) h  _
60 4f 3a - `; h3 {" R" ]. F. P/ C3 ?! [8 @7 \! K
60 50 3d / X2 P9 X6 @6 @7 [$ o2 I6 C# V
60 51 03   `% g8 Z  O: v$ e8 l  W0 P) f
60 52 12
3 P$ Z! h  v+ ]4 s, T' a' c60 53 26
- X8 ^3 ~. b' _# G60 54 38 - L( M# L6 v  g" k, e: R0 s
60 55 40 & g5 y5 C& y5 M4 P
60 56 40
9 W+ ~& Q: }) `/ A60 57 40
; y9 o  Y+ o; K& r4 p% q* }60 58 0d 3 D1 P; u2 t3 f" Q/ M) V, w* R9 ~
;
/ B0 P- o# F/ i5 T9 }' j# D$ F60 8C 23
9 ~# {4 `0 g+ x60 3E 02
3 j* c1 D1 r2 S) X3 u9 t, s60 a9 b8
! P, f  t/ ^1 [, ~60 aa 92 8 O: [7 t) \6 z: c$ I2 G- _/ ^
60 ab 0a
9 O( q/ R, x( g: t+ n; 5 n8 O8 B- @3 Q1 O0 {
60 8f df
) t% @" q% I) v* F" a) I60 90 00
2 K' {; n$ h4 l2 S" ]! U; u60 91 00
" @4 _+ x# D! a60 9f 00 % c. s( h0 J) S. O" |- }
60 a0 00 ! H2 S& n& u8 B$ f6 U# q) Q& g
60 3A 01 & {, n; S% N& E! t/ P$ s
; & [: t$ E) o( B9 S. p- W
60 24 70 6 K2 d+ Q! c$ x$ B
60 25 64 5 S( Z3 S& u; L% _4 c6 L( X+ K& ~
60 26 c3
8 S4 D3 Z6 {& W5 W;
  b6 H. W6 d7 @5 _8 P: x: G- v3 P60 2a 00 ;10 for 50Hz
* C; a7 s. h$ V/ k" ]: o  ~0 M60 2b 00 ;40 for 50Hz
0 D- ]2 Q) `( j9 J7 D;
  C( o: W9 _* ~;gamma * ^1 {$ M# {: n' G
60 6c 40 * @6 n" B5 T  _7 U
60 6d 30
* i: b2 e' C% f9 H0 g9 [60 6e 4b 2 _2 s* T) i* @! M4 g+ U7 e' p
60 6f 60
' O: J( o1 z0 [3 `& \. S6 W. d8 Q60 70 70 ; n' @7 J; K! E' _
60 71 70
6 T- }8 L/ E% u( W/ a9 h& |; v0 @: ~60 72 70 9 H9 {3 Z) K* U. i, X' @
60 73 70
2 S" j+ G  M/ I5 T0 O) @% r3 f& V60 74 60
& |. J9 f. R" J6 o  Q60 75 60 : f$ R% Z5 _5 ]+ ?  v/ l
60 76 50 . {  _; Y; g& W$ h5 j6 z& r0 S# W
60 77 48 5 X( e* s# G3 a5 A9 D. P
60 78 3a
  V. N# t6 \0 n6 e) `60 79 2e + W1 d  O' H/ n8 r/ ~( s& Z" I
60 7a 28 9 `8 M& d% f4 Y% ?$ ~5 b  z
60 7b 22
( y% y) P# ^: b+ y4 A3 V60 7c 04 0 i' ^9 g( |' E
60 7d 07 0 {8 a* v+ `. p* x
60 7e 10
* S9 S; S8 s' K60 7f 28 1 f' j0 K$ p, b1 @( R
60 80 36
3 |9 k% `  N1 S0 ?' S6 S60 81 44
5 t. }$ s0 l  e9 n, s/ ?+ y60 82 52 + U. R& h# s- g$ H9 a6 r, z7 j
60 83 60 1 ~2 y. p3 ?# \5 H$ ~. ~
60 84 6c & y0 k1 ^: T% d6 l: t
60 85 78 % e  L* R2 U) ~8 s& A
60 86 8c
6 T2 `9 \6 O5 M60 87 9e 5 V: K7 o! A/ Z4 F  \
60 88 bb , v2 D3 N  L7 j% _" r# v* V5 P3 X
60 89 d2 ! n% f5 k3 M: {' ^# ~( O7 k) ]# U
60 8a e6 % n% q! p3 X* w# ], I/ F! d& a
; ; v! f2 @: {5 z/ F
$ C4 `5 O; ?7 l- _/ p2 L% F: s; w
============== - Q" R7 y: o- g
;09032004
) h% Q. z4 ^5 g/ y;OV9650
% s2 k% `! |6 O0 x0 @1 S;CIF YUV
" H: U; I  G, l;15fps when 24MHz input clock
2 X; l, x4 z) _9 H;Device Address(Hex)/Register(Hex)/Value(Hex) & N% c4 e& O2 h. z6 l
; 9 F+ E. A' [/ v7 V; B: Y% u0 E. {
60 12 80 ) l( K6 h3 |! p/ L8 s) m
60 11 83
5 a6 m& T9 ?# }: t6 Y60 6b 0a / G6 a; j8 i  v6 C* R
60 6a 30 % ^" Q7 R) B$ z7 V
60 3b 09
+ {9 n/ J7 I6 w/ x6 E8 X6 R60 13 e0 2 s  I' U! V3 K0 y7 ]) t$ F
60 01 80
! k2 D! n4 F' w+ N60 02 80
9 f; Q+ b# ~, l60 00 00
2 O$ d8 U; {& G5 U7 J4 W. r  j60 10 00 $ C3 H# I. l  a, l8 [' s. U: H7 P
60 13 e5
; ]4 Q- w7 e2 X$ o5 Y% p; 3 t4 a  {/ g8 R+ q2 X+ _# p
60 39 43
+ i" p  a/ G, H3 g) G# b3 w. d60 38 12 # I  Y  p8 ?* x
60 37 00 6 d) |: z$ @% w7 \2 w3 _
60 35 91 4 W; |4 E; i9 X6 v
60 0e a0 ) I3 \& N( Z' k$ j# ~$ S" D# f
60 1e 04 ; |# ~9 c) x2 z7 C, A
; & E  I; ^' R3 Z
60 A8 80
5 a4 ?$ H& w$ ^- E9 `60 12 20
' D6 f2 J1 E! J. A( o- G60 04 00
* V0 a& g6 ]* U) m; N- z+ Y$ S, C60 0c 04
$ J0 {: m" M8 S( N0 z60 0d 80
% g( f; L6 B" q. _- k7 O60 18 7e
9 C8 e. X7 R5 @60 17 26 , b* H# E# U& V6 t
60 32 24
+ h6 P. {8 N/ a" k# r60 03 36
" e/ A6 _6 ^: I60 1a 24 6 t0 z, M. B  G) p
60 19 00
/ b% S0 A/ S# ~9 R2 ^* W) W60 14 2e
3 x- d* t% t5 U. o* K. I4 `60 15 02 ! r) W" t# I. ?4 }9 k
60 3f a6
& t% g: |7 ]2 K, \60 41 02
% H& l' K# U' W, R/ S) e! y60 42 08
$ u" [) j% Z; T" _1 F& V3 b: P& S8 g;
9 I9 [+ _. n* Y# I60 1b 00 % ?/ _; ^1 l8 a+ J" B; }* \
60 16 06 ' P3 B0 g* w+ X
60 33 e2 ;c0 for internal regulator 1 _8 R" _5 C+ Q! Q
60 34 bf - ?% Z' V$ t8 d& N% d% y9 |) g- j
60 96 04 1 U7 i% Q/ {2 a
60 3a 00
  m/ J) Q0 \- B- C6 K, X60 8e 00
' q. ]$ F  S& b3 j7 A7 V;   c& d% F1 K" z
60 3c 77 ' g. V) W1 u5 E& b
60 8B 06
0 f( C  T  ]2 ?60 94 88
9 w# o* J; u% ~1 v6 y60 95 88
. {: `4 }: p5 R0 K3 a6 o60 40 c1
* t  M8 b" O; S  h$ n# O60 29 3f ;2f for internal regulator ' u1 S( c$ ^8 d. d$ X
60 0f 42 % i8 K! G4 ]+ R3 J
; ' K! r# `" b% R) Q5 _' R& ]! y3 Q
60 3d 92
* ~4 j# B% O- @! u( q! S6 r( ^60 69 40 6 b6 o  v0 s4 H. ~& R
60 5C b9 8 z3 N: y6 A. n  `/ s0 t# ^
60 5D 96
6 P  N' h$ a, V8 h7 C60 5E 10
& c, S9 z/ ]5 u60 59 c0 ) o  t' H% k' J) @! C; p+ F9 `# U
60 5A af % v1 V* E: ~) O
60 5B 55 4 R+ G1 T. G! u7 u
60 43 f0
) `0 H) k! H. M( T  J# E! C5 O60 44 10
6 A  I% q8 i# O3 m60 45 68 ( P4 N8 D1 t7 V5 f9 F" b" o
60 46 96
, k% i; h4 p2 F# C( x60 47 60
/ d: K6 b/ ^. i: Q3 }) k, M60 48 80
- m3 |7 a. M( V: Q6 T2 h4 p( [60 5F e0 1 x" _/ T7 W/ |  l/ I
60 60 8c ;0c for advanced AWB (related to lens) 4 d0 A3 e* o: Q7 i" f4 ~$ _
60 61 20 - e0 G) z# v3 c4 e3 v4 p
60 a5 d9
- V# }3 D2 ~! ]! W# |& v7 i60 a4 74
- t6 {6 y) l, y1 t) @4 R60 8d 02 7 b3 A3 `; l, E4 }0 T) H. S+ M. h
60 13 e7 0 A$ {4 ^% S9 v% b1 Y
; % y5 J& f# j/ x5 P8 V0 F7 Q
60 4f 3a
; D7 m) Z; Q: x/ W( k6 t60 50 3d
" I* ?/ S$ C; b( j, V# V% a60 51 03
! J/ f, ^" {" f4 _60 52 12 1 t6 c+ Z# p  v& a2 M
60 53 26 % }1 d% k4 q6 j/ p
60 54 38 ' A7 }: n8 f0 T) w; V0 G* y
60 55 40 . X9 G0 Y/ v0 d1 R! F
60 56 40 - I0 q0 W! [5 d" B" [6 l. K
60 57 40
+ ~( ?0 P* S# A& `60 58 0d 3 T% e/ H1 T1 g* H( `& C
; ! `# B- H+ F( U) D
60 8C 23 # M+ e, a) F& a" z4 v
60 3E 02
3 g/ ]- m8 `' W60 a9 b8 # r5 O4 J$ Q7 D/ \0 b# O5 U( X
60 aa 92 ! ^% e3 s7 e" G2 N# m8 c2 b
60 ab 0a ) v" }2 m8 Q* g$ _& l4 y3 P( W7 M0 c
;
6 Y6 F6 R; Y& a" c60 8f df
- c* J$ @1 |5 C; _5 n! m- ?60 90 00 " v" F) f3 b1 ~- ?- J
60 91 00 . s3 F/ F; ~+ Q: }; m4 ?7 v
60 9f 00 0 x$ Q: k. E5 b3 K- T0 K/ Z) j
60 a0 00
  Q6 |5 W9 W% K! b7 e% d& Q60 3A 01
# t, B" V1 }3 {. s; A;
  o& Q- ~) C+ C* ]2 C  }# z' t) X60 24 70
9 z2 A, T0 _8 C60 25 64 0 V. }4 I( e9 x. }
60 26 c3 0 o& m. ], \4 a
;
! E) ~4 U+ y$ i0 A6 w# _4 v60 2a 00 ;00 for 50Hz
1 X. a% P$ {" m" \, s60 2b 00 ;D2 for 50Hz ' `" J$ a3 L7 o  n
; 2 S/ D! t+ n4 p- v0 v# x# C/ d
;gamma $ @( Q. N2 D0 u% F3 [; D1 }6 i
60 6c 40 / Z6 e' h4 |' w
60 6d 30
7 Y2 q0 H0 ^& d* M1 N. K* Z60 6e 4b
1 B7 Q: ^% }: x8 H7 {5 J% L$ S) O60 6f 60
$ w5 m4 ?3 |6 V' j! Y; Q60 70 70
5 T/ z8 M$ W% [60 71 70 % l4 B6 p% {8 B8 S
60 72 70
2 C9 d/ _. y2 x, K+ K6 c60 73 70 7 p% n0 n8 j8 b8 K+ D
60 74 60 , p, N$ D: n% s( }: b$ R
60 75 60 1 x% O+ z* @, y: H7 X, F6 u; I
60 76 50 8 \: E4 p; H6 U  `& z
60 77 48
$ Z, j8 q1 z& G; a60 78 3a
# \0 m' ?2 w, ~1 `) j60 79 2e % c( @1 l4 D9 [" A
60 7a 28
2 E( F. X8 z8 u) L6 }! ^60 7b 22 $ J4 K( Z& q* y1 x
60 7c 04
" f: w! T- O8 G! x2 [9 J60 7d 07 0 Y8 J7 p$ j5 A& A* N
60 7e 10 5 K: g# |% B! e; D# N& l: `9 z
60 7f 28 # q- ]. d+ f; @/ @% c, R
60 80 36 5 O* s6 v6 `5 j
60 81 44
. O6 ?$ `! v4 g4 S% V60 82 52 7 }! K1 Y7 P7 C; W  i6 J# U
60 83 60 2 C( U5 l* t- {
60 84 6c % f7 T" S; V$ ?% C! p
60 85 78 3 _- L  w. @9 s  h4 _+ ^' B: n( ]
60 86 8c 1 M. y# G4 l1 a" }; Q0 B
60 87 9e
' ^3 ^. d( G3 D60 88 bb
; l7 V" t# P$ ]6 Q60 89 d2
& c, y7 h" m& B7 \6 s60 8a e6 ( p& j# L5 r$ J9 s9 U2 q% @" V
;
* x+ U' p0 Z" [4 z9 Q6 @& w: f6 Q- J; \) M' y
=================
) B5 T" E! G3 B, i; d( q% |) x; m;09032004 $ p3 `; G: v& {
;OV9650
. U- o" B+ I; X6 C* j3 g;SXGA YUV 2 X+ I$ F  y" E. ]- t, S
;7.5fps when 24MHz input clock
6 X4 J2 j/ {+ o" x& ~3 ]* [$ j. R;Device Address(Hex)/Register(Hex)/Value(Hex)
! p( t4 m- E5 C: q$ g$ d3 K;
0 H. V1 K# T9 P& w8 j0 G60 12 80
+ ?/ M6 W! d* P6 _60 11 80 & C! w$ s0 q) W( p& s0 d! R' {3 r
60 6b 0a # x( v) U- p9 y: q- r  m
60 6a 41 , U6 N8 L) S4 l, O+ a+ P- N
60 3b 09
: j+ g/ n( W/ ~7 F2 b& |60 13 e0
2 c, y5 _! ^, x: V& J* u60 01 80
4 k6 s; X+ r9 O' x- p60 02 80
. \: c8 d% P' z3 R60 00 00
+ f* x  B. ]4 e# i60 10 00
/ G# a9 ?' C. W( b+ y2 G60 13 e5
( {1 I) x/ S; u;
7 ~$ A0 e8 P8 P- j9 i5 y; K60 39 43 ;50 for 15fps
% P3 i" i+ w% S8 R8 e60 38 12 ;93 for 15fps
" _' ^- }- U' `. [& O& x$ X60 37 00
9 w: i+ c! D# m6 d8 u60 35 91 ;81 for 15fps ) Y6 a0 w8 V, R( I
60 0e 20 , y/ A$ t- C& z$ {! ]3 K7 l
60 1e 04 : {7 u: U: e* z. Y( J1 P
;
, G7 |+ L( p0 @6 w8 m60 A8 80
. ]3 b$ }) _, F4 T  H* e60 12 00
. r9 e' P5 |- U# k8 v60 04 00
* k$ z  ~2 j3 u60 0c 00
3 b$ p0 ]" D9 U/ i' l( U5 L9 z0 G2 [60 0d 00 # a; Q, P2 P( a! U0 f4 q
60 18 bd " L7 @4 K$ U" v5 C' z
60 17 1d
0 k- U3 g1 t8 q; r5 F60 32 ad
" o( p; Q& H6 U5 e60 03 12
* M" D7 N0 m. ^2 k9 c60 1a 81 / s0 x7 S0 @8 I% f
60 19 01 ; ?9 [! {5 d: z' L, q0 w- Y' i
60 14 2e
1 P' ^, }- r0 R+ M: Z60 15 00
' ?: P) i+ V; m' Q60 3f a6
) E% t7 a- r# X: e60 41 02 $ Y- K' [  x* p( F4 _; L& c
60 42 08
& r! s9 d% V% p9 A; F  ~+ N" g;
  Y" v% L9 ?' |4 Q2 ]: y* G60 1b 00
$ f( {; F0 I# n60 16 06 * R( {3 W! E9 b6 P
60 33 e2 ;c0 for internal regulator
9 |4 V7 q$ \( `% f# R5 X60 34 bf * N$ W6 F3 U1 m
60 96 04
9 Q8 T8 q, s  J4 g. \* I$ B! U! o60 3a 00 ' g8 u5 J# y7 q4 ]% h. ~" n
60 8e 00 * w& Y5 V, |$ a  g( Y
;
) o! V4 A/ n3 `2 q60 3c 77 1 I5 V  T' x" f+ X
60 8B 06 , R3 l# I; W& c' e  m# u3 D0 P
60 94 88 0 A3 e" w' ~7 D# G7 k! `; \$ ?
60 95 88 & K) z# [9 r) }
60 40 c1
& L8 D/ v+ s8 A# G8 r60 29 3f ;2f for internal regulator
% B  H; t# M2 i+ Y60 0f 42 9 y; K+ h* F. \+ [6 }. [/ R
;
4 f% Y  _4 Z/ f; Q60 3d 92 7 p# l3 ]- D- m# M( r0 s: J: @
60 69 40 * o- C! x; C7 E7 B
60 5C b9 - T* y& N" E$ h
60 5D 96
5 `+ j6 k% t2 X" m" X60 5E 10 - q4 g; _" [: @) B/ Z! a& j$ s
60 59 c0 - j7 P% u" t# q% t2 }$ u3 X& q* y
60 5A af ) o$ B, b2 A( i! [% p
60 5B 55
' v; W7 x" K6 _. {% x5 c* g60 43 f0
' O9 _& `: L/ t8 M2 ]4 w1 N60 44 10 1 g8 ~5 K' O' X7 G: q5 U# ]) J
60 45 68 1 N7 v' l0 V" T
60 46 96
- S- B: I4 @9 n# t: n60 47 60 + |# w" |; O. K* ^4 f6 f) V
60 48 80
5 |+ H2 j# `, ^1 i/ X4 u60 5F e0
# f. X/ S* a" Y* }60 60 8C ;0c for advanced AWB (Related to lens) / C9 i% o1 }; t$ ]' V$ p8 U6 p
60 61 20 / z" `. x; t. {8 d3 x3 R/ g
60 a5 d9
, @" k# K; c1 s7 Y4 t60 a4 74
% @* q; v2 l1 a% X7 r/ U/ m- K60 8d 02
! d# w: V4 L- v2 @" ?! H60 13 e7
! U7 u( R1 w, t; " ~% c, ~3 j# [. I4 y( Z
60 4f 3a 0 s% z+ [: {; W
60 50 3d 9 q  m% I7 O! c( @$ _. R
60 51 03 7 u: {" H( g4 w1 ^- E5 j7 B5 k
60 52 12
% F* G3 ^3 K$ f7 f4 l9 u60 53 26
4 c; v8 X) @# d  V  @60 54 38 ' {5 `- Y* Q: U6 @% r' R
60 55 40 : s; n7 x: F! `' v! L4 I/ K2 ]
60 56 40
: n# Z, e$ {: f' m. G60 57 40
; m' L/ G/ x$ t2 }& d/ L60 58 0d 6 P- E5 P! b. S  P
;
! W! q& q+ L% j) U, K$ q60 8C 23
7 d  b& C* C: L6 }60 3E 02
: X; I( ]9 D! Y3 H/ |! ~60 a9 b8
: T9 y' D4 I5 k3 V60 aa 92
$ i1 B, f+ A: K! K60 ab 0a $ k) f: ?7 c) a# O
;
( D; K( }; E. o9 ?2 j9 n7 r60 8f df 7 D5 P1 d+ P% Y& C
60 90 00
0 K2 d% X& e% z. J) C* Z60 91 00 0 V8 v6 d0 l) y- j+ p
60 9f 00 7 |5 V0 W, ?5 C: h1 H* p# v
60 a0 00
- l5 d' }( j5 [% T) g2 I7 H/ a$ y60 3A 01 8 k9 l/ |; }( f
;
* o4 e3 X9 G8 h# l! N7 |60 24 70
; e+ u! V" r- M( c60 25 64 # D5 w0 \' s# {
60 26 c3 5 F% z  z; r+ j4 H
;
+ k( S6 v2 n' m1 j$ a60 2a 00 ;10 for 50Hz
' q! x# E% `- e& n# u) Y60 2b 00 ;34 for 50Hz 1 X! A% c: n* ^! d
; & ~7 ?0 }6 O* G. a
;gamma
% d1 P, D5 ~) r- w* `! p$ b3 z60 6c 40   L) \$ s/ N. ?) U& [- t5 K$ e4 Y; g% @
60 6d 30 1 I3 r" j3 s$ A
60 6e 4b ! j/ D6 t1 y! ~' i; y
60 6f 60
, k' z8 P2 z, h  l& |60 70 70 * k8 Z# o8 N) K
60 71 70
- q8 A) |, s' Q8 x7 f2 y; p9 [60 72 70
2 R& m% c+ I8 u- o' w3 `+ u60 73 70
5 M9 D& F: @: C+ ~+ L3 `4 y' b60 74 60
) E6 @" X) X& Q( q60 75 60
* Z& v# b7 f# F' q4 p$ N2 Q60 76 50 ' z! N# \1 c" }+ ~8 w" }5 {6 E) j
60 77 48 5 b: Y7 @! A9 ^# w
60 78 3a ! a9 ]) l- R7 f9 z) z$ [" d
60 79 2e
' C4 ]9 `" Z, O9 t1 B/ j: w60 7a 28 4 s3 R/ J. c6 F& y$ F: x  J
60 7b 22 % D% N8 _: o# k: I2 V4 j1 \, k9 S
60 7c 04 / d5 @# Y* a" d" g( N( L& a
60 7d 07 : ?5 j" F, g" c# M
60 7e 10
! L) V: {& |8 T- G. |9 t, n60 7f 28 2 G: u/ x  b! [. x5 K
60 80 36 8 _- l0 [/ n6 i8 W
60 81 44 & w' x  ^, L3 b% x! Z# P+ L# i3 O
60 82 52
: V' ?! P5 o" [/ D1 b9 c. @3 n60 83 60
  N  W: r& ?; K5 ]: a; ]2 u. x) k6 s60 84 6c 4 Z# B% B, [' K4 ?; n6 V4 h7 b
60 85 78 7 e% T; n) B) |0 H: M
60 86 8c
8 ^. z0 w7 F) W3 q* O60 87 9e
: g' @1 {. T3 O; U( g+ P3 h: [60 88 bb ' N+ |+ p5 H& S5 l7 T( @
60 89 d2 4 W5 a) ^* j8 I) K: h& f
60 8a e6) t9 G  R' P" e6 a9 W
9 E% x4 {% a+ b  j
    非常感谢网友李鹏分享他的调试经验,让我在调试中得到一些启发,OV9650的datasheet写得太模糊了,而且125个寄存器每一个都要配置!而且有个偏门的SCCB协议,ov9650明明兼容I2C协议的,可是datasheet上就是不说!
  T! R/ L3 T  d) Z4 U——————————————————————————
4 H' J! [. i5 ~! l原文链接% q( N# b. l/ }

3 Z; Z" F7 G" Q* [' ]7 ZCamera调试   . D* n$ z3 H. Q: C6 K
基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:
2 y  p9 P4 A# H( O1,提供给CMAERA得MCLK是否太快或者不正常
9 q9 m( v7 r) w+ @2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。. @: p: y! V) k6 s% M; p: w' a
3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。! d& b0 G$ D, k) G9 \
4,量量数据线有无波形,等等# [7 p; |$ \- ]+ {: ?! j
至于发挥sensor得性能要找技术支持了。
( ]1 n* T1 h$ b2 _" p7 e" g供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  # [* O: _: X8 T# G, n5 E
下面是我在调试OV9650的一些总结:
( r: q9 {9 y$ B' J* `$ T# B) `
; [. o! \. O2 x2 w
步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。/ y, s8 s1 _) J0 q  W; p
如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:% ]2 [4 o$ d7 s2 A! X) g7 Q
       RESULT IsiCheckSensorIss( void )+ k! h8 m7 J. @
       {
! m( s( o3 R' s6 ]" @, e+ g% U             UINT8 pucValue;) O9 D  O% D4 T/ C3 L
  - b) s& f% x* J
             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);6 C+ C& @% f/ n7 z) e2 i
             if(pucValue ==0x96)//pid value of OV9650
! T. a/ ]  x5 Z4 q8 L                  return RET_SUCCESS;
0 _* @+ C9 l  d; o             else; b) C& H" ~8 l
                  return RET_FAILURE;
" t) k4 n3 o1 i) n& }( w         } 2 j0 A5 r9 `/ F" m: w
- O* ^+ X& n/ X
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。1 l$ {4 Q# [, q  Q; C4 @! [9 q
OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。
- F7 U: x5 J2 s+ z

0 A# T9 I) G7 ~1 c: G步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。# O9 R" s' l' _
      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。. }: f8 a0 o! \% l! j) b

2 d# z2 X/ Q2 ~. r3 [步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。2 v/ b6 u" ~3 @: K( }2 P$ F
置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。

" T1 j+ q5 h8 X5 K; w- ^- b
8 @) k7 x" y: ~8 h8 N9 m至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。
# J+ W" e7 O( {  N后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。- P6 f8 p$ R; H) L; S$ f: C
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?  v: e; ?( b) D' Q1 @5 n
SENSOR的各路电源是否接好,
$ a- T9 j1 X* KCMCLK是否正确
; G. ^& [6 B9 I, J+ u2 x% s% b: kRESET sensor
: z# m. I. h' U9 {* a2 QI2C总线上拉电阻是否匹配正确,
4 s" \4 z+ R7 `* P访问sensor时使用的 device ID是否正确,
, g4 l% [1 t( hI2C的时钟CLK速率是否太高,2 q# m* q( b- E
两次I2C连续读写之间是否有spec规定的delay时间
3 n" M: h) K  i! g2 ]. xCAMERA POWER UP 时序是否符合 SPEC。
, m) E! Z/ Q: h7 dcamera的工作过程(从进入相机到拍下照片为止)
. B' e* f8 L  n( ]  O1 k" o5 l一般先给电源 ,然后给 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.