AnsweredAssumed Answered

iMX6 custom video capture via Parallel camera interface

Question asked by fnairz on Apr 9, 2015
Latest reply on Nov 11, 2015 by tugba demir



I adopted the ov5640 driver to capture custom data from a FPGA connected to the parallel camera interface of an iMX6.

So far, it works well and the debug logs show that my configuration of width/height is taken into account.

End of mxc_v4l_open: v2f pix widthxheight 16 x 16

End of mxc_v4l_open: crop_bounds widthxheight 16 x 16

End of mxc_v4l_open: crop_defrect widthxheight 16 x 16

End of mxc_v4l_open: crop_current widthxheight 16 x 16



The following configs were choosen:

  Format: V4L2_PIX_FMT_RGB565

  Wdith: 16

  Height: 16


The bus is driven by an 8MHz clock generated within the FPGA, signals were checked by scope.


I am using gstreamer-0.10 libraries and the base plugins are installed.

Now the problem is the following:


When i create the following pipe from my application I am able to capture data, but they are wrong - means that data is not what i expected it to be. For testing purposes we implemented a linear increasing counter that is transfered from FPGA to the mcu.

  Pipe: mfw_v4lsrc name=source num-buffers=2 device=/dev/video0 ! appsink name=sink


So, when I capture one buffer and decode my data (MSB,LSB) I got only a frame size of 16 x 12 Pixel containing wrong data.

Someone who has an idea why this happens.


I would also appreciate when someone could take its time to give me a starting point how to get rid of v4l2 overhead and configure the CSI/IPU completely within an own driver.