MV Camera on Firfly Boards/zh

From wiki_veye
Jump to navigation Jump to search

English

怎样在Firefly板子上使用MV系列和RAW系列相机

1 概述

MV系列和RAW系列相机是为工业领域的AI应用推出的相机。其使用MIPI CSI-2接口,尤其适合嵌入式运算平台使用。它具备丰富的数据格式和触发特性,极低的延时,极高的带宽和可靠的稳定性。

本文以Firefly的ROC-RK3588S-PC主板为例,介绍怎样将MV和RAW系列摄像机接入RK3588S/RK3588系统。

我们提供了Linux(以Ubuntu为例)操作系统下的驱动。

1.1 支持的模组

系列 型号 状态
MV系列 MV-MIPI-IMX178M 完成
MV系列 MV-MIPI-SC130M 完成
MV系列 MV-MIPI-IMX287M 完成
MV系列 MV-MIPI-IMX296M 完成
MV系列 MV-MIPI-IMX265M 完成
MV系列 MV-MIPI-IMX264M 完成
RAW系列 RAW-MIPI-SC132M 完成

2 硬件准备及安装

MV系列和RAW系列相机需要使用ADP-MV2转接板才能连接到ROC-RK35xx-PC主板。

2.1 MV相机与ADP-MV2的连接

二者使用0.5mm间距*30P的FFC异面线连接,注意接触面向外。

【TODO:加图】

2.2 RAW相机与ADP-MV2的连接

二者使用0.5mm间距*30P的FFC异面线连接,注意接触面向外。

【TODO:加图】

2.3 ADP-MV2与主板的连接

二者使用0.5mm间距*30P的FFC同面线连接,注意接触面向内。

【TODO:加图】

2.4 整体连接图

【TODO:加图】

3 github库介绍

https://github.com/veyeimaging/rk35xx_firefly

包括以下主要内容:

  • driver和dts源码
  • i2c通信工具集
  • 应用层demo

此外,在releases中,提供了编译好的linux系统镜像。

4 更新ubuntu系统

对于ROC-RK3588S-PC,我们提供了发布系统的烧写镜像。

下载https://github.com/veyeimaging/rk35xx_firefly/releases/中最新的支持MV和RAW系列的镜像。

参考Firefly文档,烧写系统。

5 系统状态检测

5.1 是否正确识别到了相机

完成系统安装后,系统上电。在Firefly板端执行以下命令来检测是否正确连接相机。

dmesg | grep mvcam

应当有类似下面的提示:

mvcam 7-003b: camera is:MV-MIPI-IMX296M

mvcam 7-003b: firmware version: 0x1290133

可以看到识别到当前的摄像机模组的型号,版本号。摄像机挂载在i2c-7, i2c地址是0x3b。

  • 执行如下命令检查video0设备节点

ls /dev/video0

可以看到

video0

正确识别摄像头之后,MIPI-CSI2接口的摄像头识别为/dev/video0。

5.2 使用media-ctl查看拓扑结构

使用media-ctl指令,可以清晰的展现出当前的拓扑结构。

media-ctl -p -d /dev/media0

5.2.1 链接关系

mv camera->rockchip-csi2-dphy0->rockchip-mipi-csi2->stream_cif_mipi_id0 - - ->DDR(/dev/video0)

应用程序可以通过/dev/video0节点获取图像。

5.2.2 mv camera entity信息

以MV-MIPI-IMX296M为例:

- entity 63: m00_b_mvcam 7-003b (1 pad, 1 link)

             type V4L2 subdev subtype Sensor flags 0

             device node name /dev/v4l-subdev2

        pad0: Source

                [fmt:Y8_1X8/1456x1088@100/6000 field:none]

                -> "rockchip-csi2-dphy0":0 [ENABLED]

可以看到:

  • 该Entity完整的名称是: m00_b_mvcam 7-003b
  • 它是一个 V4L2 subdev (Sub-Device) Sensor。
  • 它对应的节点是 /dev/v4l-subdev2 ,应用程序(如v4l2-ctl)可以打开它,并进行配置。
  • 它的输出格式是 [fmt:Y8_1X8/1456x1088@100/6000 field:none] ,其中Y8_1X8是一种mbus-code的简写,下一小节会列出支持的mbus-code。
  • 当前分辨率是1456x1088。
  • 当前帧间隔是100/6000,即帧率是60。

摄像机输出的数据格式,可以通过media-ctl指令修改。

5.3 相机支持的mbus-code

MV系列和RAW系列相机具备不同的数据格式能力,具体请参考每个型号的相机的数据手册。

格式对应关系
Format on datasheet mbus-code for media-ctl FourCC pixelformat for v4l2-ctl
RAW8 Y8_1X8 GREY
RAW10 Y10_1X10 'Y10 '
RAW12 Y12_1X12 'Y12 '
UYVY UYVY8_2X8 UYVY

6 应用范例

6.1 配置命令行全局变量

为了后面描述方便,此处根据sensor尺寸,配置全局变量。

  • MV-MIPI-IMX178M

export WIDTH=3088

export HEIGHT=2064

export FPS=22

  • MV-MIPI-SC130M

export WIDTH=1280

export HEIGHT=1024

export FPS=108

  • MV-MIPI-IMX296M

export WIDTH=1440

export HEIGHT=1088

export FPS=60

  • MV-MIPI-IMX287M

export WIDTH=704

export HEIGHT=544

export FPS=319

  • MV-MIPI-IMX265M

export WIDTH=2048

export HEIGHT=1544

export FPS=45

  • MV-MIPI-IMX264M

export WIDTH=2432

export HEIGHT=2056

export FPS=28

  • RAW-MIPI-SC132M

export WIDTH=1080

export HEIGHT=1280

export FPS=120

6.2 使用media-ctl配置格式


6.3 使用v4l2-ctl配置参数

7 i2c脚本使用说明

8 已知问题

9 参考资料

10 本文修改记录