This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3530 使用OV5640摄像头模组 产生掉图像数据,拍照时间过长的问题。

Other Parts Discussed in Thread: OMAP3530, SYSCONFIG

硬件平台 :

主控板:瑞泰OMAP3530 Mini 开发板(基于EVM板) 

摄像头模组:舜宇做的一个 OV5640的摄像头模组

软件:

底层驱动:在网上找的一个基于OV5642的驱动代码

板级文件:beagle板附带的摄像头驱动代码:board-omapbealge-camera.c

应用层软件:在网上找的一个经典的V4L2程序代码  ,做了适当的修改(网址:www.linuxidc.com/.../33020.htm  )

第一个问题:

我们对板级文件、底层驱动代码进行修改之后,内核编译通过。使用V4L2控制摄像头模组抓取YUV 4:2:2 的图像数据,然后再将其转化为RGB格式的数据。正常情况下 图像数据的排列应该是  Y0 U0 Y1 V0 Y2 U2 Y3 V3 ,但是我们实际得到的数据 的排列是:  0  Y0  0  U0  0  Y1  0  V0   0  Y2  0  U2   0  Y3   0  V2 。我们在将 0 删除后,按照标准的YUV  -> RGB格式转化的可以得到色彩效果不错的图片。 我们经过分析底层驱动和板级文件后觉得驱动文件没有问题,掉数据的问题应该是由于ISP模块相关配置引起的。

请问 这种问题该从哪个地方查找?

附,ISP模块相关寄存器的设置:

640*480

isp_s_pipeline,pipe.modules =(1)
ispccdc_request
ISPCCDC: Module in use =1
ISPCCDC: ###CCDC PCR=0x0
ISPCCDC: ISP_CTRL =0x298100
ISPCCDC: ccdc input format is CCDC_YUV_SYNC
ISPCCDC: ccdc output format is CCDC_OTHERS_MEM
ISPCCDC: ###ISP_CTRL in ccdc =0x298100
ISPCCDC: ###ISP_IRQ0ENABLE in ccdc =0x0
ISPCCDC: ###ISP_IRQ0STATUS in ccdc =0x80000000
ISPCCDC: ###CCDC SYN_MODE=0x32704
ISPCCDC: ###CCDC HORZ_INFO=0x100
ISPCCDC: ###CCDC VERT_START=0x0
ISPCCDC: ###CCDC VERT_LINES=0x0
ISPCCDC: ###CCDC CULLING=0xffff00ff
ISPCCDC: ###CCDC HSIZE_OFF=0x0
ISPCCDC: ###CCDC SDOFST=0x0
ISPCCDC: ###CCDC SDR_ADDR=0x0
ISPCCDC: ###CCDC CLAMP=0x10
ISPCCDC: ###CCDC COLPTN=0x0
ISPCCDC: ###CCDC CFG=0x8000
ISPCCDC: ###CCDC VP_OUT=0x0
ISPCCDC: ###CCDC_SDR_ADDR= 0x0
ISPCCDC: ###CCDC FMTCFG=0x4000
ISPCCDC: ###CCDC FMT_HORZ=0x0
ISPCCDC: ###CCDC FMT_VERT=0x0
ISPCCDC: ###CCDC LSC_CONFIG=0x6600
ISPCCDC: ###CCDC LSC_INIT=0x0
ISPCCDC: ###CCDC LSC_TABLE BASE=0x0
ISPCCDC: ###CCDC LSC TABLE OFFSET=0x0
ISPCTRL: ###ISP_CTRL=0x298100
ISPCTRL: ###ISP_TCTRL_CTRL=0x0
ISPCTRL: ###ISP_SYSCONFIG=0x2000
ISPCTRL: ###ISP_SYSSTATUS=0x1
ISPCTRL: ###ISP_IRQ0ENABLE=0x0
ISPCTRL: ###ISP_IRQ0STATUS=0x80000000
isp_s_pipeline,pix_input->pixelformat == V4L2_PIX_FMT_YUYV

500W像素时的ISP寄存器设置:

isp_s_pipeline,pipe.modules =(1)
ispccdc_request
ISPCCDC: Module in use =1
ISPCCDC: ###CCDC PCR=0x0
ISPCCDC: ISP_CTRL =0x298100
ISPCCDC: ccdc input format is CCDC_YUV_SYNC
ISPCCDC: ccdc output format is CCDC_OTHERS_MEM
ISPCCDC: ###ISP_CTRL in ccdc =0x298100
ISPCCDC: ###ISP_IRQ0ENABLE in ccdc =0x0
ISPCCDC: ###ISP_IRQ0STATUS in ccdc =0x80000000
ISPCCDC: ###CCDC SYN_MODE=0x32704
ISPCCDC: ###CCDC HORZ_INFO=0x27f
ISPCCDC: ###CCDC VERT_START=0x0
ISPCCDC: ###CCDC VERT_LINES=0x1df
ISPCCDC: ###CCDC CULLING=0xffff00ff
ISPCCDC: ###CCDC HSIZE_OFF=0x500
ISPCCDC: ###CCDC SDOFST=0x0
ISPCCDC: ###CCDC SDR_ADDR=0x0
ISPCCDC: ###CCDC CLAMP=0x10
ISPCCDC: ###CCDC COLPTN=0x0
ISPCCDC: ###CCDC CFG=0x8000
ISPCCDC: ###CCDC VP_OUT=0x0
ISPCCDC: ###CCDC_SDR_ADDR= 0x0
ISPCCDC: ###CCDC FMTCFG=0x4000
ISPCCDC: ###CCDC FMT_HORZ=0x0
ISPCCDC: ###CCDC FMT_VERT=0x0
ISPCCDC: ###CCDC LSC_CONFIG=0x6600
ISPCCDC: ###CCDC LSC_INIT=0x0
ISPCCDC: ###CCDC LSC_TABLE BASE=0x0
ISPCCDC: ###CCDC LSC TABLE OFFSET=0x0
ISPCTRL: ###ISP_CTRL=0x298100
ISPCTRL: ###ISP_TCTRL_CTRL=0x0
ISPCTRL: ###ISP_SYSCONFIG=0x2000
ISPCTRL: ###ISP_SYSSTATUS=0x1
ISPCTRL: ###ISP_IRQ0ENABLE=0x0
ISPCTRL: ###ISP_IRQ0STATUS=0x80000000
isp_s_pipeline,pix_input->pixelformat == V4L2_PIX_FMT_YUYV

第二个问题:

当我们进行拍照的时候,根据打印信息提供的时间发现,完成一幅图片的拍摄需要12秒,其中有10秒钟是在处理得到的图像数据。打印信息显示在这10秒钟内,系统一直在响应这几个中断:HS_VS_IRQ 、CCDC_VD1_IRQ 、CCDC_VD0_IRQ 、CCDC_LSC_DONE 。 请问产生这种问题会是哪个原因引起的呢?该从哪个地方分析呢?

希望得到你们的回复!谢谢!