|
5 r1 }8 @' N. y! Y( ]3 U0 s 基本上调试camera都是找得平台得技术支持。呵呵,代码合进去应该就没问题了。如果有问题,主要调试一下几个方面:" m: B3 h) w& x3 D, ^$ l
1,提供给CMAERA得MCLK是否太快或者不正常; R( Y4 V- m, |% ?, ]' x y
2,camera输出得PCLK是否正常,因改是有MCLK时候,就有PCLK输出。
3 Z. b, }0 e2 |1 z F" J2 `1 Q3,查V、H信号,看是否和程序设计一致,如果一致,说明通信正常。
( L2 d4 ]# I2 Y0 J, R+ {* w* d5 O" L4,量量数据线有无波形,等等
+ ~" D3 B) i+ k1 d/ N/ B2 C ?# ]# N' P
至于发挥sensor得性能要找技术支持了。
, C: }3 k1 H* m1 F% z! [. S供电,检查时钟,送初始化代码,查看输出信号,是否显示正常
1 `6 i% Q5 `* D) \ p% d0 y下面是我在调试OV9650的一些总结:0 n' V/ R. P1 R3 F( p+ V
/ _: h1 I2 H- f" y
步骤一:读取OV9650的ProducaitonID寄存器【0x0A】。
$ k6 Y# x7 ^% P如果读回来的值为预期的0x96,则表明后端芯片跟OV9650能够IIC通信上。函数如下:8 J2 S: ]' M& s* H% x
RESULT IsiCheckSensorIss( void ): J" q8 M& E2 m7 t5 p" j
{1 }7 y4 g ?: `! K$ [
UINT8 pucValue;
) T! [, e- X& r/ s2 N
% y/ c3 i4 b# E IsiReadRegister(OV9650_BASEADR,OV9650_PID , &pucValue);
, Y4 L) ]& U# \( }5 F if(pucValue ==0x96)//pid value of OV96506 |: C, s! ~- Q& c! j+ i* Q+ c% D
return RET_SUCCESS;& r6 U2 n; n* o& T/ X3 A
else
# b/ R$ s/ ]( q7 G return RET_FAILURE;
: \0 ^! m ^! m6 {# H } 7 h4 m, c( t9 U, V
0 |% k' q/ p3 @步骤二:按OmniVision公司所提供的参数对OV9650进行设置,并进行回读检验。- _) q% S# F6 z" S/ _
OmniVision公司会提供每种图象尺寸下的OV9650配置参数。通过IIC口把这次参数写到相应的寄存器去。在调试时最好加段代码进行回读检验,以保证我们对OV9650的设置是正确的。在调试完成后,可去除这段代码。
: @! T& V6 J# n/ J% ]5 E; Q
. r6 I4 m4 D( E2 ]! Z# `8 g( N6 L. W步骤三:用示波器对OV9650的输出管脚PClk,HSync,VSync进行测量。
$ N9 C/ B. }( Z7 m 如果能测到PClk,HSync和VSync信号,并且这些信号是和我们寄存器配置是相吻合的,则表明OV9650已经开始正确工作了。! v! ]5 ^+ R, Z4 ]- O
8 m4 K0 @% P% m* a/ n8 ^( N) ?步骤四:配置OV9650为U、V固定值输出,看能否在后端芯片正确接受到固定值的U、V输入。
7 T! U5 @/ {$ l( q A4 y e# I2 G置 位【0x3A】寄存器的bit4,同时对【0x67】【0x68】寄存器进行设置,这样OV9650就被配置成固定U、V输出了。为验证全部8跟数据线, 建议设置【0x67】为0x55,【0x68】为0xAA。如果能在后端芯片正确接收到0x55和0xAA,则表明0v9650和后端芯片数据通路完好, 对控制线的极性理解一致。' \6 |/ k) _# S, {: c+ `8 }
) t; g6 [( L* p6 R* ^5 N* C% K 至此,OV9650跟后端芯片的通信已经基本正确。清空【0x3A】寄存器的bit4,让OV9650输出实际的U、V值。7 e" g* y, r$ e7 [8 @5 B1 M" Q7 ]
后面的工作就是如何控制后端芯片(Cx832)Marvin功能块来实现图象的Preview/Capture/Resume等功能了。. ~3 `. }# [' d9 A; W
摄像头初始化时,没有将数据写入I2C,一般问题会出现在哪里?
# I6 [; h P; c& s* @SENSOR的各路电源是否接好,
1 P( [ i3 F D; X% ACMCLK是否正确# y6 G7 o0 F7 q+ c7 A/ X0 i
RESET sensor
4 [1 N0 Z/ B$ p- WI2C总线上拉电阻是否匹配正确,
3 e, V. u2 C1 N$ q; T! Z访问sensor时使用的 device ID是否正确,+ \% X& L. O3 |# P& {1 x
I2C的时钟CLK速率是否太高,
: o1 D* E( E) s4 m. X两次I2C连续读写之间是否有spec规定的delay时间
' q3 _( D& J0 t6 K3 w: l9 Q1 TCAMERA POWER UP 时序是否符合 SPEC。
& m% S: H2 O7 D4 Bcamera的工作过程(从进入相机到拍下照片为止)
( ?" n4 {6 j9 a一般先给电源 ,然后给 MCLK SENSOR的 时钟 然后复位 PWDN改变极性使SENSOR 进入工作状态,让后再过几百ms 进行 IIC 操作, 然后就进入 PREVIEW 模式了,拍照的话 是 截取完整的一帧信号而已,有时会关闭SENSOR 的AWB AE功能。/ C7 Y# X8 N8 L7 Z! v+ F
& K! w" D& p/ g' e; v" b! Q/ _2 G- r& R' |& ~9 I
|
|