我们使用imx6q开发了一个实验板,外接一个fpga控制的cmos相机。相机数据为raw格式,希望从mipi csi接口传送到cpu内存。
目前相机部分已经完成,正在准备软件调试,在mipi csi这里我对处理流程还不是很清晰,所以提出我的一些想法请客服给予指导。
环境是ltib ,linux是3.035 ,uboot是200908。
我的想法是在启动时加入:
imx6q_add_ipuv3(0, &ipu_data[0]); // ipu支持
imx6q_add_mipi_csi2(&mipi_csi2_pdata); // mipi csi 驱动支持
然后自行编写相机驱动,启动后加载驱动,并在init时使用 mxc_mipi_csi2.c中的接口初始化 mipi csi到我需要的参数。这里主要是检测相机与csi连接是否提供时钟,从而确保设备已连接,相机控制使用的spi而不是I2C。
然后使用应用程序通过 /dev/mxc_ipu 设备管理ipu,使用ipu驱动进行图像数据接收。
这里有两个问题:
1、ipu图像处理中没有raw格式,IPU_PIX_FMT_GENERIC是否可以将raw格式数据当做通常数据接收;
2、ipu缓存只有4M,我们的图像远远大于4M,因此fpga对图像进行切割,切成CSI支持的最大分辨率8192*4096*1,这样一幅图传送中ipu驱动是否需要修改,我没有找到对ipu缓存处理的代码。
简单点说,我们的目的就是使用mipi csi如同通讯接口一样传递数据,不需要图像处理和解码功能,请问有没有范例或经验。
谢谢 zhanglijun
Hi Lijun,
MIPI CSI-2 interface can capture RAW data from camera, but don't handle it. Capture driver in linux & android BSP is a file called mxc_v4l2_capture.c, so if you need to do some modification, you can read the file and adjust source code.
In addition, MIPI CSI-2 can only support RGB or YUV data and normally display image on screen, because there is no ISP module in i.MX6, so this requires camera should have ISP funtion.
Have a great day,
TIC Weidong Sun
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------