|
|
4 d7 g; o8 I! { 基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:: B, n9 Y1 K. W q
1,提供给CMAERA得MCLK是否太快或者不正常
& I5 s/ K6 @: P: S9 D/ |- W' h" |2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。2 A: U( {- A/ K
3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。$ H, _" S) p9 u- e: N7 j5 t/ U# h
4,量量数据线有无波形,等等
4 L* m% c/ }' ]1 o; W1 ^. i: _7 m* a6 u
至于发挥sensor得性能要找技术支持了。 ! z9 x9 U# m& A
供电,检查时钟,送初始化代码,查看输出信号,是否显示正常 5 H: s' T3 n/ e$ ~! t _ J/ h; P
下面是我在调试OV9650的一些总结:$ L& D- b+ Z @9 {, @+ d
J' f4 Y, |9 T1 f步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。1 A* i+ D u9 M9 e2 p
如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:9 A* w3 E4 Z- W( U$ ~$ v
RESULT IsiCheckSensorIss( void )& d' j# x$ s4 v( q5 r2 E/ p5 X: l
{
8 ?2 A! w* L+ _. h$ R; j5 z$ j4 h UINT8 pucValue;7 {: d$ k( _& p Z$ t
9 A! Q8 ~+ k9 z! |; f
IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);& K# ^3 Q2 O8 D* e7 G2 ^$ m/ d
if(pucValue ==0x96)//pid value of OV9650
5 ^/ E9 h1 c J) n9 ^ return RET_SUCCESS;
6 V0 o, u* E) N& Q3 s else
; r* w; }* ]& H return RET_FAILURE;
( q3 O6 L ]% q4 ^6 S9 |! Y }
" F- T. I: v) W- ^3 W' m0 k* C/ H4 M' B' a- }' k
步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。
5 ?6 d0 _2 [8 i. o8 |: O( COmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。3 }2 r' I- I; x% }! W& |
( K7 e& f# ~- f5 ]3 Z
步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。
# i. o, x( u+ b. P/ D 如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。
( X: @! J0 s2 Q- H7 ?/ l. i; x& o3 P* {
/ i# `7 R* }+ }! ?8 H$ I步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。+ c9 ^2 b s0 T$ q( S8 ~( F+ J
置 位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线, 建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好, 对控制线的极性理解一致。4 q7 o% c5 B' B' ^
! i# R/ D9 r: J2 A
至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。$ M4 a0 p* w# T( f
后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。! ?4 g9 p: D& x! L
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?
7 g+ p o( F' t: N& W& [3 f9 wSENSOR的各路电源是否接好,
- i2 K/ V! g$ \ kCMCLK是否正确
% S* h2 e [5 x9 l% _: H6 Z s5 ZRESET sensor
' l2 J4 o3 b% O5 H3 aI2C总线上拉电阻是否匹配正确,$ i: F( i6 B% }3 H- Q8 X& q( O
访问sensor时使用的 device ID是否正确,
& L# b2 N R2 ^$ Y* V/ ^# c( wI2C的时钟CLK速率是否太高,' H- V9 t' l& N- I- D# F
两次I2C连续读写之间是否有spec规定的delay时间
5 i! q$ J+ ?+ m, ^$ \$ g/ @9 fCAMERA POWER UP 时序是否符合 SPEC。8 ?* h! w6 d' D- c5 b) K# Q% Q
camera的工作过程(从进入相机到拍下照片为止)
2 h& b7 ~7 _1 r4 w一般先给电源 ,然后给 MCLK SENSOR的 时钟 然后复位 PWDN改变极性使SENSOR 进入工作状态,让后再过几百ms 进行 IIC 操作, 然后就进入 PREVIEW 模式了,拍照的话 是 截取完整的一帧信号而已,有时会关闭SENSOR 的AWB AE功能。
8 b9 @- }3 Q+ Q$ _6 e6 U
- I1 }. u7 X" O) ^7 V3 E7 r
# ]6 j1 v( e- H3 s. } |
|