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

ov9650 Camera调试笔记— 之一

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

! L6 Q" l9 C- H5 E; s# d& h3 @! |4 F: H- G3 `) J
2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错
3 F' v  U# N. n9 K; i2 C8 C& B

! c0 B/ n  t( z* R5 A. n6 S# N2 G3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错
% J' b$ m) z) n
1 W6 N9 p4 G" q" P* |; j
4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错
0 A) G1 f( Z8 E. J% `8 f5 Q$ s

% g5 X1 R2 K0 U9 q8 Z: M: k1 @5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的! ! d2 c3 }4 N% p
5 j  E. N  x1 ?" W
我觉得调试步骤应该如下:
, D! S( ^. L  `5 w! s一:先要保证硬件没有问题!

# X4 G4 A+ z' S3 B  L5 r    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。

, I0 t7 ~' v5 M: K
, D2 \5 R$ c2 J  b& [    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了! + E$ v" b; a0 z; u1 h# [
    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的):
; \* z; g1 n# Q$ d0 H9 i5 F, v( M           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。   u& I% B- r! J, u
           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。
! u/ [& A9 k! e( F+ A4 d           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms) $ Y& b  z; h0 D" C+ P8 X+ R
           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz)
/ [; }: a% Y3 y" l           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.
  n# {- `) Y5 m

3 Z+ J0 q* i& F二:OV寄存器配置: 6 d* B; M3 j9 u1 V4 @8 s2 K/ R
1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省!
  f& ^8 L( D0 @; C9 H2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。
) T0 O" u/ x/ e3 N/ C2 k3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。 ' X! T6 ?5 G0 X! {
4:如果配置大体正确,现在摄像头的数据应该出来了。
* I1 `/ y+ L; B* H8 u0 H

) A* C: @( K. p2 q8 P0 A; C7 r7 U# F3 y; p' v3 F& p
==============
! |1 o+ k, B8 e: c以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以!
7 ]( v0 v) ^& B5 B
# ?* G6 E4 a5 w5 q- `! n6 D" q;09032004 + G% T3 Z; |3 s
;OV9650 ! Z' u6 [- X" A9 L1 P
;VGA YUV + ]/ _* P5 m5 l: g$ s/ Z
;15fps when 24MHz input clock , Z5 i- ]3 @7 e6 @8 C
;Device Address(Hex)/Register(Hex)/Value(Hex)
+ k4 l  D9 z; a: Q; " N  u- B& C, v7 l) }
60 12 80
' U7 y* B9 J. |6 _: Q# d60 11 81 ; c. _- f8 H- a8 ?( H
60 6b 0a
4 Q8 g, b; [+ g4 ]' k* k4 |/ n60 6a 3e
) z. U! Z  H/ G5 x60 3b 09
% p/ M& {4 F4 f4 o60 13 e0 $ C8 k  s/ O4 w
60 01 80 0 l, f( K# F7 \1 y4 L
60 02 80 $ ^1 d" L+ h! L: k. s! D5 V' c
60 00 00
7 B/ @8 f5 i$ r! T60 10 00 & Z" d  W3 S: L; E3 m5 J  t8 a- B
60 13 e5
) D. U# Z$ x* J5 x4 l% l; ) u6 C1 R1 p4 |
60 39 43 ;50 for 30fps   b4 X6 _8 h9 o/ X# V
60 38 12 ;92 for 30fps   E, v$ h( ?2 p4 q
60 37 00 ; b! @( ?( c: d; V7 v0 n
60 35 91 ;81 for 30fps
& J$ o3 j# R& u60 0e 20 6 {& {3 n3 @. q+ ]! s1 j) N
60 1e 04 ! Z" f* O1 X( Z+ m' _% ^% N
; 5 {, f& M: f5 i8 `
60 A8 80 + Q4 z% F( y3 r% n) o
60 12 40 " W- J* K5 `3 b8 j! m. C
60 04 00
' v: x2 n6 k+ n4 F2 |, U$ q; r60 0c 04 " K9 k, E; A0 c) @9 x" f
60 0d 80
( }$ E* F) ?6 Y$ l+ s; j60 18 c6 9 r& N2 Z. f4 r/ x  i( q; W; `
60 17 26
0 b" n. G, L6 f: r/ D60 32 ad - t1 k& \& Z# T$ S4 E- e
60 03 00
# ]+ [! ]2 ?8 I% }: H60 1a 3d / U1 l0 A7 K: q7 f0 A, k8 X
60 19 01 $ g" t6 U" k4 x  D8 ~' U
60 3f a6 & H& E7 u( q- b
60 14 2e
" A, |+ |3 }+ n- T7 }# V60 15 02
! ~3 j$ t' [' R5 k' i: l+ y60 41 02
* U" C, ?) |2 B8 X) R& Y60 42 08 9 Q/ s; }/ F( _. V4 ]: L
;
4 M6 t7 g4 T- m60 1b 00 ' U! O' s# g: L* I0 _7 t
60 16 06 / w6 w6 w2 O- y0 F' X
60 33 e2 ;c0 for internal regulator ! L$ f/ t2 ^; o' G" q
60 34 bf
$ j. p$ }  _2 c& F, z0 q3 e2 t60 96 04
! |9 F& i3 V* S7 Q4 o60 3a 00
& I7 e! Y# T6 P+ \0 s0 o- V: i0 [60 8e 00 6 s# q3 L: h! ~6 k& h# m: t$ x
; 7 L' Y: [# z7 C0 P$ _4 v; |
60 3c 77 : k" a8 O- j- v1 r
60 8B 06 ; i0 A+ B* l8 ~8 V
60 94 88
( Y+ q' p5 Y, U9 |60 95 88 ; |! p2 U0 ^2 B( I
60 40 c1
) A) C, U9 b7 K) @4 d5 H60 29 3f ;2f for internal regulator ; w- _8 ?0 k# \: l( L& t! o, X+ f' Q3 v
60 0f 42 0 A8 p4 H6 I8 o
; 3 ~) b4 u7 m* M: ~& }: U9 c% f, E
60 3d 92
+ Y, G& P4 {4 |60 69 40
" F# e7 j. [; q) G, m  ~8 s60 5C b9 & a+ {1 I. y6 q( U5 z. b; k
60 5D 96
* n% D$ O. N+ m& e  Z60 5E 10
9 k/ X; j0 r% R4 P" y- a: \60 59 c0   l) n9 t$ Y+ q& [
60 5A af 3 t% g# X* y: U! {! A3 A+ P5 I3 Y
60 5B 55
9 n& q9 [$ a$ p; I* r6 ]3 i60 43 f0
$ M' G+ @8 r+ h; ]3 N60 44 10
5 k, ^" _# g0 O8 {/ \. t( D  w  y' v' T60 45 68 ! y7 R; \  |; j" L) x" l
60 46 96 - ~% {# c! j2 f; M$ k) Q
60 47 60
. D& {1 m) ]5 F8 G2 X$ k% j60 48 80
- ]5 P/ b( J& ?  q( J% ?60 5F e0 , y' |4 y$ K1 F+ N1 B
60 60 8c ;0c for advanced AWB (related to lens)
" ?* o( ?# Q' {60 61 20
. ]8 P9 K$ A6 Q: W5 _60 a5 d9 + n5 o+ P6 Q9 Q8 U" d2 h6 f
60 a4 74 + r) `/ |( t2 q1 J/ ~7 Q; C
60 8d 02 & x7 a6 w! _5 u# \  h  W
60 13 e7 ; \/ K% |; G- G- p" W3 T; F
;
- }5 V" z( D$ c60 4f 3a
3 p8 d) U/ x( ~. z& S60 50 3d
# p4 X8 \. K: A! |60 51 03 * L3 k# X9 Q& a  c+ n4 b+ T
60 52 12
9 A4 [1 n+ b6 t0 e4 N9 M60 53 26
; Z; i! {- T1 q& X60 54 38
# \3 g9 Q3 ]( _* f8 v+ e$ h60 55 40
+ _- T) Q+ _( @" {! F60 56 40 2 S9 L$ p' p; L/ F
60 57 40 ( e1 b8 R) i  z4 n/ Q. @. y; Y4 l" d
60 58 0d
2 g% u% l6 a$ j+ S0 ]% q" h: F;
; c, {3 o: R2 Q5 h) p60 8C 23 7 c: |8 L. v8 u6 s# G9 [! n5 b7 `
60 3E 02 6 o* N1 f2 f8 f( j8 _, J
60 a9 b8 & L, _; f' I1 \2 ^4 f1 ]0 q0 a
60 aa 92 . V) ~) \7 P* b3 `2 M
60 ab 0a
1 w  G# d) d' B; y  D; 7 H; q# R3 w3 T
60 8f df & x; G6 @& q4 l# `* U( Q) A  G* Y
60 90 00 ) C% f4 F% \( ?& x
60 91 00
" o: o8 v! d& {$ X9 x- s/ r! q% k60 9f 00 / ~1 f# s8 L* F: B
60 a0 00 6 o2 w. O, J* a* C$ g: b
60 3A 01
7 {9 C) D: t' c' i  v2 k;
' [. d, Y; F) v- Z* A60 24 70
3 L3 X* O1 ^, t- U  d60 25 64 . }0 B4 m4 c3 b
60 26 c3
9 ]6 O3 t9 V8 B: F;
& N1 ]  ~! Q1 Q" v60 2a 00 ;10 for 50Hz
# m. c6 J! A4 n6 ~# X60 2b 00 ;40 for 50Hz + X' K# L' z6 z- z. J3 C2 D
;
! e* Z6 h1 K' ?4 S$ Z1 V1 o8 O' C;gamma
9 I6 R9 v4 v4 c# d60 6c 40 - a7 o7 d7 F9 q) |4 [( |
60 6d 30
/ [+ v& m& j$ l3 e& r) t8 X60 6e 4b " I; Y* R* c) T* _) x5 k2 S
60 6f 60 0 J# p7 W7 e1 e" V: o. y
60 70 70
( B3 o6 D% p$ z0 H60 71 70
2 v4 M3 `/ W. {60 72 70 , @' M( c7 A% N/ b- y- \% e. R
60 73 70 , i/ n' _2 Y" E% K
60 74 60 5 b+ ^3 r' \! c  ]. R' ]' U
60 75 60
& c3 N/ T. _! g6 @; f60 76 50
5 [# v' t: A5 y; R! A- U* B7 _1 e2 y60 77 48 7 m: X: G+ _; R% z  H! Z
60 78 3a
, Q6 E1 m' `* s0 M1 L60 79 2e
  s; D* c* z- E2 R7 O60 7a 28 1 u, b' i# \, e1 c% d* R
60 7b 22 4 l0 Y7 ^( t6 U% i+ ?
60 7c 04
6 k% z( }  c* h/ ^: Y% Z5 J60 7d 07 & o# U2 @% b( \8 j; }3 G! @
60 7e 10
- S' O$ w* o+ G- A; q6 a$ J* p/ g" B/ ~60 7f 28
; Y) I# \2 H$ f60 80 36 5 k- M& @, y9 q
60 81 44
. r! J2 `, o- h# e; e' C60 82 52
. M' o% H) {' e" B( U60 83 60
: b. x/ q8 t! {6 ~60 84 6c
7 Y1 }3 P3 d; c; e60 85 78
2 F0 Q/ j3 ?$ l2 ^: p# m60 86 8c 2 U' I! q% q" r* U
60 87 9e % i( j: [) D" R6 W2 O% `- {
60 88 bb
; F+ W) s* K( M7 C& r+ s) y60 89 d2
! {. F. F2 M& c' A! D60 8a e6 5 D/ o8 h6 S+ `, l( O) h; `
;
8 k  w* j, A& Q1 T$ H( b( S( g' H
==============
( ^+ H- d# w# m- i/ C8 f$ |: L) A;09032004 + x& w! G' ?9 _1 _
;OV9650 - u, j2 P: R: X2 K  c7 ^2 M9 i
;CIF YUV
' F% _9 w1 t$ M. k7 E;15fps when 24MHz input clock
- q% ]/ U6 A' S2 N7 a;Device Address(Hex)/Register(Hex)/Value(Hex) " q4 V. V8 a2 X( e1 }
;
( \" k+ }4 g6 b' N60 12 80 : C# P4 F* C6 L6 F
60 11 83
0 }1 `6 d- x( R& |' J( f60 6b 0a 4 f6 r  m6 C$ Z( M: t+ _3 {5 g6 g
60 6a 30 ' o; I' O# b2 D( e
60 3b 09 4 e+ Y$ c( p$ Y$ C1 V5 ]& H
60 13 e0 2 }) v& Y$ P; i6 ?, i
60 01 80
9 }9 G& ]* G3 @9 M  o+ }/ ^7 S: a60 02 80
* z- F7 e+ R; @! Z' U9 g* i60 00 00 ; N' @& C/ d3 G  K( k
60 10 00
$ v1 A+ F# d  o1 Y60 13 e5 : ]6 Y. O# G+ [+ g3 p  ~
; + l) M; G' T! S8 ^# v6 I1 E( n/ X& ?
60 39 43 * I4 E: h# L2 d) f' W- J
60 38 12
7 O2 r/ z8 N7 b: z0 u0 H" D60 37 00
; J8 F- z, ^  m0 z60 35 91
4 J6 |- L5 I3 J5 \60 0e a0
: {2 V8 t& \( k/ [9 E5 g) s  N60 1e 04
6 \+ V3 j- F' \+ N;
5 Q* T( i" |# G8 Y% h+ t60 A8 80
: O0 {8 ]: r5 A7 u! ~/ j4 C* y7 l60 12 20
8 v/ x! P: \: s6 C! W4 S$ @0 g. o60 04 00
( Z! D  j9 T: k) I) t60 0c 04
% J5 @. A' _1 G8 O! b2 h( m60 0d 80
, X4 m: B+ o4 p9 C; ]7 Q) J60 18 7e ; ?. O$ A. [$ g2 z( x+ \
60 17 26 # e! a- B* s/ X& Y% [
60 32 24
, D. P. }* h5 u) A60 03 36   m; n! Z/ V7 M6 X
60 1a 24
, t) @$ H* S/ R! f1 N" B' D60 19 00 / g; R' R' A$ `8 h3 S
60 14 2e % m- Z& e! F' Y8 V6 B  O
60 15 02   \, }$ c+ a( t  C
60 3f a6 ' r5 f8 G) q: r0 w9 ]7 `, H2 B
60 41 02
& P+ z, n9 C( F# V60 42 08
& I  \: R0 I* ^7 \2 w; " a. O" C6 Q/ G7 n
60 1b 00
$ Y4 y/ m5 A) `* d: J8 q60 16 06
  B" u) h7 z4 L1 N60 33 e2 ;c0 for internal regulator
  z  J* B" P1 X60 34 bf , y  H0 ~% Y+ V. c7 |3 g
60 96 04 1 i9 _0 k/ b) D8 d. Y
60 3a 00 : T9 p9 n2 J7 I" {! y+ ?2 u
60 8e 00
4 r& n/ T# r' B;
' r* O5 R$ j. O6 z60 3c 77
4 y6 _/ ?( N. ]' _2 P) w" x60 8B 06 9 t# n$ y. N6 Y8 D: y# R( Q, ^) a1 U
60 94 88 : b5 m2 s8 P! Z6 _
60 95 88
  X4 f( ^( U# i2 L60 40 c1
" Y  _0 R" ^9 t5 z$ m7 b( V9 L+ J60 29 3f ;2f for internal regulator
8 [& A& V+ p! W! h0 E60 0f 42
8 f9 F2 S6 |- W- I" R;
, t& h6 ~& @3 q( u% w# N2 x& U" I60 3d 92
! A6 |2 j0 J! `! x7 ~60 69 40 * c) m. X% O' ]8 s2 G3 [
60 5C b9
- n6 H' }2 A- V60 5D 96 1 Y, ^# `7 E% w: _/ }
60 5E 10
" ~. E6 d) a3 H6 S( y2 p60 59 c0
( M* |1 j# n, p: A' t+ D60 5A af % x2 \* v& E- B+ z8 d0 }
60 5B 55 7 l& x# L' p' x7 m/ P
60 43 f0
( j& t3 r8 C6 U* n6 m' B3 x) H60 44 10 / y6 P: o7 w9 h
60 45 68 % `$ e3 O3 \" l8 t/ T
60 46 96 ) L& [8 D- T3 p4 C) i' f! w  ~
60 47 60 7 @1 t) n" W0 @; U2 J( N
60 48 80 # u' h: z$ P3 ~9 v- E; g
60 5F e0 0 z% K' Q2 k) r8 X) t
60 60 8c ;0c for advanced AWB (related to lens)
7 D! q9 E3 _2 G6 m% g. \. `60 61 20 ! T' B% |% g0 X: N- {! t; G/ d
60 a5 d9
3 ~7 B/ m! H5 y& H- K60 a4 74 $ `6 T) L$ c0 {8 V5 {/ }) T
60 8d 02
8 k- g8 v: ?- q( c: z5 `5 Q- G# W60 13 e7
+ G& f! e+ W- z: ?3 D;
: m, ?/ R/ i. v+ H- S# W" m60 4f 3a , @: I: e+ v) I# I# ~4 I
60 50 3d 2 K" k. l; f, {
60 51 03
5 z* W6 e, O2 H7 U* f* A3 C3 X  }60 52 12 3 ~3 r+ i1 T6 j4 F3 y
60 53 26
+ n7 L) ]/ \/ c  ]) e60 54 38
) _9 A- ~' \8 O& e) Z& w7 {1 C2 ?60 55 40
. ]. Z! i; }+ ~, {  P- u60 56 40 , p/ e/ Q4 a( b( F; T: c9 x$ f
60 57 40 9 b2 {- h* |: f" `/ m% g/ k
60 58 0d
3 i/ H( d; a' |! ~;
% R6 q7 i& R6 @% X60 8C 23 - d. v4 q7 I( d; Q1 h) ^3 m5 L# ]
60 3E 02
, O6 Y! [2 T0 C60 a9 b8
' ^3 |) X/ U( i% M8 M60 aa 92 0 P- n1 E$ @+ z( R; s% Z0 s
60 ab 0a " K$ p* v: P  w; n* [! W
;
( E' V3 \) |& p6 n, q; @1 g60 8f df , i, _, y  G9 u' n; R
60 90 00
& h0 n9 M7 K! |' a" k+ M60 91 00
1 Y, v4 F6 {6 Y2 j! {: _60 9f 00
: z: k& s) ^8 r  L# T& |! r0 W0 m) g60 a0 00
% K3 D: Q) u4 g3 C3 k60 3A 01 ( }& s) X1 R) b1 J
;
& y' u( {8 [' l- l  b6 v  z60 24 70
' r! x( J5 Z  l' \: @, v8 z60 25 64 * k% l! n, V) n$ g
60 26 c3
5 @  D9 J1 ?! {! ~: A1 C; ! S& t& l, Z* w1 {3 ?' D% `
60 2a 00 ;00 for 50Hz 8 q$ x  F  d: G. ]
60 2b 00 ;D2 for 50Hz 8 x/ n  v, _3 F
;
/ p2 K* s. h" z8 l3 g- |) D;gamma
" E8 h5 D0 U9 Z, \( ^& w60 6c 40 3 F# h% ?) Y" V/ ^; A$ L
60 6d 30 5 m* S0 _6 n4 s' c0 |
60 6e 4b 6 e) s$ p2 H: X. m8 N8 v
60 6f 60 + v7 P) v- Z1 c
60 70 70 4 j, D( b1 o: Y; T0 A% o
60 71 70 " u* m- ?' `4 v; }/ r+ c9 L
60 72 70
" S* x7 ]/ ]6 E/ n5 r( `60 73 70 / w% }7 |* z7 H2 B0 _, A4 D
60 74 60 . f5 ~8 b# K6 t, S
60 75 60
) e& x3 @9 G. ]5 T  Q4 Z60 76 50 0 S6 Z! ?" P" k- N/ d7 S! S
60 77 48 " l8 ?' S7 ~4 ^) d8 D% K% L) w
60 78 3a : i- \3 k/ Z$ P
60 79 2e
( A* t* c3 s8 ?5 F4 E60 7a 28 , f4 {- A" T( F
60 7b 22 ( i2 q$ q& w  i" E2 h9 n1 ^
60 7c 04
9 X' t! t$ P) _) N* O3 P# Q/ @3 Y60 7d 07
, @. G" _+ G, g9 q60 7e 10
' B9 P2 b# ]  [9 X! M60 7f 28
# {! U. ]! F2 g3 U1 N2 d' `60 80 36 * ]! s6 L1 B, @# `
60 81 44
% `- O. a6 c. \8 l, N: D- Q60 82 52
- n! j* T: c) q, _. p2 S6 i60 83 60
' G$ @* L* y+ M5 E" i) w6 Y- O60 84 6c / `) L4 J6 h2 z2 n) K: C
60 85 78
* E" Q8 y* @" N9 W60 86 8c
! k, I6 D2 `3 z3 e: Y/ L60 87 9e ( V3 S: Y' c7 q7 [( O- S: M" l0 Y
60 88 bb
4 {* L; ^. T7 J, S* P5 Q0 X60 89 d2
! D+ t' R4 ?3 j9 ]& ~4 l5 P60 8a e6 / Y8 i2 M4 |2 g4 A6 ~) U; r5 C9 s# ^
;
! ]. G4 j3 K8 ^" ^
1 r% n# D: p6 r2 R, [=================
' L+ F# A3 d$ z/ [0 q$ b+ e;09032004 + \" g5 o: S$ J: e+ J" u, |% R
;OV9650 9 ?+ ~/ h& V$ P
;SXGA YUV + m7 L; O4 r) c$ H9 J3 r/ R+ M
;7.5fps when 24MHz input clock
4 @" B6 r* n4 `;Device Address(Hex)/Register(Hex)/Value(Hex)
3 q6 l2 H+ o! ]; & y* Q  G" g9 O( E
60 12 80
' Q0 A$ D: h$ d. T/ g# S1 h3 w0 `" J60 11 80 , D1 ]. R/ f& y/ S$ y; R4 O  s! X  S: I
60 6b 0a 5 S1 z1 l$ C9 {+ K  ?. [/ t# @
60 6a 41
8 I1 f, e  C2 [2 i# `* `60 3b 09   F# ~9 c0 t7 X! f5 P
60 13 e0 & m! u$ {4 I7 O
60 01 80
. h4 q$ M8 E5 n6 M9 G2 k4 k+ A60 02 80
) {, A0 {8 ?9 f60 00 00 5 P: H9 C- a& F, m# H) o
60 10 00
1 H+ u' U: o8 M) G# T60 13 e5 6 t, r; p; X! _. A$ K
; 3 E- p" h) c0 z7 I' R
60 39 43 ;50 for 15fps
2 f+ U1 o2 \0 S, M% ~' l60 38 12 ;93 for 15fps 5 B; J7 B: Y7 J6 ~$ s
60 37 00
; m/ a& w3 O; |! o60 35 91 ;81 for 15fps
4 ^, ~1 B, q! k3 L5 @' Y* Y4 H4 U60 0e 20
/ Y* t% a8 E$ I; H60 1e 04
" d; X2 _) q0 }, }) j;
1 }3 f, C: g& K% c% c! e60 A8 80 6 H% J4 u; W' q& D( @0 x1 J  U
60 12 00 : [4 W: a6 z/ x6 n2 C
60 04 00
6 i8 L+ k9 q9 R- D# D60 0c 00 : e, s6 M& \' m, Z
60 0d 00
( A# q# w6 E% H9 q2 T& [60 18 bd
" Y, q9 n) ~  Q% W) g! X1 R6 c60 17 1d 6 `: x8 J" B6 G1 _4 h* [& G
60 32 ad
+ C1 @8 k, U/ l1 R" n60 03 12
2 b  A. U  f+ A7 D* t5 Q60 1a 81
! `4 j! F9 C) O% \7 q: ?3 ]60 19 01 # t) l$ H, h% G3 ?) F: _
60 14 2e
0 A. }& I& S' D! Z  |5 A( B60 15 00
+ H4 m6 \- C5 Y! R( [- R60 3f a6
) c( n1 b5 @# T' `- Z. N' m. U60 41 02
0 e5 q' F! u* _: a) u' w- ?60 42 08
( p' H. r' U- K: B  @/ X; & {$ j" q6 Z9 v) b1 h$ K: q
60 1b 00 1 E9 @. D1 o: u6 P) |
60 16 06
- x, z, M0 Z1 s9 L3 W+ L60 33 e2 ;c0 for internal regulator
$ \- e; w1 d4 t% k60 34 bf 1 R/ X7 L- Y: ^) V6 `
60 96 04 * x9 O- }% E/ G5 E# n
60 3a 00
" @% |& c, q# e1 a) a: J3 u( f60 8e 00
% ~3 W3 L0 j. z# {5 m( Q; g;
0 s' y$ [+ ~3 V0 |/ x" f: m60 3c 77 ; E4 s9 M  u' R7 x
60 8B 06 , Z& g+ F. c/ N5 l% Q- g
60 94 88
6 h" h1 J5 d& W0 k$ e60 95 88 ) J, N. R2 [2 o( I( }) I& [8 j
60 40 c1 6 c+ o+ X2 t1 M4 S9 Z0 F+ b
60 29 3f ;2f for internal regulator
' \. U" Y9 x5 g5 `9 M8 N6 i60 0f 42 : m0 F* D5 v: R7 [
;
! T. `: n- b+ q3 Z' F6 q6 t, |60 3d 92 % c* M7 A: J* H3 @
60 69 40
3 B  }( h" l2 A( U60 5C b9 ; V; ~& x+ j; i( V! g
60 5D 96   `3 L# v- K4 r
60 5E 10
7 v+ F# I6 @# j& ?4 w* ^60 59 c0 ( ^5 c1 H( H1 E  B) w
60 5A af
/ u! i& B$ q4 A/ S60 5B 55 ' C9 e; p% y+ [9 u
60 43 f0
5 }% L! O( s3 ^1 |* b" F60 44 10 ) J/ V( c& B# }$ s
60 45 68
- F- z! d. ~0 D, y% e& S" c& M60 46 96 2 F6 y& P; m& E. o+ f" i
60 47 60 2 d1 D1 ]! L- [
60 48 80 6 ~; s5 `' g# }, b
60 5F e0 7 C. q2 f3 O, Q. B
60 60 8C ;0c for advanced AWB (Related to lens)
8 n, B# S+ S0 l% V: i+ h  L60 61 20
1 k% {  @: k/ X/ k/ _60 a5 d9
! _7 K* \3 r8 U8 t; \: W60 a4 74
- l- m, \% Y, g8 p9 E60 8d 02 0 {: H- w" P4 I( `8 j
60 13 e7
! a# Y' r9 _' G1 D7 E; ( D$ [, e2 X6 b* j% N
60 4f 3a
3 u" U/ g- E" v7 U3 D60 50 3d
# \  d4 P. L' Z6 e5 q; O60 51 03 8 L0 r3 f; y. `# n( _
60 52 12 / h6 U+ K  ^- r1 l# z
60 53 26
5 ~$ x3 L2 I$ x+ w& h+ U% b60 54 38 * O) j( j" Y, b8 j9 ?6 k0 ^
60 55 40   [! a/ M' F- m- @4 a
60 56 40
7 }" r# o  t* q( g3 k60 57 40 , j/ q" m) J+ A8 h. c; O; z8 N
60 58 0d 5 i1 U& n1 w4 W: {; H! K
; . Q9 B/ ]. w9 Y+ _6 s* B: e
60 8C 23 2 |  E2 E& n( m$ l1 e9 {% M
60 3E 02
2 A* z7 f' w0 i3 ?/ O. v60 a9 b8
, l8 z/ j- ?" g" ?: I60 aa 92 ( t2 A6 p3 k: z) C
60 ab 0a % s* [1 U2 F9 @2 {9 t
;
4 r0 z( B9 z0 G3 N4 N' W60 8f df - ^: ]# L8 {- L6 X
60 90 00 ( p# K& @5 {5 S! a( N4 D, O
60 91 00 5 x! F& H0 p; k$ O, C1 f4 w
60 9f 00
8 m1 k: T+ r8 j# [- R1 C2 N60 a0 00
1 W4 O; G7 T: r60 3A 01
  G- D7 b& F/ M( u; * Z# q4 A2 Z  \2 H- B; g
60 24 70
7 G$ C; C- X/ h% d) Z0 E" e60 25 64 ' d1 H- K8 ^, ^/ {8 S- g" `
60 26 c3
5 V9 {3 |! P% h;
2 \* l2 {8 h; T4 T" {60 2a 00 ;10 for 50Hz
9 [! Q: o3 Z3 a) N8 ^1 f60 2b 00 ;34 for 50Hz 2 P& @- D, t8 e+ E6 U/ Y
; . Q6 i! R; u* m# M5 ~- \
;gamma
* P* b/ U, Q. q3 b( R; r: a# @3 ]8 O60 6c 40 6 x& {1 P  B" \* c4 K
60 6d 30
) L* g' x' k! R7 G2 I. s60 6e 4b % |# h% _) I- E% ]/ e
60 6f 60
, j% w1 ^$ d+ P' q3 J3 u7 ?60 70 70 : \3 J/ `" T( F$ g; y9 U; S- S) k
60 71 70 3 d" Y3 E4 S8 j5 Z$ o$ ]3 G
60 72 70
6 n! I  Q4 }% T60 73 70 " J- G8 e/ r# C8 _, ~( ~
60 74 60 2 |1 B( R6 q8 P' T# e$ T
60 75 60
3 A0 `9 O# C# u60 76 50
4 \  Z6 C4 P6 c2 F9 W! V; }60 77 48
. l$ H9 H( H8 O6 C60 78 3a
8 H0 _! z9 @' h% E60 79 2e 9 k. y$ l3 _( l5 }2 c
60 7a 28 . D8 S6 c; N3 v% z
60 7b 22 ; e6 F2 W8 T+ [2 E4 Z2 w3 X
60 7c 04
, Y1 {9 `% n* m' i& j# ~* v2 ^60 7d 07 ' q2 o" v7 [8 T7 e
60 7e 10 ' X2 W) c3 k' w$ k. A" H
60 7f 28
0 b1 ^8 |! B/ W  f! M1 y2 M! Q60 80 36
. ]& G. O" {0 g+ d1 i) `60 81 44
: K( t) ]7 R+ B+ u60 82 52
( F2 L, y6 U  D- Q# T4 Q60 83 60
# u" c$ }5 }9 [) j* Q8 _60 84 6c
4 |1 {3 Z* e& Y& o+ J60 85 78
2 d# [: N1 E' }1 a60 86 8c
/ H7 v$ R3 n/ X! B( o& J& n/ D( G  w60 87 9e
* o( N$ y  T: v  c, l7 q7 H+ U60 88 bb
( C) y' ~, f9 o% w& t60 89 d2 * U. q/ V6 h% c5 n3 _( E1 V! G7 v; K
60 8a e6# O$ S4 ?0 i1 s. h, X2 a

2 v3 p( k: |% R+ ^4 s( [    非常感谢网友李鹏分享他的调试经验,让我在调试中得到一些启发,OV9650的datasheet写得太模糊了,而且125个寄存器每一个都要配置!而且有个偏门的SCCB协议,ov9650明明兼容I2C协议的,可是datasheet上就是不说!
: J/ b1 U7 f: V- S6 |0 Q——————————————————————————7 p. |  @1 a: ~  ?4 ~% S% v) p  e! e. s
原文链接6 G1 k. z. F" n$ X6 k  _& J) F$ B% n
3 k/ a( Q! f7 i9 K, W5 G, W' o
Camera调试   $ Z' a% A' f# D! r
基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:, c/ P' l  Z. \
1,提供给CMAERA得MCLK是否太快或者不正常
8 w' u" b- P3 {( x- e& `2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。
0 A. ^! j0 ~9 V1 `$ W* |3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。
- W0 w$ B  W* u( P4,量量数据线有无波形,等等
) k& z& Z9 ?" n# K7 Z' i+ K6 y: _至于发挥sensor得性能要找技术支持了。 : I8 x% A( k/ N4 G7 a: m. I
供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  0 D3 X! l2 H( a
下面是我在调试OV9650的一些总结:
7 L, ]! W: e* y
0 W% T% S0 r1 Q0 }" P" ?
步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。# l6 R7 w7 }- _' b
如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:
( o% T. Z% L1 c' {; c       RESULT IsiCheckSensorIss( void )* ~5 B. b! f4 R; z& J0 y9 m
       {5 h' O1 O% k6 N" O) W9 k
             UINT8 pucValue;
1 L! P: ^1 S; O  ) y) E7 I& Z/ O' K  ^; \; {2 P- k$ K
             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
$ E" u! _6 X/ X  i) Z             if(pucValue ==0x96)//pid value of OV9650
. s7 i) n  e6 y- U                  return RET_SUCCESS;! E! ~1 ~& w( A5 X3 I
             else. B- n7 c3 O9 T2 }/ r
                  return RET_FAILURE;
+ `+ q: }" P8 k. \, t! w+ c0 }% s         }
6 D) E$ q9 v4 ~8 c* R5 {& P. Y
+ w7 Z" M/ u3 O# W% W
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。: t& A% o% u3 t( R+ j
OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。) V* W& k+ g4 j

! k; b0 E5 e5 j( _4 g步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。
7 C% |  B& z) }8 C) k# p9 Z      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。( w& A; w) B1 M9 B7 w

- D) ^9 K1 n3 _9 \- R2 J: {步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。
; t" L- ^6 X6 ^3 d置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。
( _- J& u! X) l
" h2 S/ y# _$ ~% X, J: Y
至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。
6 H( d- L" G! N! u0 I后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。  y4 `7 f4 u9 a+ {, S2 A
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?+ M8 L5 \$ G9 c' P
SENSOR的各路电源是否接好,/ K2 c+ R1 \' D. {: o8 [
CMCLK是否正确
* O5 S" R5 i3 B1 P# W3 K9 @* aRESET sensor; h6 l% [( I4 D
I2C总线上拉电阻是否匹配正确,
0 w+ a! x, E# r' X访问sensor时使用的 device ID是否正确,
$ r9 k/ S7 Q3 z* ~3 ^8 ]I2C的时钟CLK速率是否太高,$ m0 X; p( d# R' S  W: ~5 p; W7 q
两次I2C连续读写之间是否有spec规定的delay时间
& q$ L+ Y( M  ?* D& N; o% M2 |& p0 O$ ^CAMERA POWER UP 时序是否符合 SPEC。& o7 T1 d2 V5 z2 F; q6 _8 E) K/ J
camera的工作过程(从进入相机到拍下照片为止)
0 s6 e0 v: F) m# G% g一般先给电源 ,然后给 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.