前几天在JZ4775平台(LK3.0内核)折腾OV9712COMS.作下笔记,一方面备忘,另一方面分享给有需要的网友参考.
1.调试过程中遇到的问题:
下面先概述下调试过程中遇到的主要问题:
1-1.DVP接口:
官方提供的硬件参考原理图是10根数据线的DVP,而这边的硬件是8根数据线的DVP.并且在官方提供的datasheet并没有找到DVP配置的寄存器.OV好多东西进行了
保留,有些寄存器数据手册写着是保留的,但是从其提供过来的sample code却是有所配置的.后来验证了其提供的sample code是支持8bit的DVP;
1-2.SCCB通讯失败:
SCCB兼容IIC协议,因此这边直接通过IIC总线操作.之所以出现SCCB通讯失败的原因,我这边主要是因为OV9712的SCCB操作之前需要有MCLK,而MCLK是由CIM(CAMERA
控制器)提供.这边的CIM输出的MCLK时钟的使能是受控的,在open的时候使能MCLK输出.通过SCCB操作OV9712之前使能MCLK输出即可.基本上,要进行CMOS操作之前都需要
进行MCLK输出,如格科威的GC0308;
1-3.是否正确出图难以判断:
这边要求的OV9712输出为WXGA(1280x800),而且硬件是新布的,没有镜头调焦距,并且手头只有2.8寸屏(分辨率为320x240),直接铺屏虽然手在CMOS上晃LCD
有所反应,但是不能作为正确出图的依据,而且DVP接口屏蔽掉低两位,图像的完整性更无从谈起.后面通过将OV9712出来的Bayer格式通过软件编程分别转换成8位位图、
RGB565、RGB888保存图片并通过两次的跳行跳列把Bayer转换为RGB565数据处理显示在320x240LCD上才得以验证图像的完整性.相关代码参考网上,但是都或多或少
有问题并存在兼容性可移植性问题,这边已经完善修复,后续提供修正后的相关源代码;
1-4.HERF模式:
一般比较复杂的设备