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

ov9650 Camera调试笔记— 之一

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

1 J  |3 j8 x( D- h: o5 z  R  B' e
6 p  q" q( ~% x* I$ x2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错

8 Y$ E+ A* x0 c! G9 x: B: G
( s, u! Y5 g5 u5 e9 v2 {6 E1 J3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错
8 |1 C6 ^6 t" d, w

4 w+ N, j. p1 O1 Q# E4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错
8 e- j' u- H8 p
" `/ X+ g" \! K9 w* |, @+ a
5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的! , ~) Z$ E* D! b( G

/ D4 k/ C2 I" i- A: X我觉得调试步骤应该如下: $ u0 k% Y9 D, r( _
一:先要保证硬件没有问题!
; I8 W/ }3 G' N* J" u& z
    1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。
$ n$ j: u+ R5 Z4 {$ o3 m/ o$ {6 C
7 F8 _3 a( ?3 Q2 t! x8 M
    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了! 6 g0 D+ u3 S: A, q, v# o* I& l' g
    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的):
6 K( W7 \% d! c5 a           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。 2 w2 I. p4 M" U7 w
           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。
' D% C: }- e2 z! Z) ^4 w! ^$ U: n% j  \           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms)
( h  @! \8 x3 m) }           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz) / x& y; J9 m( f" D6 s3 e
           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.

! q6 q8 }6 W- j$ k# X
- k6 h; m1 K: R0 Y5 @二:OV寄存器配置:
: o  f8 I0 t0 z" {1 n7 N- @( s1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省!
' A0 _$ B* m  a2 B) F& ]2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。 2 k+ `+ Z& w; @! {8 z8 D4 ~& Z
3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。
. ?: r6 U6 C4 x4 G  n8 V4:如果配置大体正确,现在摄像头的数据应该出来了。
) T5 Y2 c+ Q# v$ F( M

7 E/ \- S( w/ C* w) V( ]0 f; P! ~9 t% t( d* e
============== ( k+ [+ z, G+ t. ?4 `. @  b6 c
以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以!
8 E4 P, Y1 G8 @/ D* }3 k5 R7 w' k3 z8 A% m6 `1 U
;09032004
" b5 W) }/ V5 e- j5 c1 e% C;OV9650 6 [3 a  G2 J6 e& @* n
;VGA YUV # L  ?$ G/ i* {
;15fps when 24MHz input clock 4 V5 x+ ~! Q. D+ Q4 W' M
;Device Address(Hex)/Register(Hex)/Value(Hex) ' G0 Q8 `7 F) J- \0 p
;
+ h4 U  P- I: Z% I9 ?# ^9 O0 K60 12 80
3 T' K; Q1 S  n) n$ B& d, U60 11 81 ) V9 A$ M- R: I; Y. f) d5 f6 X2 m
60 6b 0a % N+ L1 ]& \2 c0 C  _- H
60 6a 3e ( g, D& L' t4 y# C! e# s
60 3b 09
" y& J3 c# P3 _. z  Z60 13 e0
3 c) p+ h* F" u& F( F! C60 01 80 % A3 L0 R3 l/ y* {" \  G8 J
60 02 80
& ~$ Z& P0 _: r& y1 m60 00 00
9 R: A% m& f9 E" h! z60 10 00
( J5 E2 h1 _( |  r/ J, y6 \1 t60 13 e5 ( x* S  Z& e$ S# f% V$ F& h- C
; ; w8 b. H3 j+ n/ |+ S
60 39 43 ;50 for 30fps # C7 g7 m& L) C, M6 K
60 38 12 ;92 for 30fps + j# ?( {3 ?* G; A, w: t; B6 l
60 37 00 . ]& V  M: ^- V7 s
60 35 91 ;81 for 30fps , }/ Q7 h+ G+ g- K' ~
60 0e 20
8 V( {1 _( t6 Y( P  t5 `" H9 f0 c# G60 1e 04 , m' i0 x  @5 h) l0 W5 v
;
/ f2 h; |& D5 _1 R. T$ t- _60 A8 80 ( M4 Q* ?$ N8 e9 i6 A
60 12 40 , g" q% m0 D" b4 |3 |; [2 X* `; H
60 04 00 % F3 I0 t9 a; N) R; o' e
60 0c 04
7 d3 _0 r" p+ F, |1 G5 u5 [) D# X60 0d 80
0 V, h& {2 }! c$ }' ]& X60 18 c6
( {' Y1 W) K1 Y! _6 P% Z8 C, E60 17 26 9 T1 R% }& l/ z: A
60 32 ad 6 o' O9 A3 ~- _! g5 J
60 03 00
4 U; I  ~% a# W60 1a 3d 5 U  p7 N; k- @0 u$ f8 ^
60 19 01 & J# u3 J0 U3 I; K) ]
60 3f a6 + O: A' ~3 {/ Q$ S. N4 @8 ~1 [: ^
60 14 2e
9 J; F  H4 f' Y4 j60 15 02
0 F6 V1 _8 O% m( `! E( n) C: R5 i7 w60 41 02 + _2 Z% s* ^7 ~0 U. @8 l& J
60 42 08
9 @8 ?% l3 [7 O' ^3 `2 f6 H7 g;
) U+ T5 d3 [8 k& A60 1b 00 # f/ L9 U! b2 E# q. n5 u
60 16 06
9 O) x, b- T6 s6 |2 H+ d1 S60 33 e2 ;c0 for internal regulator
: o7 B) N: }5 n( |60 34 bf
0 h+ B. W! ]# q60 96 04 ' I" j1 F$ N* y2 o
60 3a 00
9 Z0 u8 T" b0 w60 8e 00 + _! B) ?3 Q" a& J
; 3 i! q/ X9 U8 D  w8 W5 }' p
60 3c 77 5 ]3 [7 E0 k' }2 C; K
60 8B 06 . J5 B. T9 |+ X/ f  L' c  g
60 94 88
3 ~6 }) h* n; S0 m' e60 95 88 4 s6 ~' W7 V9 J4 @1 ]" G  G
60 40 c1
5 m6 t2 y) f+ j- v. M. N60 29 3f ;2f for internal regulator
" `0 E9 p0 r7 Y* H$ j5 B: H7 G60 0f 42 $ h' W1 u; N4 x6 m6 N! g; R  o
;
, X6 H0 g: f* `1 j60 3d 92 + I, O1 c* \; s$ |; X( |' _: M
60 69 40 ' s1 c5 j! V: B/ W0 D; B
60 5C b9
2 h, i/ z9 P; ~60 5D 96
  F8 T6 L0 ^+ B- l) t60 5E 10
$ p5 o, E3 P- G& W* \: q* ~60 59 c0 + X9 J1 {' h6 q; ?! m4 \
60 5A af ! n: ^2 C" w6 L1 K
60 5B 55 ( @# h, X6 t8 S3 [' E& j
60 43 f0
- M7 ]8 {/ Y0 r" \7 O9 y$ K60 44 10
5 Z: m6 R. e+ k# ^% I) [5 m60 45 68
+ U% Y# K9 k; t( R! |60 46 96
* V" G' ]) H. W1 I& m- S60 47 60 * E/ W# [  w- [
60 48 80
0 I+ V6 y+ Z! P60 5F e0 2 J+ x, W: Q) I( v0 j
60 60 8c ;0c for advanced AWB (related to lens) + g1 ?3 ]4 \  `+ t" `
60 61 20
. n  |. h. v* M: P60 a5 d9
/ g4 n; Q( M" S( }; I7 Q60 a4 74
9 H+ v5 _4 M; o9 W( ^1 M, B60 8d 02 . B  A( e5 L+ v) ~$ Z) r
60 13 e7
( m7 W, I# P9 j* b; ) j9 ?3 `" y" _, s2 N7 Y' y
60 4f 3a 8 b- m! w; R) e3 \# w
60 50 3d 5 g: ]6 L, L2 g& l% ^  P2 X
60 51 03 4 P$ Z6 E9 S( H) |2 R' R, z
60 52 12
6 }' o/ y3 u2 g! J60 53 26 - y6 P1 W9 _- g4 _( @. T' F' b1 c
60 54 38 ; B( f, n! A4 ^2 U: x
60 55 40 8 m7 o9 L- D8 Q4 v: }! J
60 56 40
" F7 \! c- t: S60 57 40
8 r) z/ e( t1 G0 P1 N60 58 0d - h, D& r5 V  n: A4 b
; 9 a; S* Q  F; W2 Q- l
60 8C 23
$ T& |9 P0 E( _$ J; d60 3E 02 - t2 ?5 B/ u) I6 q# j! i! v2 B
60 a9 b8 . K$ @, G; i  T  @. ^% |
60 aa 92
* K2 d0 R- f( x/ ^* L; O60 ab 0a ) S: [6 b$ Q! Y/ G$ a
; ! E+ K: u* Y5 t; s2 B3 i% \
60 8f df ( i/ |. D* R/ \5 F8 L
60 90 00 # c" P$ X5 x6 Q/ `5 a) w' C  o
60 91 00 3 J7 _" B% V. Y: N* i( J" H
60 9f 00
% v9 T9 @! M5 I9 u& i60 a0 00
  `& Z4 @( H4 ^. q60 3A 01
4 }" _0 s5 @5 n  e* U;
, o) C' F0 J  v3 A60 24 70 1 Y+ v& O4 ^( H9 D
60 25 64 8 b# @; n7 b2 ^
60 26 c3
) T6 M! d1 f& M1 Q8 R! a8 J7 k  v;
6 S. o0 P2 G- X( I: M) D60 2a 00 ;10 for 50Hz
/ g& [) {! {1 e4 d$ f/ n60 2b 00 ;40 for 50Hz
8 c( |% N# y( Y/ k9 h, M; U;
7 Q- i9 `3 b* R( h. W! c7 c4 o;gamma
, V9 b( v/ _. Y3 m$ Z60 6c 40 % R3 v3 f1 M9 l
60 6d 30   E0 m8 ]0 h; F- G1 w
60 6e 4b , ?  r& z. Z3 h' d
60 6f 60 % ]! U. {, @& O0 [' Y, k! C
60 70 70 0 g# \' C2 a, F) S1 y: f! z" i  D
60 71 70 ! {+ o5 g* R5 A+ b* o3 Z* d
60 72 70
) h3 m, D' l' f, a$ E8 n( p60 73 70
0 K$ M$ `7 Z+ s% s2 Y8 I60 74 60 2 Y+ \4 u. {: u3 i, a
60 75 60 : g, k4 x0 ^/ i9 x, O& m5 _+ ]& J
60 76 50 8 _: R8 Q, ~- X9 G$ A$ q* f/ y
60 77 48
/ G% P: h1 u) k9 t4 _60 78 3a
8 a4 i/ \0 E* r' z' T60 79 2e
" J8 p& f$ P7 N) i0 R60 7a 28 3 a+ q" G4 \5 i
60 7b 22 / \- X1 M/ M4 ?3 H
60 7c 04
! |5 k1 V" D1 Z* a( T7 M# p5 x5 V60 7d 07
9 c" }1 @& J  K4 V1 a60 7e 10 5 A5 j- t2 A: m- g! ~$ I
60 7f 28 / k' f( G& N) d, e
60 80 36
7 J+ {" C7 i2 Z5 Z* [; O60 81 44 - \8 f6 L9 j0 E  |5 ?. {
60 82 52 7 [3 R/ _3 \. e2 l5 H, p8 |
60 83 60
  a2 J) c2 \1 _60 84 6c ; }# h+ ~' S$ C( p  g% P& m0 ~
60 85 78
% ^: C/ n3 m4 x4 _+ ?& F60 86 8c
; @/ U$ Q- f- d7 C; D( {60 87 9e
2 q1 S1 s/ X7 O- ^% G4 g$ S60 88 bb 9 \6 G. {8 N2 Z! P: O& `
60 89 d2 : `$ D! x) P0 ^  M; C) d/ M
60 8a e6
/ l" `  e* p, i) l;
3 r6 D1 d" ^# r
# E* S; x7 Y5 l* p============== 7 L3 p! c) s5 v9 y6 a! g  P0 ]
;09032004 9 z% g# N, b. t
;OV9650 5 ]$ k; H! l# S0 a, W9 N2 e
;CIF YUV
' h, s. I4 I; s( M" X' L$ t4 M;15fps when 24MHz input clock 0 N. [2 U* u$ c- Z
;Device Address(Hex)/Register(Hex)/Value(Hex)
  |) A/ S0 O9 |: a; : p7 [! G) L4 {; W! p$ K+ y! M
60 12 80 ' ?& [: P" d# ^) o2 q) N) H2 E
60 11 83 # B& j' f: {: X: T7 j
60 6b 0a + o& p: Q& j/ K# L0 z8 u
60 6a 30 ; A, {/ |$ D4 Q- @
60 3b 09 ! J; }: x- S0 I% O0 M: Y- g: Q
60 13 e0 0 _( i) L1 I/ Y& i* q& p
60 01 80 & T4 Z; Y: l& C7 ]/ I4 \; I
60 02 80
  N! o1 L5 T+ z; o* S60 00 00 1 H# B$ w( d. p; C% C  V
60 10 00
* x) r7 y. i9 U  z60 13 e5
  H% [6 @4 u' Z- ]  C: q) Z7 C; 0 A$ I) u" M- q7 J% j  F! ?
60 39 43 * M! e) k% |3 y/ g/ o0 J& @
60 38 12 ! ^# @( `- }1 L9 E4 e+ ^6 y
60 37 00
  R' R& ]+ K  i+ `1 h" {" ?! O$ j60 35 91
; ]6 q1 \% g) [( D9 S60 0e a0
6 M9 F1 C" ]- [60 1e 04
* {" _" o0 W# e4 W;
6 G) Y' Z" o- I' d' r60 A8 80
% ?! q& e  B$ X7 p6 y& D! ^: |0 E60 12 20
0 [5 k7 H$ |) b8 g9 Y8 Y60 04 00 " A( k+ g6 e7 a. @3 A! q: v
60 0c 04 6 m* o8 A8 n* O9 }  d
60 0d 80 + c9 z' v1 `) A; K7 r
60 18 7e
7 J& H/ L6 H+ A: s: H$ B/ d60 17 26
7 m$ {( h) F  D5 C$ {7 ?9 U! G60 32 24 ) D2 S+ t9 W: i: |5 W, H2 C
60 03 36
. M4 x) l  t) f8 T60 1a 24
+ A0 P1 W) s1 {60 19 00 5 |5 D, V5 d7 O0 A, g5 Z) p: q
60 14 2e % P6 \+ C/ _9 V+ v- h  N# V
60 15 02
" i9 T0 U% B) h# h60 3f a6
- a% J0 a0 S, C$ [8 E60 41 02 + k. l7 C  b/ H
60 42 08
3 H/ m4 R3 B( b; Q: \/ Q2 c0 v7 I; : K& r) S2 G* `- a! M& U
60 1b 00 * m) `7 _, k% U7 |- E6 @
60 16 06
9 a4 [' f& A; }) o( ]6 @( B60 33 e2 ;c0 for internal regulator * o' }6 r- {4 q  I
60 34 bf
, d" d+ d+ j: F2 l; G60 96 04
9 ^* A' T( E- I5 m/ ]; U60 3a 00
% n) a) k& U  O60 8e 00 # D$ }% G8 A0 M% r  v  K
; 3 r7 T7 f: e7 X+ |; X3 \4 `& `
60 3c 77
' [6 d& u1 t, y9 H0 }: }3 ?60 8B 06 $ r9 R; E3 l2 r7 ]2 d
60 94 88
1 U. O& [+ |% e" {$ ^60 95 88
; Y7 e' K' j& y. }$ R60 40 c1
- k4 ?" d8 _: i9 \3 L60 29 3f ;2f for internal regulator
) G: A/ M8 h6 b2 f% q60 0f 42
4 P2 n8 {# U) @- p) P6 o% f;
/ W6 p5 A4 p6 G# c60 3d 92
" G. p; R* i2 B1 z$ o6 Y2 G! ^60 69 40 ' g$ \  i0 |& Q
60 5C b9
! _+ ^2 d( H6 R6 d7 A$ {* W2 w7 a60 5D 96 ' K* U! r% I4 }& e
60 5E 10
# C& ^' Q4 v! S( a6 X4 L60 59 c0
6 x( k: E4 ?' f+ ]6 ^4 O9 |60 5A af
) t2 w! X& a7 Z( b* c60 5B 55 " b0 O- j7 ^& |; @2 N$ K; h
60 43 f0 ! B" ~4 t9 F1 h' f/ |* ^
60 44 10
( ~2 d# R  N4 K  R$ l" L60 45 68
# C% e7 \; D+ Q! [$ S% n60 46 96
: v  n1 y0 v- ~% [3 T# z60 47 60 " }' K2 U# n. ?8 d% \) C9 b2 h. V
60 48 80
; h: Y* u. \! ?! R1 A. s60 5F e0
  |9 v1 @0 U3 g+ i: `0 E: O60 60 8c ;0c for advanced AWB (related to lens)
! ?+ d) k/ e/ ?1 T) C! T60 61 20 . c2 |# A/ Q. j8 A3 p
60 a5 d9
( E4 A. S) g; ~* L9 }4 ^6 e60 a4 74
4 O( A1 H; }- V0 |; N# l0 E60 8d 02 , p% z. k3 K1 i0 \3 o/ {
60 13 e7
/ e1 g  t2 @; r, B: Z8 E! b;
/ I1 v# c" Y% p9 B+ B60 4f 3a / F5 Q5 [( P2 L; u$ J* ~2 K5 ^. j
60 50 3d 2 }( n0 F. `2 j% u: E+ C2 u6 u$ [+ c
60 51 03
8 f- R4 b* D+ q60 52 12
) i. O8 }5 b- w, ~60 53 26
: t# u/ y. |& t0 V) t60 54 38
/ S5 f5 Y- i* O7 ]5 r! S* }* j60 55 40   s) v( {% `0 ~2 h. t
60 56 40   t4 w8 n9 o% ^; u  A* }4 Y5 s% w
60 57 40
( {3 `3 m4 N8 q& d' o' t; K6 Y60 58 0d
5 A: h/ [& F6 T2 b" |) d;
" g  {$ Q9 r8 V3 @60 8C 23
1 }  r6 p8 Z4 X$ l2 [60 3E 02 4 V9 K+ D2 Z: R! v7 u8 l
60 a9 b8
2 F/ b0 D0 a' [$ y  I60 aa 92 ; Q6 t2 ~9 K4 X2 R  _
60 ab 0a
  E; K% u  s  }2 I! D;
; q, M" G% B$ ], }1 j9 U60 8f df
2 x" a9 H! F: V6 \0 w60 90 00
" V1 E- n5 E: c" F. S* w* N- B" X60 91 00
; x8 a. y# k5 _1 x. C3 K60 9f 00 # Z' r4 ~4 s0 R, @/ _! i
60 a0 00
  |' L  w5 {3 r" b6 Z60 3A 01 9 Z( q$ b! E  W4 U7 M5 c2 w& j
; # h) v' ?* ^' |' h2 @% ?
60 24 70
8 z; }% Q" C' [) }( x4 C; [60 25 64
9 k3 Y% l4 z! K* p' m2 _- P60 26 c3
0 ^1 G" Q3 M7 ?$ y5 O* x; - R# ~) Q; L% r, {* I
60 2a 00 ;00 for 50Hz . K) m$ {; ^; b# n
60 2b 00 ;D2 for 50Hz
, {4 W: u& \  g: s  B; . I2 y8 d$ i5 U$ Y' h7 R: V
;gamma ' R$ z; h; f; y% g* ~/ n
60 6c 40 $ V9 d5 _; D: J# {! w; F
60 6d 30
9 T9 n3 m7 D& c/ K: q' {' d60 6e 4b % i) U; S4 s9 s8 F* u
60 6f 60 ' X- N( w, K* u  y9 s
60 70 70 + H. H$ g+ |+ [+ J# A* N; N
60 71 70
- d8 y) G* j+ b$ \; O9 R; k6 O( F3 A9 X60 72 70   H" a0 L* @; Q
60 73 70
( q8 `& d+ r2 j0 q60 74 60 6 h. u- H" R% z. {5 G1 N% I0 D
60 75 60 - R) ~! z# H4 v
60 76 50 ( a( @; x/ T% v, l9 t
60 77 48 & w4 `' |/ h2 K, T2 r
60 78 3a
  q& G7 {& e4 |1 ~60 79 2e
# J& m, `/ O. N  @: \60 7a 28 ) `5 w0 f  M' A8 N: X6 t" m7 f
60 7b 22 9 Z$ _% c, L) X+ f! c- T
60 7c 04
) J2 J$ K! L" V4 T60 7d 07 2 J9 C. h& R) q) m! q' K( P8 o* m+ d9 U
60 7e 10
% a  q* l2 K, r) E3 P5 f3 B# y60 7f 28 2 U, q- q% f( l* \/ `5 I4 F
60 80 36
. J! {1 x( X( k9 C, @5 L1 s60 81 44
) g3 y' _1 \) _60 82 52
- ?6 \  a- Z4 T5 M: [& i6 X60 83 60 6 l- T  Z) T5 m# |' a
60 84 6c - F% O3 d: [# v* [- H* V3 H
60 85 78 + f) v" X5 J' B% \$ ~$ m
60 86 8c
7 a! A+ q# v4 o+ q7 O( u* L4 ]" a60 87 9e
8 z7 ^5 P3 e/ |' R: `% O3 D60 88 bb ( R9 W/ x+ Z& c) M
60 89 d2 7 z: |9 x4 E8 C3 n8 T4 P0 L% d
60 8a e6 , T. C$ N1 P+ e4 y& A* l$ @
; / J+ v3 \: b. ^) X- P

4 |& x) `- V7 p) G3 O1 g=================
) P0 a7 m4 J8 h( z;09032004 3 _" c4 I0 [3 f0 L, S! i2 O/ o
;OV9650 0 _+ S. j+ s  }
;SXGA YUV
$ b3 O- ^/ ?) z8 ^( F4 \" U;7.5fps when 24MHz input clock
0 X3 ?$ `5 v  ^- y* E;Device Address(Hex)/Register(Hex)/Value(Hex) # D% ?, U: U- [/ w" Y
;
8 H+ _* A9 ~3 o" i60 12 80 3 o' ~4 o) T0 ]3 ~
60 11 80
5 D2 k0 _2 R" a7 N5 l6 h, }60 6b 0a % {' ^  i1 ?, Z* {, N! Y
60 6a 41 % Z( c! {7 i* j5 {; G- `2 B8 i
60 3b 09
+ C+ Q* S: k  a/ h( z60 13 e0 1 @6 ?( J$ z4 p
60 01 80
5 p. D% K0 p+ e; f" q, X60 02 80
, Z/ H6 @. r0 L$ f5 b/ n60 00 00
" L2 x! }4 x. E" O; ?60 10 00 3 M& j9 D* ~5 V3 ?% D
60 13 e5 9 f# N: d, M5 c9 i4 c* [( P
;
) A4 _, U7 u' E1 F& j/ ~  O60 39 43 ;50 for 15fps
1 ]2 A5 p5 i7 X5 k' f60 38 12 ;93 for 15fps " h# R) I) G- c& t7 s- B
60 37 00 7 @+ q6 u  X' R* W% V
60 35 91 ;81 for 15fps ( o0 a( u2 G, [0 r. y% X
60 0e 20 ) y. i. w. v; q  v
60 1e 04 + A+ X: L' ^$ t
;
( W5 ^6 x1 A$ K8 M3 z. S' I60 A8 80 / G1 K4 e/ \1 B
60 12 00 0 j) J: s( [. w9 D- q0 \
60 04 00 * [2 A) k% r8 z- x" B
60 0c 00 / o8 Y2 _  U) S% k( ]( b1 s
60 0d 00
" G* E" v/ t! m) n/ T60 18 bd & ?8 m7 f3 C" Q6 o1 {  T, r
60 17 1d 3 [, E7 P3 e' R) q2 D, r; |/ E
60 32 ad
# e# E$ [7 P& f4 h" {" Q4 M60 03 12 # n' V; G/ o/ R- [2 b
60 1a 81
- f$ k" ~. p4 o) P60 19 01
' \+ m2 x0 T( m0 P' ^8 k, l: |60 14 2e 0 o. c, ~9 ?) |' Z$ A
60 15 00
- R  p5 E- b9 W. c7 e0 p3 }4 r, o- w60 3f a6
6 o2 u1 h( W8 L2 G" G) t60 41 02 , b8 _9 ~. C5 W" R2 q
60 42 08 " I9 g  k) F4 h* \4 D* }5 Y
; ; L, @0 w  n2 }. G
60 1b 00
" ?6 h5 n* {; s* Z; ^1 C60 16 06 4 e# u+ \7 g- Q. i
60 33 e2 ;c0 for internal regulator , Z' G: k7 F( S6 T3 k5 z
60 34 bf 5 Z' X6 a. J0 [, z  r
60 96 04
" t5 H" E9 a7 ^/ a60 3a 00
  Q' x. ?% A( _7 V* M- e) P" p60 8e 00 : B7 ~8 h4 |  k1 v$ I% o
; . \3 {% A: c- c3 @
60 3c 77
5 S/ {. J9 m; r2 @4 m* L. [60 8B 06 1 `' B9 o: k( l' @  L
60 94 88 & l* x* Q1 C$ {9 X3 b: @8 L/ w5 A# q
60 95 88 , n* X, m0 \, a# Z
60 40 c1 6 m; L% S, _  h: I6 i; z
60 29 3f ;2f for internal regulator
# n8 C  R: K! q9 P60 0f 42 0 h, j, [7 F2 b5 _: _+ K: b0 Z' H
; 4 t% l. S- b/ G: ]  ^* h9 ?
60 3d 92 ; t# C* P) ?8 n5 n% a
60 69 40 8 w  b$ Q* _/ |6 K- z8 ?/ D3 |
60 5C b9
1 P8 {. z- d0 K9 D" v9 _- ]/ k+ O1 T60 5D 96
* t- X+ h. n, V1 r+ @; L4 B: w60 5E 10
( C+ A/ W2 Y" I: W60 59 c0 : X% V' B1 L' c/ y2 n& K
60 5A af , s1 O+ j4 ^7 {5 s1 ^4 T
60 5B 55
% @& @1 f5 G/ b7 G: s60 43 f0 & `* t$ v) \) f' s! k6 A& j0 ]- K
60 44 10
4 a4 O. C  y8 D/ X/ u60 45 68 * b, k6 i. L8 [4 U6 \. Y$ ~+ o
60 46 96
; D. B6 M, X& p' w5 K3 E60 47 60
+ ?! I3 Z' }8 n) o2 l4 F" `- O60 48 80
3 g5 ^' j2 l4 z7 z; h, s60 5F e0 1 d& @: l! ^: H6 k9 d, D2 V
60 60 8C ;0c for advanced AWB (Related to lens) 1 C' k2 [! p! x. \1 d
60 61 20 0 }7 F7 n# r3 w* M- {+ k2 i9 e2 ]& t
60 a5 d9
9 `$ O0 u* K# a3 r& U2 L60 a4 74 5 x( M8 t# S& ^7 d3 ^
60 8d 02 ' y7 `3 i  {9 `6 b
60 13 e7
$ x& i* j- j. f, p+ O5 C' a;
8 ~3 u# x( t# m  t1 |5 p60 4f 3a 7 y7 Z4 `% D: e8 Q' Q
60 50 3d
6 W" n& d5 @/ c2 @60 51 03 : i$ K2 [* g9 ]6 Q1 h
60 52 12
& U* [4 ?; C  U! ?8 m60 53 26
0 T! U; m  i5 s3 H8 r" @( ^* ]60 54 38
6 {5 L1 h' z! }* A) j60 55 40 * Q' w7 E( ~0 f* g) X* ]
60 56 40 * P  y  W+ F9 t- M2 k1 A4 _
60 57 40 ; W  u9 [1 m9 d4 u
60 58 0d
: Z9 z0 i% s3 i- L, m; + f- {2 Y  d0 R9 n+ `- A
60 8C 23
; ]% W% S0 v! z3 a  J$ |5 b60 3E 02 " ^9 h5 x3 D4 O4 M* H
60 a9 b8
4 C$ S. Z# j( p0 M( A60 aa 92
+ U; h; X( d' _* [0 r* T$ T60 ab 0a
# {' N3 n; y. i7 E; " L/ o( X! G( K( u. l
60 8f df
/ X2 M$ z" Z. r' `0 e# v60 90 00 % Z, `- `. n0 o
60 91 00
! k" Q' ^$ e6 r) a60 9f 00 7 x" u+ W- i. x* q% ~; h7 O
60 a0 00
- y1 U( I* l, B# |% w/ I60 3A 01 ' m$ }' a) W' E; B3 l: e3 h6 c/ ?
; 8 b/ |7 O* X, C7 W+ Z6 F
60 24 70 0 K! \" Y  F; n5 e
60 25 64 # a, {6 K4 Q! W4 C+ s+ I) h, ^+ r
60 26 c3 7 I' G& o. [  _6 X! a& g5 l
; % c; |' {& t7 D- h7 {+ W2 P
60 2a 00 ;10 for 50Hz
+ U& a8 q' J$ E60 2b 00 ;34 for 50Hz 2 c+ n' |  l/ M  z# p  X
;
7 `: {& S8 `3 o1 K6 ]& h;gamma : h- Y& ]" d* ]( {
60 6c 40 $ X. [& r) i# L* o' j7 }2 g( s
60 6d 30   o: Z- |) R' @. |
60 6e 4b 6 |4 \, W, t& h8 d' o& c' u
60 6f 60 7 Z5 I7 G1 d. ~0 X9 B, m" G
60 70 70 2 ]& q: x) K% L" t, R
60 71 70
7 K" x: {/ A' t# e/ t& X60 72 70
/ D# d& J+ J4 U( R$ ?2 R60 73 70
/ V, ~% M6 I8 l+ Y! H60 74 60
. F: ^/ `3 r) y- a( f  [: y60 75 60
  r1 K. d9 p. u/ {1 h$ l60 76 50 6 c5 B0 t" I& Z0 v* ^
60 77 48 ' A, b- \0 T1 J" I
60 78 3a # R6 ~1 I2 w0 e8 t8 L' a
60 79 2e 3 g( f+ `- J( H* Z0 J  D
60 7a 28
) X1 H! s+ @3 {60 7b 22
* ?+ i1 O2 n! v+ v8 z! Q; s60 7c 04 6 \; A" L$ H+ ?7 S3 f
60 7d 07
7 g5 P" f! Q/ m- O60 7e 10
. `7 `  V: a' R. M& d60 7f 28
3 J4 p8 H8 M, M  m60 80 36 + W+ }- {6 K4 r. Z
60 81 44 9 P' z; L4 D  _' Z0 q/ I
60 82 52
# R% i6 {8 q2 j' c, N60 83 60
& c0 y5 U0 U4 A# O& b2 f" a! {8 L60 84 6c 8 g9 N) f" _* D
60 85 78
5 z) p+ C9 w$ |- t60 86 8c
/ T, o! \1 P1 E  E60 87 9e
  E( {  ~6 x; \60 88 bb
) y, G7 l5 m0 Z# e+ Q' h0 o/ w60 89 d2 : r* h, o6 S/ {
60 8a e6
7 X, U1 `( N+ s$ l$ b9 B# T% f& W1 H" s4 }
    非常感谢网友李鹏分享他的调试经验,让我在调试中得到一些启发,OV9650的datasheet写得太模糊了,而且125个寄存器每一个都要配置!而且有个偏门的SCCB协议,ov9650明明兼容I2C协议的,可是datasheet上就是不说!$ q' m3 _, |3 ^2 l. r, [8 H
——————————————————————————( e0 A* I* Y, T8 E
原文链接* T7 r" s) N7 Z+ M' M

! z  S, k  I3 c9 O, a3 mCamera调试   0 r( A3 o) R) `' j  C9 }; i% q
基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:
' \0 M% \: E- i# B/ W" I/ g1,提供给CMAERA得MCLK是否太快或者不正常8 V6 n$ N/ ?$ W) G' _  ]  j( q
2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。) [, N) ]- V5 H! b1 u. ]3 l  j1 S8 g8 Q
3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。
+ d: a( Q3 s0 ^, g0 Q# Z4 L4,量量数据线有无波形,等等5 C+ f, t! E, Q+ {& x. Z/ l8 B
至于发挥sensor得性能要找技术支持了。
: V) b/ M7 l& _' C6 g1 r/ G% A( H供电,检查时钟,送初始化代码,查看输出信号,是否显示正常  % i1 j" E2 ?! I
下面是我在调试OV9650的一些总结:' G3 g% ]( J0 h* Y; P- q( f

( P5 T+ }* W. {) Z3 A4 u步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。8 N9 L/ U0 G8 M7 a5 O2 `0 |
如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:9 v/ k+ I9 A& ?; n+ N7 y
       RESULT IsiCheckSensorIss( void )1 `9 y4 o/ s' B$ W0 L1 A
       {7 b  N/ l. d( \( D* o
             UINT8 pucValue;7 _: V3 O7 W. O/ D% Y: G! s
  
! F+ ]6 P* K3 r2 V2 z2 Y) l             IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
# n' Y6 r5 I& k( U- Y             if(pucValue ==0x96)//pid value of OV96507 r3 S6 `  T# H# H
                  return RET_SUCCESS;
" y; D4 e; n' G- z  M             else
- Z6 Y9 f" [- Q% @! f                  return RET_FAILURE;: x6 J( T3 Y1 ]
         } ( `. o0 l0 Q" n" z7 ?
2 Q4 I: M: F( j8 p% A6 U. [
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。, o* {4 O% k( ^$ r. e$ [5 `
OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。) V' i" A( E# B( q/ ?7 u8 L
4 Q3 |) h" o" S4 q" Z1 X0 A8 r
步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。) \2 _5 L  z; V8 J8 C) ^- J0 x5 T
      如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。6 p* r1 w, h- R% P% C/ J
2 a/ c# T3 Q" x  ~8 G5 R: ~
步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。
) ]/ ?  k7 p  {% P3 x+ w置位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线,建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好,对控制线的极性理解一致。

0 X* o) h* F2 l0 W3 {) ^, p  a4 K0 d; d1 {! o8 W3 z  u, O3 L
至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。: W  B0 |; c7 Y  }. x
后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。0 P  O. W* J0 }6 _5 d9 K2 Q* U% u
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?
. N0 j/ {( D6 U8 f) z6 QSENSOR的各路电源是否接好,
" G/ p2 |9 p# ^CMCLK是否正确
, q1 |4 S4 ^4 Y$ H# |* l/ g5 N! q( d8 ZRESET sensor
& O8 W2 b; H0 p3 B9 _# ?I2C总线上拉电阻是否匹配正确,  V5 }, ~: o$ b4 k* }, u
访问sensor时使用的 device ID是否正确,
( c# q1 s! M6 d$ i! i0 {I2C的时钟CLK速率是否太高,
7 j2 l7 y+ o1 e! n4 m两次I2C连续读写之间是否有spec规定的delay时间- U  R" o% o- r0 s" c
CAMERA POWER UP 时序是否符合 SPEC。
& d( @' L. b" t( ~camera的工作过程(从进入相机到拍下照片为止)
* B6 t0 i1 Q3 q2 U8 ]: Q9 y一般先给电源 ,然后给 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.