Difference between revisions of "VEYE CS Camera on AVNET Maaxboard/zh"

From wiki_veye
Jump to navigation Jump to search
Line 89: Line 89:
 
==== I2C脚本 ====
 
==== I2C脚本 ====
 
由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。
 
由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。
 +
 +
https://github.com/veyeimaging/nxp_i.mx_veye_bsp/tree/main/i2c_cmd
  
 
[[VEYE MIPI 290/327 for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|VEYE系列参数控制软件包使用说明]]
 
[[VEYE MIPI 290/327 for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|VEYE系列参数控制软件包使用说明]]
Line 95: Line 97:
  
 
=== 驱动的源代码编译 ===
 
=== 驱动的源代码编译 ===
在Host主机:
+
以下操作均在ubuntu Host PC上进行。
 +
 
 +
==== 编译标准版本 ====
 +
参考官方文档《MaaXBoard-Linux-Development_Guide-V1.1-CN.pdf》
 +
 
 +
==== Patch我们的代码 ====
 +
 
 +
* Driver source code
  
 
<code>git clone <nowiki>https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git</nowiki></code>
 
<code>git clone <nowiki>https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git</nowiki></code>
 +
 +
camera驱动源码路径为: linux/drivers/media/platform/mxc/capture,将camera驱动的源码放到对应目录。
 +
 +
* Modify the the Makefile and Kconfig files
 +
 +
修改同路径下的Config和Makefile,增加对应camera驱动。
 +
 +
* dts file
 +
 +
<code>git clone <nowiki>https://github.com/veyeimaging/avnet_maaxboard.git</nowiki></code>
 +
 +
dts文件路径为:linux/arch/arm64/boot/dts/freescale,将dts文件放到此路径。
 +
 +
* Modify dts Makefile
 +
 +
修改同路径下的Makefile,增加对应dts编译选项。
 +
 +
====编译准备====
 +
<code>export PATH=$PATH:[REPLACE with your path]/toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/</code>
 +
 +
<code>export CC=aarch64-linux-gnu-gcc</code>
 +
 +
<code>export CROSS_COMPILE=aarch64-linux-gnu-</code>
 +
 +
<code>export ARCH=arm64</code>
 +
 +
* Maaxboard
 +
 +
<code>make  bcm2711_defconfig</code>
 +
=====增加编译选项=====
 +
<code>make menuconfig</code>
 +
 +
增加对应camera模块驱动的编译选项,路径为 Device Drivers > Multimedia support > V4L platform devices > MXC Camera/V4L2 PRP Features support 。
 +
=====编译输出=====
 +
<code>make Image dtbs -j4</code>
 
=== 参考资料 ===
 
=== 参考资料 ===
  

Revision as of 16:04, 4 February 2021

English

如何在AVNET Maaxboard(mini)主板使用VEYE系列和CS系列摄像头模组

1 概述

Maaxboard的MIPI-CSI2的接口与树莓派一致,VEYE-MIPI-327S、CS-MIPI-IMX307、CS-MIPI-SC132等MIPI模组可以直接连接上。
在Maaxboard官方资料基础上,增加了我们的摄像头模组驱动,并提供了一些应用层的例程。一般情况下,只需使用我们已编译好的Image和DTB,非必要情况下,无需根据代码进行编译。

特殊的,在这个i.MX平台上,摄像头采用了YUYV格式。

2 硬件准备及安装

TODO(Pciture)

3 更新Maaxboard系统

3.1 烧写Maaxboard标准系统

Maaxboard支持Linux Debain、Linux Yocto、Android系统,Linux系统下,Image和dtb是一样的,我们采用Debain系统作为例子。

参考《MaaXBoard-Linux-Debian-UserManual-V1.3-CN.pdf》或《MaaXBoard_Mini-Linux-Debian-UserManual-V1.1-CN.pdf》文档,烧写标准版本。

3.2 使用编译好的Image和dtb

Maaxboard的Image和dtb,存放在TF卡的FAT分区,可以直接进行替换。

git clone https://github.com/veyeimaging/avnet_maaxboard.git

在上位机,解压kernel Image,将Image和em-sbc-imx8m-veye327.dtb放到TF卡的FAT分区。

然后将TF卡插到Maaxboard板子上,重新上电启动即可。

4 应用和测试

在Maaxboard板卡上:

git clone https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git

4.1 系统状态检测

完成系统安装后,在Maaxboard板端执行以下命令来检测是否正确连接摄像头。

  • VEYE-MIPI-327

dmesg | grep veye327  

应当有类似如下提示:

camera veye327_mipi is found

Registered sensor subdevice: veye327_mipi 0-003b

此外,检查/dev/videoX设备节点,应当是存在的。

  • CS-MIPI-IMX307

dmesg | grep csimx307  

应当有类似如下提示:

camera csimx307_mipi is found

Registered sensor subdevice: csimx307_mipi 0-003b

此外,检查/dev/videoX设备节点,应当是存在的。

  • CS-MIPI-SC132

dmesg | grep cssc132  

应当有类似如下提示:

camera cssc132_mipi is found

Registered sensor subdevice: cssc132_mipi 0-003b

此外,检查/dev/video0设备节点,应当是存在的。

4.2 列出摄像头支持的模式

v4l2-ctl --list-formats-ext

4.3 视频流测试

export DISPLAY=:0

  • 视频预览(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)

gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1920,height=1080,framerate=(fraction)30/1' ! waylandsink

  • 抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)

gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, width=1920,height=1080' ! jpegenc ! filesink location=test_image.jpg

  • v4l2grab抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)

./v4l2grab -d /dev/video0 -W 1920 -H 1080 -I 30 -o picture.jpg

4.4 I2C脚本

由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。

https://github.com/veyeimaging/nxp_i.mx_veye_bsp/tree/main/i2c_cmd

VEYE系列参数控制软件包使用说明

CS系列参数控制软件包使用说明

5 驱动的源代码编译

以下操作均在ubuntu Host PC上进行。

5.1 编译标准版本

参考官方文档《MaaXBoard-Linux-Development_Guide-V1.1-CN.pdf》

5.2 Patch我们的代码

  • Driver source code

git clone https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git

camera驱动源码路径为: linux/drivers/media/platform/mxc/capture,将camera驱动的源码放到对应目录。

  • Modify the the Makefile and Kconfig files

修改同路径下的Config和Makefile,增加对应camera驱动。

  • dts file

git clone https://github.com/veyeimaging/avnet_maaxboard.git

dts文件路径为:linux/arch/arm64/boot/dts/freescale,将dts文件放到此路径。

  • Modify dts Makefile

修改同路径下的Makefile,增加对应dts编译选项。

5.3 编译准备

export PATH=$PATH:[REPLACE with your path]/toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/

export CC=aarch64-linux-gnu-gcc

export CROSS_COMPILE=aarch64-linux-gnu-

export ARCH=arm64

  • Maaxboard

make bcm2711_defconfig

5.3.1 增加编译选项

make menuconfig

增加对应camera模块驱动的编译选项,路径为 Device Drivers > Multimedia support > V4L platform devices > MXC Camera/V4L2 PRP Features support 。

5.3.2 编译输出

make Image dtbs -j4

6 参考资料

Maaxboard 厂家 :http://www.embest-tech.cn/

Maaxboard 官方资料:http://www.embest-tech.cn/down.aspx?key=maaxboard