ov9650 的调试 来自网络

Ov9650    Cam 采集帧速太低。只有5帧左右。开始怀疑是mjpg-streamer的速度问题。但是在网上看到一个网友也是用这个系统做的一个直升机模型,说速率可以达到30帧。怀疑,和他交流下来,经他提醒,他是修改了ov9650的初始参数,默认的驱动参数com7寄存器设置的是0x00,这样默认是输出1280x1024,所以慢,只要改成小图片模式输出就可以明显提高速率,按照这个思路我该为0x40,也即是vga模式(640x480).测试下来果然帧速提供很明显,说明书上说可以达到30帧。

可是这样引来了另一个问题,就是图像的左边出现了蓝色的直条。查手册估计和图像输出的横向扫描输出有关,看到HSTART,HSTOP的对应寄存器,不管怎么样,试试看,将HSTART和HSTOP的值都减小,哈哈,测试下来发现图像左边的蓝色带更宽了,发现规律,HSTART和HSTOP值增大相同的数量,估摸一下刚才减小的数量都应绿色带增加的宽度,按比例增大,哈哈效果很好,绿带消失了。耶! 测试同时用到这个参数register(1E),调整图像的水平和垂直翻转。Bit4垂直翻转,bit5水平翻转。谢谢51iMX论坛的c_music,是他给我的提示。   同时我启用了cam 的夜间帧速自动调整模式。Com11=0xb9.设定夜间模式帧速降为设定帧速的1/2.在光线不足的地方,画面不至于太黑。牺牲一部分帧速换来画面亮度。

 

OV9650 的配置

经过4天的调试摄像头终于可以拍照片保存到电脑上来,ov9650的调试走了不少弯路,一些教训总结如下:
1:OV9650是OmniVision公司的COMS摄像头,号称有130万像素,但是实际效果感觉不如CCD的,特别是远处的背景更糟糕。
2:OV9650的datasheet上写的寄存器控制协议是Serial Camera Control Bus (SCCB),还给了个时序图,但是它用的是两线制  的SCCB协议;根据它的时序图是可以兼容I2C的,两者在细微之处有点差别,但不影响,但实际应用中,都是后端平台的  I2C接camera的SCCB。可惜我没有仔细分析,愣是用两个GPIO模拟SCCB通信协议。此乃一错
3:对于OV9650,OmniVision公司是提供了参考寄存器配置的!一定要找相关人员要!(可能是他们的datasheet写得太烂的原因吧),可以我过分相信自己,没有找技术支持沟通!此乃二错
4v9650复位后默认配置是不能收到图像的!(在我的这个模式下:YUV422,VGA),当我在用I2C配置时,有的像的轮廓但颜色偏绿,我以为是没有配置起寄存器,但是实际上是配置起寄存器了,是YUV的顺序有问题!此乃三错
5:我们用的是杰得提供的VIA模块控制API,杰得的API多、复杂、有错且没有系统的说明,又由于我没有调试摄像头的相关经验,也没有弄明白杰得的VIA模块API。所以调试的时候没有图像,到底是摄像头输出问题?还是Z228接收处理的问题?无法判断!调试完摄像头了才知道杰得的库是可以输入4:2:2,输出4:2:0的!
我觉得调试步骤应该如下:
一:先要保证硬件没有问题!
1:首先要看RESET脚和,PDN脚.的电平是否正确,RESET:高电平复位.PDN:低电平工作正常。
    2:第一次调试I2C总线的时候,把示波器放在数据线上,抓图分析看OV9650是否应答。地址应该是60H不要搞错了!
    3:测试关键信号(这一小步要寄存器配置正确芯片正常工作了才有的):
           时钟输入信号pin13: 24M正弦波(外部晶振的输入)。
           时钟输出信号(像素频率):24M,变形了的像正弦波的方波。
           场同步信号Vsync:形如:   ----_----------_-----  :两个低电平之间是20ms左右(我测试的是22ms)
           行同步信号Href: 形如:   ----_----------_-----   :两个低电平之间是64us左右(我测试的是15.9Khz)
           以上三个信号是电视信号标准,一定要对。但是,在测试的时候有时候信号不是这个值,比如Vsync=34ms,why?我还没有搞清楚,请高手指点.
二: OV寄存器配置:
1:如果没有测试硬件,千万不要妄想配置寄存器! 也是我的调试原则,可惜这次我又违背了!嘚反省!
2: 用I2C读取OV9650的ProducaitonID寄存器【0x0A】【0x0B】:读出来版本号应该是0x9652,这里也一定要对,特别是你手上有几个信号的OV芯片的时候,不同型号的oV芯片,RESET复位信号不同,(有高有低哦!有一个网友就犯了这个错误浪费了四天),datasheet上没有说的很明白Reset是高复位还是低复位,我的小窍门是reset引脚内部有上拉电阻的话应该是低电平复位,有内部下拉电阻的话应该是高电平复位。
3:证明能够通过I2C控制OV9650后,将厂家给的或者网上下的相应的配置写入到ov9650。
4:如果配置大体正确,现在摄像头的数据应该出来了。
以下是厂家给的配置:共有三个VGA,CIF,SXVGA,输出都是YUV模式,如是时钟是24M,帧率是15fps,我只验证了VGA模式的,效果还可以!

你可能感兴趣的:(ov9650 的调试 来自网络)