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

ov9650 Camera调试笔记— 之一

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

. q# e2 P# S" T! h/ a5 ~: }
# t2 x, D3 R- C$ W2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错
) r7 E1 x4 e2 F  j7 t1 \2 ~$ R
  P' V7 [9 i8 c! A" R% `
3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错
2 P" f5 T  b- |; g8 h2 D& e8 Z- }) _
. }4 V& C9 X, B% @0 s! _* H
4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错

+ _* C, a. b7 L  L8 w
  O" {7 M/ M2 b6 m  s) r5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的!
5 e; E5 w5 c3 {8 H) J* i* N, j. C
我觉得调试步骤应该如下:
) h6 D, I. l/ n0 q& n# U% x( M一:先要保证硬件没有问题!
$ [+ H; c' S; O' x9 @. K& D/ r
    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。
) s9 v+ @) g8 \, _& k
, l9 R8 F' [6 h9 o. \
    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了! ; T5 Y" l- T9 i: Z: h+ \
    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的): % G4 c0 V) ?. t; k8 K2 d
           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。 1 E5 Y" e/ p8 b$ L( \9 V; R
           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。
2 m# \; ~8 Z8 B           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms) 4 f' U+ r6 J. |( O0 c- r; h
           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz)
; f" q/ L8 Q- g, i           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.
  m  j# \" S+ Z$ O( z

4 O% |; L% s% s+ c二:OV寄存器配置: 4 e/ l( x" U( ^, }. ?
1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省! : I, |' ?$ C% O' z' T/ ]
2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。
" a: X/ T8 {2 }) v/ ^3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。
0 t& \7 w& u/ j3 Z; [$ U6 p4:如果配置大体正确,现在摄像头的数据应该出来了。 ! h- f; I5 m* o# [6 f4 @  o
/ j* S& ]: D& H8 |: {/ ]

9 {; Z) r7 f/ g1 J: P4 F============== . w4 D" \! u2 }& r" @2 V' i* V8 ~
以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以!
9 v1 j* p; w) p% s
) p. C+ m+ ]6 r;09032004 + _. F' y8 }' ~  a! A+ c( C- ?7 |
;OV9650 ; k+ g# }. G% a
;VGA YUV - F+ ~8 G- a2 \4 l) N8 b  [8 q6 p/ R3 I
;15fps when 24MHz input clock 8 _2 ~) m4 r& x! ?9 ^
;Device Address(Hex)/Register(Hex)/Value(Hex) ( [# `) n. F( U) ]% P
;
, i/ V7 a2 P# b+ d60 12 80 / i0 |4 f+ f8 M) j3 V
60 11 81 2 u, W( N' Q& F# w8 i* K
60 6b 0a 3 Q+ H6 w" T5 ]! d
60 6a 3e # h& V' [+ Y6 R( L9 M# i
60 3b 09 ' i* G1 F' J2 C' i0 @
60 13 e0
+ V9 E- y& R% N9 v" m60 01 80
6 J) n7 a- k$ E! ?3 D60 02 80
8 u/ H8 t5 l1 w60 00 00
# k( G* _& l' T" n/ A* g( ]+ V) g( j60 10 00 " i; k- O2 B( u! O6 y- c  k
60 13 e5
' ^! [# e: Z$ O5 h2 s;
. D$ e& d5 C: g& Y: C( e9 `60 39 43 ;50 for 30fps
1 b' C" c. S+ H9 P7 h# D60 38 12 ;92 for 30fps . ?* ^9 K' I4 @, P
60 37 00 / L8 B) r4 d* a. M' m
60 35 91 ;81 for 30fps * I0 p: H3 C" L- z$ f$ p1 F
60 0e 20 1 z  x3 U) D* w9 Z0 E6 h+ ^
60 1e 04 - G* C: y) k/ I. P' G( C
;
7 w3 d4 p' v; x1 C4 ]60 A8 80 * O2 N0 k3 I) F2 a& a* ?. ^; H
60 12 40
/ E  @/ [1 O3 S8 p2 ?60 04 00 " r" M: j; V2 }. U, N# G7 g$ u
60 0c 04
! B% h) `: v& x9 U1 Y) ~* R, z60 0d 80
4 K4 h  |& X2 O8 R) A& P( \) Q60 18 c6
% n& A3 r# \$ W9 s- c60 17 26 3 P. \6 |3 o3 F( v/ p% j+ I
60 32 ad
2 l$ J  j5 h3 G4 f& P- }% _5 o  @60 03 00
% b! I  n7 h& \8 d1 D- Y1 C) I! U60 1a 3d % d6 p% L& ?0 N5 W' i
60 19 01
8 l; F' v( c; [: N/ {* z) z60 3f a6 2 J+ S' C, u+ A$ _9 V( i
60 14 2e & q5 V" d# v% u3 Z# E; V
60 15 02
; p- {2 g, R% i+ N, |* E60 41 02
- e& `! P- ]) n. e1 T3 s60 42 08
$ e( u4 {/ N# H% }; ' j! V+ h0 w0 Q
60 1b 00
. C" F$ F2 q' Q, T7 Q1 r60 16 06
' X; m. u+ g( E* T! E60 33 e2 ;c0 for internal regulator
! X  Q# ]. E5 B+ c" }6 c( r; Q60 34 bf
/ F9 @8 Y$ n9 k) i/ T1 |60 96 04
$ ]+ R7 S$ q7 [+ K9 c: o, C60 3a 00
4 M6 e2 J% x* \/ V1 P4 w60 8e 00
% Q& l* }4 }* _3 X0 H;
1 ?( h3 j+ I' o6 L8 b; I9 G1 [, w2 @' a60 3c 77
- H% q9 J; I  J60 8B 06 + Z7 X& |0 X3 @% P' G
60 94 88
4 C. ~$ f+ `. q3 E0 u2 s: h60 95 88 - H1 |; |: u1 c
60 40 c1
5 D2 `  y8 z" R+ |$ F) z60 29 3f ;2f for internal regulator ( y( Q: \  P1 h  X8 W+ d7 r
60 0f 42 2 l6 P' U$ {9 n' D
;
3 v/ w; @6 C% E9 l/ y60 3d 92 3 I7 n* O. P2 E/ H
60 69 40
2 a' X8 _' v1 ?" J3 b, {8 N7 J60 5C b9 $ {% V1 Z$ T7 C* [2 s( x3 g
60 5D 96 9 Q" \. W" a* e( o& m7 q5 h& t/ B2 a
60 5E 10 . _0 ~, S' L0 d1 V% W+ Z
60 59 c0
% i' n' L/ e8 [4 K. ]& _+ u60 5A af
; B# ?" h" T( R' }) y60 5B 55
. p) Y+ b( t2 @/ T5 N60 43 f0
" c6 |% t3 F( \0 A4 ?60 44 10
- I" r3 p* m& J% \60 45 68
0 e; E: z& Y1 z) k) @  O9 B60 46 96
: X3 m6 Z$ W+ t- x2 Y5 X2 f+ `60 47 60
7 e9 A- c7 X1 y8 N, g60 48 80
3 \! l1 m2 D& O3 c60 5F e0
! k% }: n4 p% y- I2 T( T60 60 8c ;0c for advanced AWB (related to lens)
: @( g& e6 K2 i: ]/ c8 p) p- Q60 61 20 , Z4 M# w; y, h/ Z1 i
60 a5 d9
: y1 v, X7 E$ u7 G1 L60 a4 74
8 w! @( }5 L; _3 R* b60 8d 02 " S3 c% q& z6 j, u8 G6 i: V
60 13 e7
: V, a& S+ I9 W( X! |5 ^; 6 j7 m) u$ N+ e% E2 K! E
60 4f 3a
$ V1 W  J9 u* H60 50 3d 8 v' J- A. s( c5 T  W9 ?0 i& |
60 51 03 4 x7 _- L" \5 C+ d" Y
60 52 12 / F: o2 V$ h/ M: f
60 53 26 , w; y' S  L3 p1 f# H  o8 M! S  Q
60 54 38 * y' M) G! X0 m! f9 h
60 55 40 1 j/ l6 s- m" K' a& h6 C8 q
60 56 40
" Y0 A' v5 F, y* D& P60 57 40
% ~7 w' p9 A- Y60 58 0d / |) P  s7 ^3 E$ V
; $ b" M8 E0 s+ B
60 8C 23 " M+ Y7 L9 ]9 L4 }
60 3E 02 / E, X, ~; a$ G( [6 c, f
60 a9 b8 ; W; ^- o, T8 C, ]. ~
60 aa 92
3 F; u) x: ~& p3 L& |60 ab 0a   C# H4 N  ^9 S& a1 i# q
;
) D/ i3 W: {, b5 ^0 C- B60 8f df 3 q' f# _' b( |5 ]* W
60 90 00
) a* a/ S4 y# J. \: j7 }0 l60 91 00 + y# p# E) u9 \3 Q. u3 x
60 9f 00
+ x, _2 Z% r( [7 @2 p+ e( e" e60 a0 00 : y8 Q$ J$ C0 I1 Z5 S4 E0 c
60 3A 01 . K6 p( j1 f! w( R9 B, x  d
;
, e  u0 b! w% s/ n5 q2 _60 24 70
% h/ V, K* o9 f  `60 25 64 # [0 k/ q# @) J, R' u
60 26 c3
  A. d- x) w7 R7 \/ M; - o- J& k9 |& F% I" Z
60 2a 00 ;10 for 50Hz
% ?2 M5 n5 b4 N5 I3 A) R. l60 2b 00 ;40 for 50Hz
# J* n  d% D9 o% p;
/ d" y( U* N5 G7 j/ E% [;gamma
2 c2 u( c, X0 l- H60 6c 40 3 S' D$ q, p1 A+ j6 Z0 j
60 6d 30 / n8 ^2 r" S+ b9 y5 s
60 6e 4b ) ?# }( v* P# M
60 6f 60
0 P5 W+ f5 @& E. q9 k60 70 70 2 ]# n5 G2 j$ |5 U5 M) v
60 71 70
9 T' S1 J4 J& D! B% ?0 _# s, X60 72 70
6 R. L( J6 Y; v' y( _) @$ v60 73 70
, @- D7 W# @9 v% Z& f* X% T60 74 60 ) y! C! i, [/ n
60 75 60 7 U: B- q3 Q9 g6 J; @* b# s
60 76 50
7 S) u7 V1 a) t! a" D* p: }: L7 ]60 77 48
7 P( v" w" @$ v( {60 78 3a 0 l7 Y9 C: A7 _" _* u" c! w- M
60 79 2e * x- I+ q7 x; c8 i
60 7a 28 0 \' {% B$ F6 Z2 @; i7 k8 b# v
60 7b 22 - _: n, Q8 e+ |3 B
60 7c 04
1 y2 I/ o# `& R1 K9 s7 K2 C2 m2 k60 7d 07 ! x- I7 |0 r" B
60 7e 10
+ i2 C+ I2 {5 ]60 7f 28 : ^$ M7 D7 N6 S; J
60 80 36
; H! T! f( e3 [  Q6 t60 81 44 $ ]1 Z6 b3 `  N& ^0 Y7 D$ C$ D4 K: \
60 82 52 1 E# V- @! @6 n- P4 V
60 83 60 ' n( t( w$ O, P! @, L, T3 Z
60 84 6c
3 z5 S& a% `" ?0 E3 t) e, ~: s$ w60 85 78
* U6 ~5 x7 H3 k) O6 M' `& y& ]! P+ N9 G60 86 8c 7 t  X' P+ U2 d
60 87 9e 5 r  {* ?! ?; i& L( o
60 88 bb 1 X# v! e* R- J( N, a
60 89 d2
% z/ U1 j4 D1 O4 v( V7 N6 |60 8a e6
4 f4 K+ \8 `$ G- c% X;
8 s. w4 {* ^* ?, _9 @2 t+ f
' Y4 l6 D# w$ v; j! S8 \============== 6 F) Y9 l9 C5 O5 Z: x7 h
;09032004 - q, X" Y- u* i0 q  k
;OV9650
$ g5 U; v. P  v' W;CIF YUV
& P& Y+ K! J7 e' Z$ t;15fps when 24MHz input clock * j3 X, m$ @9 x) M9 U
;Device Address(Hex)/Register(Hex)/Value(Hex)
( F# h* A7 o) |& i; + h" ]: L# E" k2 y& a& L( ~* K0 T3 I
60 12 80 0 n5 D) U6 R/ A# V+ J; u  L2 k; ^
60 11 83
( G- v% ]0 {; t60 6b 0a
0 E8 h+ t' Q+ t" x9 I! @5 S60 6a 30
- h# \( ~$ Q8 E9 }, l60 3b 09
1 R/ G5 v8 m; v: |) X) x$ q60 13 e0
  B' j6 c. y; G' X4 e2 |. L60 01 80
8 D6 V. }; u& E% v: k/ _60 02 80 5 V6 s' f: c2 u0 {# f% r
60 00 00
3 l; K; J. z6 P# f( ?2 \60 10 00
. t$ x0 J: [6 u+ A6 L; c60 13 e5
4 ]+ D! C# E7 |: h. Y;
7 j4 o; P6 y" S9 Y8 G. q5 m60 39 43 ) L# O2 Q) w  ?( x
60 38 12 ' Z- U2 y, V, x1 M
60 37 00 ; u# @" W5 ^7 p/ O$ Z: l5 R
60 35 91 ! U( m; y$ {6 w& [' C( |
60 0e a0 9 G' ]5 q% U* q2 e0 M( B
60 1e 04
$ R, i0 w2 _' m+ p% |1 ^;
% O7 w. n2 M" T- X60 A8 80
6 C: I  T( @- G( m60 12 20
. u5 [8 e' i  W5 P& S7 G. t& K/ U60 04 00 % j0 T$ v/ q% m, q3 {% B
60 0c 04 : V9 H- z$ h  M( O9 W# X
60 0d 80
) Z# y5 `. z( S1 ^. ]( q60 18 7e
7 J3 Y9 q" U6 f6 r( E4 V60 17 26
; {9 [0 Z  {5 C3 p: z1 [60 32 24 / l6 }/ w) c# y! \( m  a, X  r
60 03 36 4 s2 y% Z# T. k* D
60 1a 24 2 k+ k# z* s. v& O: B
60 19 00
  c( @: z5 L2 W60 14 2e / f( K  O$ z  t; t" m( u' N
60 15 02 ! U# A: w- ?/ M- W& j
60 3f a6 & e& R8 g& ?. v1 _' \6 j' \" M3 G
60 41 02 . [* ]9 |/ P5 f  k0 Q2 A$ m6 R
60 42 08 , ^9 i6 h2 J9 i, I0 O& y
;
0 b/ j, H! @; g2 q60 1b 00 8 M, ]# x$ R, o$ D
60 16 06
1 [; G, l. t0 U- g0 b* L60 33 e2 ;c0 for internal regulator 0 N/ _/ o4 d& Y/ N' B# f
60 34 bf : X* Z' h6 D- x& |
60 96 04
7 {8 J$ s2 b! i  Z& S# X60 3a 00
# |; F; G' ^$ m: X; Q2 p60 8e 00 7 u, F  ^8 N1 Y! e
; 1 M% j" M9 S3 q2 Z3 X. H, e9 Q
60 3c 77 ) z4 J- L) S7 X: C- ?4 v
60 8B 06 6 z7 i8 L& ^& ]  y
60 94 88
6 z4 T/ g& f6 j. i$ q8 P1 r60 95 88
' C4 \2 X  R2 q  Z# m+ C7 J- d60 40 c1 ) \4 @- Z: p, N9 X5 Z1 b' W  B
60 29 3f ;2f for internal regulator
( f2 u- S- f& J- C. w60 0f 42
" C- }  A- x! ^% G; w; 9 }2 y6 l, u& N
60 3d 92
: p+ t) C* T5 h. Y+ d/ g60 69 40 7 A7 ~% G  J2 @) R  H+ X
60 5C b9 . {3 ^6 @9 N2 F7 p) \" J9 k6 |# b
60 5D 96 ) W8 I1 i2 |% \8 |: [+ Q
60 5E 10
2 X, w' F; {5 d60 59 c0 & z' B2 X" l- o- D0 e1 Z
60 5A af
9 A  q8 Z! V' U1 Y9 R" G60 5B 55
8 z  ?' {* j  \3 X0 Y) @" T: o60 43 f0
& O4 \) {; [: q7 @60 44 10
* S, j2 E4 O1 Y  w- B60 45 68 " @- V" {% I" j9 g% I  @& w9 h: F
60 46 96
  ?, C. |) {' O8 C. f+ B60 47 60 * i: T; V; W' P! A1 i. T  B. B
60 48 80 . l$ `$ U3 J/ L9 F
60 5F e0
. R, D+ X" x( i* @60 60 8c ;0c for advanced AWB (related to lens) / j6 S9 A" Q, A6 N5 g* Q6 Y
60 61 20 / ~# I, k& Q3 q+ h
60 a5 d9
* w5 {6 |6 D$ t. S, O60 a4 74
) A" }2 ]  @9 k9 x% n60 8d 02
' W1 N$ ?! ^1 M4 ]1 j8 f60 13 e7 7 F' H( F- T% q; U' U- {/ u* Z' _
;
$ j3 d9 J2 g  u/ a0 K' x  H& k60 4f 3a
( z/ g: {8 Q" W* ^- {0 Q7 |60 50 3d & z5 j3 Z4 Z- ^$ J3 `
60 51 03 ) J+ ^1 E8 f9 a9 p
60 52 12 ( ?9 f/ b7 p1 }" P0 X" A
60 53 26
8 c% |9 b0 V! I/ w9 Z60 54 38
% V$ e( \' l; d60 55 40
. t2 R/ t# n" w1 ~4 P60 56 40
$ S; m1 V7 ]$ s60 57 40
) p$ b5 Y+ C" Y: b! f7 a60 58 0d
$ G" g% N. d- Z4 q. O; 7 Z% Q" o+ [  }4 o" z* l! P1 ?
60 8C 23 ! S, O7 E& P. A* A" Z5 w
60 3E 02 1 n1 X) O% _8 Y9 `: e: b% H
60 a9 b8 # a, x- c% V! N0 ?, v* p: ^
60 aa 92 . z+ Y: l) L4 q" s
60 ab 0a
2 j5 \' C* D+ i( ^; 5 z5 z$ }8 h, [" D( h" ?$ x
60 8f df
, v5 R7 ^; H% s3 G60 90 00 & z$ G$ ^$ t$ z& w
60 91 00 # \3 {$ n! s% H3 }! a
60 9f 00
5 X/ V% F$ i1 A" m60 a0 00 * ]& q, _* v/ d8 ^& X
60 3A 01
8 i. B8 K8 |  d9 t8 b/ Q4 ?2 U; 9 {8 F, F  T* L) e& ]+ k: l
60 24 70
; |# T( {0 ~  N2 m2 x$ _60 25 64 ' U" k2 K5 @/ W
60 26 c3 % W. G9 F# a) T  w
;
4 v0 Z6 c# P$ I2 l/ |  \8 ^60 2a 00 ;00 for 50Hz
* |7 A% O! e7 S5 k6 o/ r# |5 Q60 2b 00 ;D2 for 50Hz 1 M2 X0 W1 G: N5 t; u0 S6 R
; * c% l3 h% w! g4 }$ n% m% b! c
;gamma + D" Y/ j9 O" ^
60 6c 40 $ {1 M  B2 r5 O+ |" S
60 6d 30 2 k- l0 n* m. T* {( V3 D
60 6e 4b
7 w1 n+ M+ o# [; j, O5 y60 6f 60
" @1 ?* B* y& \. T, R8 }, G60 70 70 / H$ m+ C3 e9 }* e" x, ~
60 71 70
/ K' L% D1 d% {. \: `60 72 70 # A0 j* l$ d$ j& p4 a) j* A
60 73 70 , U8 _7 a/ R/ [% ]" k% S
60 74 60 6 `4 o; m1 r" u
60 75 60
. W) e6 O. ?, ^0 Z! H' M) V60 76 50
" a* |3 y; d- J' }9 w60 77 48
. a4 T' k$ n6 r3 v+ z2 n# ~60 78 3a
+ N. p( L/ k' s1 \4 F60 79 2e ) K3 s( X) @. Y8 b# ~) B* }
60 7a 28
- }7 |' J2 k% }! y: R60 7b 22 7 w) m6 s0 l# {+ k
60 7c 04
; _8 P4 @$ ?. u7 z/ d60 7d 07
+ F+ W' m* r. _/ U$ N60 7e 10 " u3 a7 a, ~' x/ j5 q& L
60 7f 28 $ b# K1 N* M- M  s) J+ w' ^6 C
60 80 36 , ?4 m. w  A: f' X1 ?4 ?! n
60 81 44 7 r* X/ [  S& O
60 82 52
5 D9 X; u* ?$ Y9 H60 83 60 0 D- ]% O7 f- G4 ?
60 84 6c $ Y/ \; B9 q0 B3 J, ^$ r
60 85 78
& L( c% }$ W) x8 j) b! _% g60 86 8c 2 H. |4 J- z2 ~( @4 N
60 87 9e 8 c# E: ]# @- x
60 88 bb
% ?: t1 s2 P8 t& ]. c60 89 d2
5 l2 s4 V3 H% _: V, c60 8a e6 5 U& }) L! X: O# U
; + S2 F) q5 S) O, Z. \

8 z+ ~8 M" K& M9 D+ h8 a  Y" D=================
1 R, D% H, b' H;09032004
. _  `  c1 G; K;OV9650
6 h- I$ U9 \* j0 F# M6 m;SXGA YUV
6 H- x; D8 n: H  `! b  f4 D  B;7.5fps when 24MHz input clock % H+ N  ^  j0 T+ ?
;Device Address(Hex)/Register(Hex)/Value(Hex) ! @1 W) a0 K2 \9 G
;
* h5 v/ p( e& c/ h60 12 80 / K9 `; w. @7 R1 \) Z; z
60 11 80
; @6 Z" A8 Q' Q60 6b 0a
5 K$ b5 ~& T3 D2 N- e$ s, l7 }- ~60 6a 41
" p( `. ?9 l, Q; p; n60 3b 09 ) k" ^/ {8 n( a. F7 w
60 13 e0
8 Q4 Q/ i: `5 X% d) p% e% {  ]0 c60 01 80
9 {9 H7 h3 R  ~60 02 80 / D6 ?  \( C9 Y% j# \3 T
60 00 00 ( K7 E3 j% u, z
60 10 00
2 h, C5 I/ \& }; e1 B( Z0 R  N60 13 e5
; G% e4 C7 v  b" k; 0 c+ H9 G" z) Z7 T$ M1 A- Q
60 39 43 ;50 for 15fps # q+ H0 l+ _+ `5 g/ s: f
60 38 12 ;93 for 15fps
- k1 J0 e* G! J2 v$ }% t60 37 00
. B! @! s7 i" _  |! b: o  X60 35 91 ;81 for 15fps 7 o; Q( M# B1 N$ n! c
60 0e 20 / t. ^/ f1 [6 C  f' r
60 1e 04 9 x9 N  S! u' T2 q! E% j3 E" t+ I7 N( V
; ( ?# x6 L* l% }1 B
60 A8 80
  m6 ~# C; u: ]0 N5 b. _0 }& D60 12 00 4 e$ w" Q% B8 A) f
60 04 00
" o1 l. e4 d0 ^% ?+ b60 0c 00
/ ?( S) d1 V2 L, {60 0d 00
. `* h: p: l0 ]1 X60 18 bd 5 G8 h! D- v/ n! o* g- O0 ~7 t' T
60 17 1d
2 x7 r( ]$ e3 t9 x60 32 ad
6 x" a+ J0 N2 F( s3 U9 }60 03 12 , p/ _8 k! I( j, F1 R1 e8 B/ U# Y
60 1a 81 + o; j' j% ^# q  O/ x) m- _
60 19 01
, o7 r4 [& ?$ }" @9 O' c- ~( K60 14 2e % ~3 E2 l, s' u% i
60 15 00 9 Z7 S! u& X  ?5 x- A# ]& ~
60 3f a6
0 M5 n- k+ @2 Y* A. P: f60 41 02 : f* Z- W2 D, h4 L5 A/ c2 p
60 42 08 " @- g1 E5 j/ M5 w
; ( K2 K; H4 q* Q
60 1b 00
2 O2 x# V7 |% n2 L- [8 {60 16 06 0 v/ {( {& t; Y6 A8 d9 \
60 33 e2 ;c0 for internal regulator " H, R1 Q& K/ K4 D- Q# _5 _
60 34 bf
- Q4 N! N; S: k( B% o# z60 96 04
/ }! j5 y' s* L0 J; r+ g60 3a 00 % b) t+ [3 f+ R, W" I
60 8e 00 1 |; |9 H7 b1 @0 f! E7 d) h  N
; ; w# g. d$ t6 U3 k1 M0 m
60 3c 77   ~, S! R5 H* I7 A% |1 ]# l6 @$ g
60 8B 06
* \6 w4 y% ~' O2 d# g6 X60 94 88
5 k, D/ o5 O2 A7 \/ h0 X60 95 88 & N4 F) \8 h8 b# y0 [
60 40 c1
. U* I& ~) x0 N9 b60 29 3f ;2f for internal regulator ! K9 B% a+ Y2 ?" ]
60 0f 42
3 @1 y' _& i9 Q4 B2 v" C# i;
1 B2 M) J, l/ \5 e1 T60 3d 92
( ]" v' P& M, @5 S60 69 40 # A; p6 o! x2 v: J  U& Y
60 5C b9
+ h! L8 D0 C. F  n$ c" I60 5D 96
2 I/ `% ?7 w* W: }6 S60 5E 10
3 w5 m/ o! w; i5 X6 t' K60 59 c0
- a" |1 x3 f9 E0 E% q2 s- d0 |: s60 5A af , ^/ ~2 z" j' R, h6 j- `+ c7 J
60 5B 55 : `$ X# D( J% }2 Z  _; m8 \6 n" \
60 43 f0 8 q& |8 f( t# h4 U5 x
60 44 10 0 d" S+ r0 x) X4 E4 o3 v) M2 F7 ]
60 45 68
+ J+ |  U: l  b. t8 r7 m4 H( c60 46 96 " ?5 d# z7 R9 r  k* ~
60 47 60
. }, `# H8 Z  d" J+ r$ V% _/ b60 48 80 2 a2 F, I- c' G2 k5 f% N
60 5F e0 4 m4 ?  t. I7 \
60 60 8C ;0c for advanced AWB (Related to lens) % F& M, W- d* N
60 61 20 5 h3 Y8 \0 M! S1 x: f% H
60 a5 d9 9 x9 q5 H  v- Y3 x
60 a4 74
0 v5 M2 w4 Z4 H9 I7 W, _3 ], W3 B60 8d 02 6 H5 q8 l8 V. O/ a
60 13 e7 9 F% W: W2 g2 S$ q: M
; ' s. t. k0 l3 T! m: u
60 4f 3a
1 a. s! M: c9 y60 50 3d 3 K, {6 J# S3 @' A$ J+ H7 P
60 51 03
. c  q& N  s& u, e) ]' C60 52 12   y& e# `  D+ V# U! [( Y; {
60 53 26 5 r; \- n# v0 Z4 f4 B
60 54 38 / r1 t5 q$ C, Y/ J' H
60 55 40   T, y4 E! i3 A; _4 C' D; F$ w
60 56 40 ; I4 U. v' ?0 l) `
60 57 40 . s% U* e+ Y% `3 p
60 58 0d
# ]0 e& @1 H9 ]" ~- g" y/ m; 4 v8 h+ e) Y" i& o
60 8C 23
: }" d4 N3 W; l( C5 S60 3E 02 + r- {( \& p7 y* L# ?3 Q4 w
60 a9 b8   Q5 w: C- i( t6 }
60 aa 92
7 h. t; F/ ?7 M8 u1 [60 ab 0a / R. F0 D( C3 G. h& b8 A/ F8 d
;
' o- i$ s& Z9 k# J+ k- T60 8f df 9 }5 x% q7 {: b1 l' r- n
60 90 00
4 c& R  k+ i- n+ S. ]; Z# _) R60 91 00 # F$ n( X. q2 Y) s
60 9f 00 9 s( o! @8 w# F; j! G
60 a0 00
: P' x4 D( r! V* Y60 3A 01 ( _# B$ L. H) |
;
' G& z% r% o0 Q; [% C, [60 24 70 % i. j9 s! b; t
60 25 64
" r  [' h2 r, N9 F8 L60 26 c3 & E6 e- U# i( ]& q9 W
; - i, Y" `  T& U7 g$ ~5 X  ]7 P: @* Q
60 2a 00 ;10 for 50Hz
  c& N+ A/ o" Z& W' D6 z60 2b 00 ;34 for 50Hz
9 e5 y; X5 |) {;
4 ~/ v9 W  a, o' D) D) g8 n;gamma 9 y: J: L- S) X( q
60 6c 40 8 V8 H+ [. x6 C) F7 @4 ^" _: s
60 6d 30 / m- Y8 |9 }# p7 w
60 6e 4b
) O6 A' i; ^6 f! q% C  \60 6f 60 ) H* _8 M- U) Q) \
60 70 70
! O1 x5 N( T& S/ Z60 71 70 5 ~  T! D( r. |
60 72 70 . [$ y% {% ]$ ?
60 73 70 2 i/ E$ e) P) g7 L8 I  i0 k% h
60 74 60 6 E7 g( u( [" r! V1 r7 |$ B
60 75 60
/ {) m' N/ n0 ^7 `1 e$ Y0 o60 76 50 4 D8 d+ {' C+ e3 f6 ^0 B
60 77 48
) ]4 y7 g$ C4 R( s' P8 E" g& l9 f60 78 3a 2 P, x7 ]4 a+ [' z$ D
60 79 2e
6 G' s9 R& Z0 F60 7a 28
! r. d9 D/ A" [! h60 7b 22 4 V# U% R* B, ~- {" Y
60 7c 04
) e1 }. w& i2 g! R0 \60 7d 07 8 q8 R2 C' @$ L
60 7e 10 $ g7 T/ g3 H7 Q  V5 T1 }
60 7f 28 ' ^, ]3 O3 _9 j
60 80 36 7 H) L( L4 g* s9 t0 U+ E8 ?
60 81 44
" B$ @6 p5 F+ Y. w60 82 52
" t; Z7 {0 y( e! ?4 I* @3 {60 83 60 " W0 ^5 X5 t; v$ a& n: r! Z. {9 p
60 84 6c
- {0 e8 e  T5 G2 x' P60 85 78 3 c6 a6 S2 l7 q5 ^4 n# Z& Y
60 86 8c $ m6 D6 ]1 v& _& N% u
60 87 9e 7 A( B* l& \3 s0 x5 O* L7 d
60 88 bb
  F7 i' H! j! o' u8 ]2 K2 p8 |60 89 d2 / F9 _7 {+ M# g$ q& Z7 x
60 8a e67 q  H) H% i& T. L- n; ~
& Z5 Y1 q! ?8 r
    非常感谢网友李鹏分享他的调试经验,让我在调试中得到一些启发,OV9650的datasheet写得太模糊了,而且125个寄存器每一个都要配置!而且有个偏门的SCCB协议,ov9650明明兼容I2C协议的,可是datasheet上就是不说!2 V( z9 ~9 w& g' L
——————————————————————————
1 ^- u/ Y' }7 {# M% h# u原文链接
6 ], k4 l0 e' H- F) ?& \- H; }7 M2 s. @+ g0 t
Camera调试   
, D5 g$ c6 b6 J. y; b2 j基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:
; R+ d/ L6 {/ T9 i4 E/ e' m, R1,提供给CMAERA得MCLK是否太快或者不正常2 N* e# H* q; `, b" `" d
2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。
/ A' e8 l/ H1 [# \( c1 h, ^' p5 g- q3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。
7 A4 j4 k4 l1 m1 t* A4,量量数据线有无波形,等等. C! L9 [: a/ X+ @+ B6 r2 S! w& g# Q
至于发挥sensor得性能要找技术支持了。
* j  o' u1 ?0 h( Z- u/ U供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  
' e8 y: F+ c( [$ S$ ?" a% x+ u下面是我在调试OV9650的一些总结:
  z  e2 F7 L4 T. {

2 T- e3 r0 U' _  i步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。2 T9 ^! H8 C# z
如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:
) Q" l$ l* }' A# E       RESULT IsiCheckSensorIss( void )
# e; F5 f4 c! }* @       {0 u4 }3 X9 ~! B5 Y
             UINT8 pucValue;  n- N: S7 j. O# ^- j8 _& }3 J
  
7 {$ r9 _* v4 N, |1 n. Q             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);! c, Y. i; W" E  @
             if(pucValue ==0x96)//pid value of OV9650
! q4 B4 k( P- o9 m                  return RET_SUCCESS;+ C/ D% N6 c  y' _& h8 ]) L& l
             else# d3 `5 D6 y1 V; i( o3 e
                  return RET_FAILURE;- m5 ?7 O% S3 J. w" S0 S
         } ( c/ p$ Q1 n* V  A9 U
) T$ v" A+ I1 s6 T# H# ^; x
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。
( x- p/ L, h- ~OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。
$ V$ _; @$ L7 g$ N0 [5 k1 b

- V# y0 O& X( b9 x6 \$ R6 {/ A步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。
7 @; A5 i; n# l7 u3 b6 [8 W      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。
6 Y1 T, n  ~  ?2 D

0 j7 C- v( L$ x) h7 F步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。
$ p( f+ t) v9 j. h5 X# c置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。
) I) b( k- ~5 ~3 ]0 F  n

7 a; D5 V1 P) S; Y0 S至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。% \4 F4 u# l! B: |$ K/ |: z( D
后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。7 x* o; X7 m& f- l: A! K
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?3 H9 L2 Z& ]: O8 L9 T+ i
SENSOR的各路电源是否接好,
7 R% k2 t# L  E( Y; D8 b# w+ oCMCLK是否正确
  G7 c% H" W, k3 eRESET sensor3 g, ^3 z! P/ x+ n- B6 [
I2C总线上拉电阻是否匹配正确,2 |4 U% W/ ]5 b# l0 H% M6 w1 q
访问sensor时使用的 device ID是否正确,1 b/ L0 M5 Z: l7 u0 _# W$ L- W, @6 }6 J
I2C的时钟CLK速率是否太高,
7 i1 `$ n* h9 O- C3 n两次I2C连续读写之间是否有spec规定的delay时间
  n, u. c6 V- e5 GCAMERA POWER UP 时序是否符合 SPEC。9 h  J( i' z8 n* {% W1 O
camera的工作过程(从进入相机到拍下照片为止) . k2 p5 L8 n- }0 B* q2 Q
一般先给电源 ,然后给 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.