你好,我们使用Ov5640摄像头模组最视频数据采集, 摄像头模组的输出是 8 位并行数据,同OMAP3530的CamD[0:7]相连。我们对摄像头模组时钟配置为 HS、VS均为高有效,采集到的数据位YUV422。
通过测试发现,我们采集到的数据掉了一半,数据排列如下图所示:
通过后期将视频数据中的非零数据取出之后,可以合成一副色彩正常的图片。
通过查看板级文件,发现 OMAP3530采集图像数据和Isp.h中定义的 isp_interface_config 结构体有关。我们驱动对其的具体配置如下:
static struct isp_interface_config ov5640_if_config = {
.ccdc_par_ser = ISP_PARLL,
.dataline_shift = 0x0,
.hsvs_syncdetect = ISPCTRL_SYNC_DETECT_VSRISE,//Modify
.strobe = 0x0, .prestrobe = 0x0,
.shutter = 0x0, .pixelclk = ISP_OV5640_MCLK,
.wenlog = ISPCCDC_CFG_WENLOG_AND,
.wait_hs_vs = 2 ,
//.pixelclk = 1;
//.jpeg_mod = 1,
.u.par.par_bridge = 0x0,
.u.par.par_clk_pol = 0x0,
};
V4L2 中定义的struct v4l2_ifparm 的定义为:
struct v4l2_ifparm ov5640_ifparm_s = {
.if_type = V4L2_IF_TYPE_YCbCr,//Modify
.u = {
.ycbcr = {
.frame_start_on_rising_vs = 1,
.bt_sync_correct = 0,
.swap = 0,
.latch_clk_inv = 0,
.nobt_hs_inv = 0,//hs active high
.nobt_vs_inv = 0,//vs active high
.clock_min = OV5640_CLK_MIN,
.clock_max = OV5640_CLK_MAX,
},
},
};
deyisupport:
回复 Mario Liu:
谢谢您的确认哦!方便的时候,希望您再分享一下解决方法啊:)谢谢您!