ov5642调试总结.doc
《ov5642调试总结.doc》由会员分享,可在线阅读,更多相关《ov5642调试总结.doc(12页珍藏版)》请在三一办公上搜索。
1、厦门三五信息技术有限公司5M sensor调试总结Anchiano文件状态草稿正式修改编 号PRO_项目号_类型_编号_RX.YY拟 制审 核批 准发布日期2010-8-20版本历史记录版本制订者生效时间更改内容审核人审核意见变更申请单号目 录1.目的42.适用范围43.参考文档44.缩写45.名词定义46.Linux2.6.28内核调试56.1.Ov5642驱动编写56.2.Ov5642曝光控制76.3.Ov5642闪光灯控制、自动对焦76.4.Ov5642拍照速度以及启动速度优化87.Cupcake调试87.1.自动对焦87.2.闪光灯控制107.3.多分辨率拍照118.总结121. 目的
2、在android 1.5和linux2.6.28环境下调试ov5642(5M camera),实现大部分的拍照功能,比如:多分辨率(最高2592*1944)、预览拍照曝光、闪光灯控制和自动对焦等等2. 适用范围3. 参考文档4. 缩写缩写英文全称中文全称5. 名词定义名词定 义6. Linux2.6.28内核调试原来的内核驱动是针对ov3640,这个sensor是3.2M camera,通过对比ov5642和ov3640的datasheet,用的都是同样的I2C地址,寄存器读写都是16bit的,所以可以用ov3640的驱动修改成ov5642的驱动,但是ov5642毕竟是5M的camera,ca
3、mera.c驱动也要做一些修改以便支持最高像素的拍照。6.1. Ov5642驱动编写Ov5642.c驱动就按照ov3640.c进行修改,把所有3640都体会成5642,需要注意的是ov5642的型号寄存器,做如下修改:/* Revision constants */#define PID_VERH0x56#define PID_VERL 0x42#define PID_ADRRH 0x300a#define PID_ADRRL 0x300bOv5642软件复位寄存器做如下修改:void ov5642hw_reset(void)printk(sensor resetn);write_sensor
4、_reg(0x3008,0x80);printk(reset overn);mdelay(50);return;然后跟ov FAE拿ov5642的相关寄存器配置,以及精简寄存器等等,其实这阶段很费时间,具体寄存器配置不介绍。修改完ov5642驱动,还要修改相应目录下的Makefile以及修改littleton.c里面把ov3640替换成ov5642,同时屏蔽掉ov3640的代码。之后,应该可以正常preview和拍照了。不过,在最高像素capture时,需要内核camera.c做一些调整,主要是提高camera DMA buffer,原来是只有2M,现在需要提高到32M。具体计算结果如下:最高
5、像素:2592x1944yuv 两帧buffer:2592x1944x2 (yuv422需要*2)x2(两帧) N = 2592x1944x2x2/1024/1024,算出来约等于20,所以下面的RESERVE_DMA_BUFFER需要定义为如下大小,通过下面的代码计算出来g_order=13,对应DMA内存为32M通过这些修改,ov5642 最高像素拍照就不会出问题了,可是却导致了视频播放的一个问题出现,由于视频播放需要用到marvell的bmm设备,bmm.ko已经是marvell在cupcake上提供出来的内核模块,默认需要分配8M dma内存,由于500w camera内核加载时已经分
6、配了32M DMA buffer,直接导致后面的bmm.ko无法正常分配到8M DMA BUFFER。从qt版本的marvell内核代码中找到bmm模块的源代码(bmm_drv.c,bmm_drv.h),这个编译后就是bmm.ko,我们可以直接把这个模块编译进内核,在内核加载时或者更确切的说是在ov5642初始化前就加载bmm分配好8M buffer,原来直接使用的bmm.ko是在内核完全加载启动完毕后才从cupcake目录加载过来,所以就出问题了。把bmm_drv.c和bmm_drv.h放置在linux内核drivers/misc目录下,修改相应的Makefile和Kconfig,重新编译内
7、核就可以把bmm模块加入了。在内核root目录下的init.marvell.rc文件,需要屏蔽掉加载cupcake bmm.ko的代码,如下所示:Marvell pxa310平台能很好支持300w camera,对于500w camera,有些问题还是预料不到的。完成了上面的所有修改步骤,ov5642拍照最高像素时,能成功拍照,但是每次拍照图片都会有一大条绿色的纹路,ov FAE也找不出问题所在,最后需要修改camera.c一个宏定义,问题解决。据marvell技术支持介绍,把SINGLE_DMA_DESC这个定义去掉,可以支持高像素拍照,去掉这个定义后,500w拍照图像正常。6.2. Ov5
8、642曝光控制在没做曝光控制之前,采用的是AEC自动曝光,拍照图片比preview图像暗,所以最好做一下preview-capture的曝光切换控制。具体思路如下步骤:1. 在preview到capture之间读取preview的曝光增益等参数:ov5642_parameter_record2. 在写完capture setting后设置曝光增益等参数:ov5642_sensor_preview2snap需要注意的是,preview时要打开AEC、AGC等寄存器配置,capture时要把这些自动配置去掉改成手动配置,具体查看datasheet中的0x3503这个寄存器。相关代码请查阅ov564
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ov5642 调试 总结

链接地址:https://www.31ppt.com/p-4291483.html