mx6q-SDP开发板OV5640调试过程分享_第1页
mx6q-SDP开发板OV5640调试过程分享_第2页
mx6q-SDP开发板OV5640调试过程分享_第3页
mx6q-SDP开发板OV5640调试过程分享_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

mx6q-SDP开发板OV5640调试过程分享3.0.1 初步调试(2014-12-20)在基本理解ov5640_mipi.c代码的基础上,基本不做大的改动。只是进行了sensor方面寄存器的改动和格式的改动ov5640_data.pix.pixelformat = V4L2_PIX_FMT_UYVY 改为RAW格式对应的 V4L2_PIX_FMT_SBGGR10;1:I2C接口调试;先看能不能加载驱动程序和设备。这步功能调试到成功基本上用了3周时间。软件准备时间并不长。主要是几个信号线的功能准备和I2C地址的准备。一度我也怀疑自己是不是哪里代码写错了。我也做了相应的其他辅助手段来调试,利用我访问imx179摄像头的函数来访问声卡芯片,结果是没有问题的。因此我相信软件代码应该不会有问题。期间又配合梁开勇测试了相关的信号线,都是正常的。最后又测试了I2c数据线,结果发现没有应答,推测硬件工作不正常。最后,梁开勇告诉我,说可以访问imx179了。2:按照廖长军同事的想法,我们只做了少量的改动,让imx179工作起来,看看正常否?结果,发现没有任何图像,预览功能不正常退出。3:根据廖长军同事提供的测试程序mxc_vpu_test来调试。发现deque 超时失败。结论:经过前面的初步调试,只做我们想象中的些微的改动是没有什么成效的。既然如此,我的想法是,借此机会,不如好好研究理解相关的概念,看看究竟能不能做得出来,理解为什么?因此,我就有了借助原来的评估板来帮助理解和调试的想法。接下来的工作就是,在开发板的基础上,看看ov5640是怎么工作的,它又支持哪些格式,看看我们能不能改成我们想要格式,如果我们要改成ov5640另外可支持的格式,都不能正常工作,说明要想移植摄像头驱动就不是那么简单的事了?3.1 ov5640调试理解(2014-01-10)根据初步的理解;ov5640驱动程序上面说它除了支持UVYV格式外,还支持RGB565格式,那么我们看看怎么来支持RGB565格式呢?1:我们只是简单地把ov5640_data.pix.pixelformat = V4L2_PIX_FMT_UYVY(ov5640_mipi.c)改成了V4L2_PIX_FMT_RGB565 ,结果无预览;2:发现寄存器0x4300,涉及到输出格式,我们也把它改成了RGB565格式。结果:预览有了,但色彩又不正常。因此,就进入了下一步的深入研究和继续调试工作。关于格式的参数涉及到以下变量:参数0:cam-v2f.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420; Mxc_v4l2_capture.c参数1:ov5640_data.pix.pixelformat = V4L2_PIX_FMT_UYVY ov5640_mipi.c参数2:mipi_csi2_set_datatype(mipi_csi2_info, MIPI_DT_YUV422) ov5640_mipi.c参数3:ov5640寄存器0x4300和0x501F的值 ov5640_mipi.c3.1.1:第一阶段(粗调) Mxc_v4l2_capture.c 中cam-v2f.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;该参数修改对整体预览结果没有影响。有影响的主要是ov5640_mipi.c中的参数ov5640_data.pix.pixelformat = V4L2_PIX_FMT_UYVY;还有ov5640寄存器0x4300和0x501F的值。必须要透彻理解这两个寄存器的值的含义以及mipi_csi2_set_datatype(mipi_csi2_info, MIPI_DT_YUV422);这期间进行了大量的测试和理论学习。初步结论:参数0对预览没有任何影响。只要参数1ov5640_data.pix.pixelformat = V4L2_PIX_FMT_UYVY参数3寄存器0x4300和0x501F 还有参数2 mipi_csi2_set_datatype(mipi_csi2_info, MIPI_DT_YUV422)一致的话,预览图像是有的,但是如果不是UYVY格式的话,色彩就不正常。1:为了尽快地3.1.2:第二阶段:(细调:测试和理解验证)3.1.2.1 2015-01-13进一步测试:看看是不是只要参数2和参数3一致匹配了,是不是也是正常的。也就是参数1不管改成什么值,只要参数2和参数3不变,看看是不是正常的。(1)参数1 ov5640_data.pix.pixelformat =V4L2_PIX_FMT_RGB565;结果:正常;(2)参数1 ov5640_data.pix.pixelformat =V4L2_PIX_FMT_GREY;结果:失败,deque 失败,没有图像(3)参数1 ov5640_data.pix.pixelformat =V4L2_PIX_FMT_RGB24;结果:正常(3)参数1 ov5640_data.pix.pixelformat =IPU_PIX_FMT_GENERIC;结果:正常小结:经过进一步分析代码:发现,参数1关系不太大,但是它只要在函数ipu_csi_init_interface(struct ipu_soc *ipu, uint16_t width, uint16_t height,uint32_t pixel_fmt, ipu_csi_signal_cfg_t cfg_param)(ipu3/ipu_capture.c)中说涉及的几个值里面都可以。3.1.2.2 2015-01-19(MIPI_DT_YUV422不变)第1种测试:看看是不是只要参数3中的两个寄存器中的值有没有关系,是什么样的关系?(1)0x501F00(ISP YUV422) 0x43003f (UYVY)原来的值结果:正常;(2)0x501F01(ISP RGB) 0x43003f (UYVY)结果:预览功能正常;还可看出被照的对象来。但色彩不正常,有点偏色。 (3)0x501F05(ISP RGB) 0x43003f (UYVY)结果:预览功能正常;但基本上看不出被照的对象来。小结:这两个寄存器的值是有对应关系的,不能乱匹配。但总的说来,只要4300中的值与MT_DT的对应关系正常,预览功能就基本正常。第2种测试:看看参数3寄存器0x4300中的值与参数2 mipi_csi2_set_datatype (mipi_csi2_info, MIPI_DT_YUV422)的对应关系:(.)0x501F00(ISP YUV422) 0x43003f (UYVY)= MIPI_DT_YUV422 原值结果:一切正常;(a1)0x501F00(ISP YUV422) 0x430030(YUYV)= MIPI_DT_YUV422 结果:预览功能正常;还可看出被照的对象来。但色彩不正常,有点偏色。(a2)0x501F00(ISP YUV422) 0x430032(UYVY)= MIPI_DT_YUV422 结果:一切正常;小结:(b1)0x501F00(ISP YUV422) 0x430046 (YUV420)= MIPI_DT_YUV422 结果:失败,deque 失败,没有图像;(b2)0x501F00(ISP YUV422) 0x430060 (RGB565)= MIPI_DT_YUV422 结果:失败,deque 失败,没有图像;小结:通过这几个测试,我们看得出以下规律:(1)0x4300寄存器中的值表示具体的格式,还有具体的色彩分量排序(注:“0x3f”,3表示数据类型,f表示具体的色彩分量排序);mipi-csi2接口协议则规定了具体的数据类型,还有它对应的色彩分量排序(注:协议中规定了具体的内容)。0x4300寄存器的值对应了具体的数据类型,还有多个不同的色彩分量排序。当数据类型匹配的时候,预览功能是正常的,当色彩分量不匹配的时候,就会出现偏色。因此两者都必须完全匹配3.1.2.3 2015-01-22(MIPI_DT_RGB565)(1)0x501F01(ISP RGB) 0x430060 (RGB565 BGGR)= MIPI_DT_RGB565 结果:预览功能正常;还可看出被照的对象来。但色彩完全混乱。;总体偏紫色(2)0x501F00(ISP YUV422) 0x430060 (RGB565 BGGR)= MIPI_DT_RGB565 结果:预览功能正常;还可看出被照的对象来。但色彩完全混乱。与前面的不一样,总体偏黄色;3.1.2.4 2015-01-23(MIPI_DT_RAW。8)(1)0x501F00(ISP YUV) 0x430000 (RAW BGGR)= MIPI_DT_RAW10 结果:失败,deque 失败,没有图像;(2)0x501F04(SNR RAW) 0x430000 (RAW BGGR)= MIPI_DT_RAW8结果:失败,deque 失败,没有图像;(3)0x501F00(ISP YUV) 0x43003f (UVYV)= MIPI_DT_UYVY 结果:一切正常;(验证目的)(4)0x501F05(ISP RAW) 0x430000 (RAW BGGR)= MIPI_DT_RAW8结果:预览功能正常;但基本上看不出被照的对象来。;看起来只是不同色彩的无数条线。(5)0x501F05(ISP RAW) 0x430000 (RAW BGGR)= MIPI_DT_RAW10结果:失败,deque 失败,没有图像;(6)0x501F00(ISP YUV) 0x430000 (RAW BGGR)= MIPI_DT_RAW8结果:预览功能正常;但原来的一副图像被克隆成了16副缩小的图像(分4种色彩)。;(6)0x501F01(ISP RGB) 0x430000 (RAW BGGR)= MIPI_DT_RAW8结果:预览功能正常;但原来的一副图像被克隆成了16副缩小的图像(只有1种)。;小结:ov5640的RAW格式是8位的(在原来配置的基础上,还未找到配置位数的寄存器)。3.1.2.5 2015-01-23(调试推理结论)经过近2周的代码调试和一段时间以来关于MIPI CSI接口协议以及V4L2架构,还有mx6q芯片中IPU、MIPI -CSI的学习研究,初步得出了以下结论:1:目前在调试过程中发现了两大关键问题现象(在预览功能的应用表现上):第1种现象(1):屏幕上没有任何图像(估计数据流没有上传到应用层);第2种现象(2):屏幕图像色彩不正常(估计数据流传到了应用层,但是底层编码格式与应用层解码格式不一致导致)。2:OV5640摄像头的数据输出格式支持很多种MIPI CSI协议中的格式,目前在我们的开发板平台驱动方面只支持MIPI_DT_YUV422格式,只有该种格式,预览功能才完全正常。改成其他格式,要么出现第1种现象,要么就会出现第2种现象。经过大量的调试工作和知识学习,目前已经基本弄清出了在什么样的情况下会出现哪一种现象。规律如下(前面已提到):(1)0x4300寄存器中的值表示具体的格式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论