OV3640 的解析

在OMAP上增加320W的ov3640摄像头,之前没弄过心里没底,乘着硬件板子还没出来在2442上调试了ov9650,图像等都出来了才开始做ov3640,也参照了Linux的3640代码。弄了很有一阵子,总结下走过的弯路。 1、确保硬件连接好 ov的手册都比较晦涩,omap系统比较庞大致使没怎么注意Camera接口的布线,导致Vsync与Href居然给反了。器件又小,且没测试点,弄了几天才用示波器测试出来。 2、判断设备是否工作 当然在工作之前必须给3640提供时钟,我这时钟是由omap的ISP提供。示波器是必须的,对3640的IIC读写用示波器捕捉下来,看字节顺序与数据是否正确,有无ACK。3640与9650寄存器地址不一样,一个是8位一个16位,都大同小异,先发送高八位后低八位。读取ID,成功说明3640已经开始工作。 3、测试数据的到来 只要上电成功,ov就会有默认的帧输出。用示波器测试Vsync引脚,因ov的传输速率不会大于30FPS,那么其频率也就这样,不可能太快。Href与帧频和行宽等相关。 4、配置Omap寄存器 3640可输出YUV、RGB、RAW、JPEG等几种格式,虽然omap自己集成了ISP功能,直接选用一不带ISP的sensor输入RAW则可,但这样增加了开发难度,特别象我这样的对图像处理不太了解。由于3640自身的ISP功能,就直接使用了,就图方便!输出YUV方便Omap的Resizer来处理缩放功能。数据流如下: Sensor==>ISP==>CCDC==>Resizer==>Memory Resizer可要可不要看具体应用,加上过后不知为什么图像失真严重,也就没管它了。具体配置点在于: ISP:使能时钟24M给3640、开启CCDC、桥接功能使能 CCDC:同步极性、输入格式选择、配置输入图像大小、设置输出地址 5、配置ov3640 ov的支持,少与代理商打交道,直接找到ov的FAE,有问题直接说。居然没有给我3640的初始化代码,就给了个AF的初始化代码,并且还是错误的,无语了虽然代理很热心,问题是他不懂。后来直接与FAE交流,拿了初始化序列,格式相互之间转换的序列,也就差不多了。 6、Ce6.0 Camera开发 用微软的DShow确实挺方便的,从提供的camera_null直接更改,MDD+PDD模式,结构都做好,只需要我们填充部分内容: FillBuffer TakeStillPicture PDDInit 增加自己的中断线程函数回调HandleCaptureInterrupt或者HandleStillInterrupt,其调用MDD_HandleIO再由MDD调用FillBuffer,FillBuffer里面将保存的图像拷贝入。Camera驱动暴露几个Pin给应用,让应用按照所选的pin来获取图像,这个格式m_pModeVideoFormat在PDDInit里面填充。一般的YUV与RGB格式都支持,但我出现在QXGA的YUV格式时,DShow不成功,但RGB可能,猜测该是内存大小不能满足的原因,因YUV到RGB是需要大量内存空间的。 7、细节 320万像素质量真的不咋的,很粗糙。闪光灯可能太暗,近距离闪光还可以,但距离到一两米就有困难了,可能还有一些参数没设置好,等自己做个完整一点的应用再来一边测试一般更改参数。CameraDshowApp.exe支持的功能太有限了。。。。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/renpine/archive/2010/02/06/5294704.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值