Difference between revisions of "V-by-One-HS KIT appnotes 4 rpi/zh"

From wiki_veye
Jump to navigation Jump to search
 
(18 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
!系列
 
!系列
 
!型号
 
!型号
!Corx Cable数
 
 
!状态
 
!状态
 
|-
 
|-
 
|MV系列
 
|MV系列
 
| MV-MIPI-IMX178M
 
| MV-MIPI-IMX178M
|1
 
 
|完成
 
|完成
 
|-
 
|-
 
|MV系列
 
|MV系列
 
| MV-MIPI-SC130M
 
| MV-MIPI-SC130M
|1
 
 
| 完成
 
| 完成
 
|-
 
|-
 
|MV系列
 
|MV系列
 
| MV-MIPI-IMX287M
 
| MV-MIPI-IMX287M
|1
 
 
|完成
 
|完成
 
|-
 
|-
 
|MV系列
 
|MV系列
 
|MV-MIPI-IMX296M
 
|MV-MIPI-IMX296M
|1
 
 
|完成
 
|完成
 
|-
 
|-
 
| MV系列
 
| MV系列
 
|MV-MIPI-IMX265M
 
|MV-MIPI-IMX265M
|1
 
 
|完成
 
|完成
 
|-
 
|-
 
|MV系列
 
|MV系列
 
|MV-MIPI-IMX264M
 
|MV-MIPI-IMX264M
|1
 
 
|完成
 
|完成
 
|-
 
|-
 
|RAW系列
 
|RAW系列
 
|RAW-MIPI-SC132M
 
|RAW-MIPI-SC132M
|1
 
 
|完成
 
|完成
 
|-
 
|-
 
|RAW系列
 
|RAW系列
 
|RAW-MIPI-AR0234M
 
|RAW-MIPI-AR0234M
|1 cable @ 2 lane mode
+
|进行中
2 cable @ 4 lane mode
+
|-
 +
|RAW系列
 +
|RAW-MIPI-IMX462M
 
|进行中
 
|进行中
 
|}
 
|}
Line 67: Line 61:
 
!BOTTOM
 
!BOTTOM
 
|-
 
|-
|[[File:ADP-MV1-MV-MIPI-X 01.jpg|center|thumb|600x600px|ADP-MV1 to MV-MIPI-X|alt=|link=http://wiki.veye.cc/index.php/File:ADP-MV1-MV-MIPI-X_01.jpg]]
+
|[[File:V-by-One-HS-RX connect with MV cam.jpg|alt=|center|thumb|600x600px|V-by-One-HS-RX to MV-MIPI-X]]
|[[File:ADP-MV1-MV-MIPI-X 02.jpg|alt=|center|thumb|600x600px|ADP-MV1 to MV-MIPI-X|link=http://wiki.veye.cc/index.php/File:ADP-MV1-MV-MIPI-X_02.jpg]]
+
|[[File:V-by-One-HS-RX to MV-MIPI-X.jpg|alt=|center|thumb|600x600px|V-by-One-HS-RX to MV-MIPI-X]]
 
|}
 
|}
 
===== RAW系列摄像头 =====
 
===== RAW系列摄像头 =====
二者使用0.5mm间距*30P的FFC异面线连接,注意接触面向外。
+
RAW系列摄像头有两种输出规格,15pin接口和22pin接口。
 +
 
 +
* 22pin接口类型
 +
 
 +
使用0.5mm间距*22P的FFC异面线连接,注意接触面向外。
 +
 
 +
* 15pin接口类型(RAW-MIPI-SC132M)
 +
 
 +
使用15转22pin的FFC同面线连接,注意接触面向外。
 +
 
 +
==== V-by-One-HS-RX与V-by-One-HS-TX的连接 ====
 +
大部分情况下,只需要一根同轴线缆即可满足图像传输带宽的需要。一根同轴线缆可以提供3.2Gbps有效带宽。
 +
 
 +
下面列出需要使用两根同轴线缆的情形:
  
 +
* RAW-MIPI-AR0234M: 配置为4lan,且输出格式为RAW10时。
 
==== V-by-One-HS-RX与树莓派的连接 ====
 
==== V-by-One-HS-RX与树莓派的连接 ====
  
 
===== 供电 =====
 
===== 供电 =====
 +
V-by-One-HS-RX需要独立的12V供电。可以选择J1或J2进行供电。
  
 
===== 树莓派Model B和Model B+ =====
 
===== 树莓派Model B和Model B+ =====
 +
使用1mm间距15pin异面线,连接V-by-One-HS-RX的J9到树莓派的MIPI CSI-2接口即可。
  
 
===== 树莓派Zero,Zero W和Computer Module =====
 
===== 树莓派Zero,Zero W和Computer Module =====
 +
使用0.5mm间距22pin异面线,连接V-by-One-HS-RX的J7到树莓派的MIPI CSI-2接口即可。
  
 +
==== 整体连接示意图 ====
 +
[[File:V-By-One-HS-Kit with MV camera.jpg|center|thumb|800x800px|V-By-One-HS-Kit with MV camera]]
 +
<br />
 
=== V4L2模式用法 ===
 
=== V4L2模式用法 ===
 +
====下载驱动包====
 +
<code>wget <nowiki>https://github.com/veyeimaging/raspberrypi_v4l2/releases/latest/download/raspberrypi_v4l2.tgz</nowiki></code>
 +
====安装驱动====
 +
<code>tar -xzvf raspberrypi_v4l2.tgz</code>
 +
 +
<code>cd raspberrypi_v4l2/release/</code>
 +
 +
<code>chmod +x *</code>
 +
 +
<code>sudo ./install_driver.sh veye_vbyone</code>
 +
 +
<code>sudo ./install_driver.sh veye_mvcam</code>
 +
 +
===== 选择合适的veye_vbyone.dtbo =====
 +
vbyone具有很多配置选项:MIPI速率,摄像头MIPI lane数目,V-by-One-HS-TX输出lan数目,IO采用近端模式还是远端模式,同轴线缆数目等。
  
==== 下载驱动包 ====
+
默认安装的是1.5Gbps/lane,摄像头MIPI信号为2lane,IO采用近端模式,一根同轴线缆的模式。
  
==== 安装驱动 ====
+
你可以选择使用合适的veye_vbyone-[option].dtbo文件,改名为veye_vbyone.dtbo后,拷贝到/boot/overlay目录。
  
==== 卸载驱动 ====
+
也可以如需采用其他模式的vbyone配置,只需参考[[Build drivers from source for rpi/zh|树莓派平台上摄像头驱动源码编译指南]],修改veye_vbyone.dts,重新编译出veye_vbyone.dtbo后,拷贝到/boot/overlay目录下即可。
  
 +
安装完成后,重启树莓派。
 +
 +
备注:如果提示无法找到对应版本的驱动,说明我们没有提供对应您的piOS版本编译后的驱动程序。请尝试从源码编译。
 +
====卸载驱动====
 +
如需更换为Legacy模式,或者想要更换成其他摄像头模组型号的驱动,必须要先卸载现在的驱动。
 +
 +
<code>sudo ./uninstall_driver.sh veye_vbyone</code>
 +
 +
<code>sudo ./uninstall_driver.sh veye_mvcam</code>
 
==== 系统状态验证 ====
 
==== 系统状态验证 ====
 +
<code>dmesg | grep mvcam</code>
 +
 +
可以看到linux启动阶段probe到的相机型号和以及相机的版本号。
 +
 +
以MV-MIPI-IMX178M为例:
 +
 +
<code>camera is: MV-MIPI-IMX178M</code>
 +
 +
<code>firmware version: 0x1080102</code>
 +
 +
并且/dev/video0 节点存在,证明摄像头状态正常。
  
 
==== 应用范例 ====
 
==== 应用范例 ====
 +
请参考[[Mv series camera appnotes 4 rpi/zh|如何在树莓派平台使用MV系列摄像头模组]]文章的对应章节。
  
 
=== Legacy模式用法 ===
 
=== Legacy模式用法 ===
 +
我们在这个[https://github.com/veyeimaging/mvcam_raspberrypi github仓库]中存储legacy模式的代码。
 +
 +
====下载软件包====
 +
<code>git clone <nowiki>https://github.com/veyeimaging/mvcam_raspberrypi.git</nowiki></code>
 +
 +
增加可执行权限
 +
 +
<code>chmod +x -R ./mvcam_raspberrypi/</code>
 +
====软件包主要内容介绍====
 +
camera_i2c_config:自动识别不同的树莓派板型,并控制power on 引脚给摄像机供电。
  
==== 下载软件包 ====
+
vbyone_i2c_init.sh:初始化配置V-by-One链路的脚本。
  
==== 软件包主要内容介绍 ====
+
mv_raspicam:实现图像预览、图片保存等功能。
  
 +
mv_mipi_i2c.sh:通过i2c协议读取和设置相机参数的脚本。
 
==== 初始化V-by-One链路 ====
 
==== 初始化V-by-One链路 ====
 +
首先执行vbyone_i2c_init.sh。
 +
 +
vbyone_i2c_init.sh脚本使用说明:
 +
 +
<code>Use the I2C command to initialize the SERDES channel of V-by-One.</code>
  
 +
<code>Usage:  ./vbyone_i2c_init.sh</code>
 +
 +
<code>options:</code>
 +
 +
<code>   -b [i2c bus num]        i2c bus number,default 10</code>
 +
 +
<code>   -n [coax number]        coax number [1,2],default 1</code>
 +
 +
<code>   -s [camera mipi datarate]    1500 means:1500Mbps/lan; 1188 means: 1188Mbps/lan</code>
 +
 +
<code>   -l [camera lan number]  2 or 4</code>
 +
 +
<code>   -r [io remote or local]    0 means use io locally(on TX side); 1 means use io remotely(on RX side)</code>
 +
 +
<code>   -h                            print this help</code>
 +
 +
V-by-One链路初始化完成之后可以通过mv_mipi_i2c.sh脚本读取摄像头的版本号来确认是否可以正常访问摄像头寄存器。<br />可以参考[[Mv series camera appnotes 4 rpi/zh|如何在树莓派平台使用MV系列摄像头模组]]文章的Legacy模式相关章节对摄像头进行使用。
 
=== IO的近端和远端模式 ===
 
=== IO的近端和远端模式 ===
 +
V-by-One-HS_KIT的IO支持配置为近端和远端模式,这两种模式只对MV系列相机有效。
 +
 +
==== 近端模式 ====
 +
在V-by-One的TX端本地访问MV camera的对应IO。
 +
{| class="wikitable"
 +
!MV Cam pin
 +
!TX pin
 +
!function
 +
|-
 +
|TriggerIN_IO
 +
|GPIO0
 +
|trigger in
 +
|-
 +
|OUT_IO1
 +
|GPIO2
 +
|Strobe/userout
 +
|-
 +
|OUT_IO2
 +
|GPIO3
 +
|Strobe/userout/triggerout
 +
|}
  
=== 常见问题 ===
+
==== 远端模式 ====
 +
通过配置,可以在V-by-One的RX端远程访问MV camera的对应IO。
 +
{| class="wikitable"
 +
!MV Cam pin
 +
!TX pin
 +
!RX pin
 +
!function
 +
!Direction
 +
|-
 +
|TriggerIN_IO
 +
|GPIO0
 +
|GPIO0
 +
|trigger in
 +
|RX-->TX
 +
|-
 +
|OUT_IO1
 +
|GPIO2
 +
|GPIO2
 +
|Strobe/userout
 +
|TX-->RX
 +
|-
 +
|OUT_IO2
 +
|GPIO3
 +
|GPIO3
 +
|Strobe/userout/triggerout
 +
|TX-->RX
 +
|}
 +
=== 常见问题和注意事项 ===
 +
 
 +
* 不能执行i2cdetect
  
 +
系统初始化完成之后,不能使用i2cdetect命令进行地址设备的探测,否则会破坏已经建立好的SerDes链路。<br />
 
=== 本文修改记录 ===
 
=== 本文修改记录 ===
<br />
+
 
 +
* 2023-07-30
 +
 
 +
第一个版本。<br />

Latest revision as of 15:08, 30 July 2023

English

1 概述

V-by-One® HS 是由THine提供的高性能SerDes方案,具有优秀的性能和出色的性价比。我们基于V-by-One® HS方案开发了V-by-One-HS KIT产品,用于MV系列和RAW系列摄像头产品的图像远传。V-by-One-HS KIT具有良好的适配性,丰富的输入输出接口以及完善的驱动支持。

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 完成
RAW系列 RAW-MIPI-AR0234M 进行中
RAW系列 RAW-MIPI-IMX462M 进行中

1.2 必需的准备工作

V-by-One只是提供了一个图像、I2C和IO的远传的透明通道。对于摄像头本身的功能使用,与使用MIPI接口直接连接到树莓派上一致。

因此,请务必参考如何在树莓派平台使用MV系列摄像头模组

2 硬件准备及安装

2.1 V-by-One-HS-RX与摄像头的连接

2.1.1 MV系列摄像头

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

TOP BOTTOM
V-by-One-HS-RX to MV-MIPI-X
V-by-One-HS-RX to MV-MIPI-X
2.1.2 RAW系列摄像头

RAW系列摄像头有两种输出规格,15pin接口和22pin接口。

  • 22pin接口类型

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

  • 15pin接口类型(RAW-MIPI-SC132M)

使用15转22pin的FFC同面线连接,注意接触面向外。

2.2 V-by-One-HS-RX与V-by-One-HS-TX的连接

大部分情况下,只需要一根同轴线缆即可满足图像传输带宽的需要。一根同轴线缆可以提供3.2Gbps有效带宽。

下面列出需要使用两根同轴线缆的情形:

  • RAW-MIPI-AR0234M: 配置为4lan,且输出格式为RAW10时。

2.3 V-by-One-HS-RX与树莓派的连接

2.3.1 供电

V-by-One-HS-RX需要独立的12V供电。可以选择J1或J2进行供电。

2.3.2 树莓派Model B和Model B+

使用1mm间距15pin异面线,连接V-by-One-HS-RX的J9到树莓派的MIPI CSI-2接口即可。

2.3.3 树莓派Zero,Zero W和Computer Module

使用0.5mm间距22pin异面线,连接V-by-One-HS-RX的J7到树莓派的MIPI CSI-2接口即可。

2.4 整体连接示意图

V-By-One-HS-Kit with MV camera


3 V4L2模式用法

3.1 下载驱动包

wget https://github.com/veyeimaging/raspberrypi_v4l2/releases/latest/download/raspberrypi_v4l2.tgz

3.2 安装驱动

tar -xzvf raspberrypi_v4l2.tgz

cd raspberrypi_v4l2/release/

chmod +x *

sudo ./install_driver.sh veye_vbyone

sudo ./install_driver.sh veye_mvcam

3.2.1 选择合适的veye_vbyone.dtbo

vbyone具有很多配置选项:MIPI速率,摄像头MIPI lane数目,V-by-One-HS-TX输出lan数目,IO采用近端模式还是远端模式,同轴线缆数目等。

默认安装的是1.5Gbps/lane,摄像头MIPI信号为2lane,IO采用近端模式,一根同轴线缆的模式。

你可以选择使用合适的veye_vbyone-[option].dtbo文件,改名为veye_vbyone.dtbo后,拷贝到/boot/overlay目录。

也可以如需采用其他模式的vbyone配置,只需参考树莓派平台上摄像头驱动源码编译指南,修改veye_vbyone.dts,重新编译出veye_vbyone.dtbo后,拷贝到/boot/overlay目录下即可。

安装完成后,重启树莓派。

备注:如果提示无法找到对应版本的驱动,说明我们没有提供对应您的piOS版本编译后的驱动程序。请尝试从源码编译。

3.3 卸载驱动

如需更换为Legacy模式,或者想要更换成其他摄像头模组型号的驱动,必须要先卸载现在的驱动。

sudo ./uninstall_driver.sh veye_vbyone

sudo ./uninstall_driver.sh veye_mvcam

3.4 系统状态验证

dmesg | grep mvcam

可以看到linux启动阶段probe到的相机型号和以及相机的版本号。

以MV-MIPI-IMX178M为例:

camera is: MV-MIPI-IMX178M

firmware version: 0x1080102

并且/dev/video0 节点存在,证明摄像头状态正常。

3.5 应用范例

请参考如何在树莓派平台使用MV系列摄像头模组文章的对应章节。

4 Legacy模式用法

我们在这个github仓库中存储legacy模式的代码。

4.1 下载软件包

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

增加可执行权限

chmod +x -R ./mvcam_raspberrypi/

4.2 软件包主要内容介绍

camera_i2c_config:自动识别不同的树莓派板型,并控制power on 引脚给摄像机供电。

vbyone_i2c_init.sh:初始化配置V-by-One链路的脚本。

mv_raspicam:实现图像预览、图片保存等功能。

mv_mipi_i2c.sh:通过i2c协议读取和设置相机参数的脚本。

4.3 初始化V-by-One链路

首先执行vbyone_i2c_init.sh。

vbyone_i2c_init.sh脚本使用说明:

Use the I2C command to initialize the SERDES channel of V-by-One.

Usage:  ./vbyone_i2c_init.sh

options:

   -b [i2c bus num]     i2c bus number,default 10

   -n [coax number]        coax number [1,2],default 1

   -s [camera mipi datarate]    1500 means:1500Mbps/lan; 1188 means: 1188Mbps/lan

   -l [camera lan number] 2 or 4

   -r [io remote or local] 0 means use io locally(on TX side); 1 means use io remotely(on RX side)

   -h                            print this help

V-by-One链路初始化完成之后可以通过mv_mipi_i2c.sh脚本读取摄像头的版本号来确认是否可以正常访问摄像头寄存器。
可以参考如何在树莓派平台使用MV系列摄像头模组文章的Legacy模式相关章节对摄像头进行使用。

5 IO的近端和远端模式

V-by-One-HS_KIT的IO支持配置为近端和远端模式,这两种模式只对MV系列相机有效。

5.1 近端模式

在V-by-One的TX端本地访问MV camera的对应IO。

MV Cam pin TX pin function
TriggerIN_IO GPIO0 trigger in
OUT_IO1 GPIO2 Strobe/userout
OUT_IO2 GPIO3 Strobe/userout/triggerout

5.2 远端模式

通过配置,可以在V-by-One的RX端远程访问MV camera的对应IO。

MV Cam pin TX pin RX pin function Direction
TriggerIN_IO GPIO0 GPIO0 trigger in RX-->TX
OUT_IO1 GPIO2 GPIO2 Strobe/userout TX-->RX
OUT_IO2 GPIO3 GPIO3 Strobe/userout/triggerout TX-->RX

6 常见问题和注意事项

  • 不能执行i2cdetect

系统初始化完成之后,不能使用i2cdetect命令进行地址设备的探测,否则会破坏已经建立好的SerDes链路。

7 本文修改记录

  • 2023-07-30

第一个版本。