Difference between revisions of "V-by-One-HS KIT appnotes 4 rpi/zh"
(14 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
!系列 | !系列 | ||
!型号 | !型号 | ||
− | |||
!状态 | !状态 | ||
|- | |- | ||
|MV系列 | |MV系列 | ||
| MV-MIPI-IMX178M | | MV-MIPI-IMX178M | ||
− | |||
|完成 | |完成 | ||
|- | |- | ||
|MV系列 | |MV系列 | ||
| MV-MIPI-SC130M | | MV-MIPI-SC130M | ||
− | |||
| 完成 | | 完成 | ||
|- | |- | ||
|MV系列 | |MV系列 | ||
| MV-MIPI-IMX287M | | MV-MIPI-IMX287M | ||
− | |||
|完成 | |完成 | ||
|- | |- | ||
|MV系列 | |MV系列 | ||
|MV-MIPI-IMX296M | |MV-MIPI-IMX296M | ||
− | |||
|完成 | |完成 | ||
|- | |- | ||
| MV系列 | | MV系列 | ||
|MV-MIPI-IMX265M | |MV-MIPI-IMX265M | ||
− | |||
|完成 | |完成 | ||
|- | |- | ||
|MV系列 | |MV系列 | ||
|MV-MIPI-IMX264M | |MV-MIPI-IMX264M | ||
− | |||
|完成 | |完成 | ||
|- | |- | ||
|RAW系列 | |RAW系列 | ||
|RAW-MIPI-SC132M | |RAW-MIPI-SC132M | ||
− | |||
|完成 | |完成 | ||
|- | |- | ||
|RAW系列 | |RAW系列 | ||
|RAW-MIPI-AR0234M | |RAW-MIPI-AR0234M | ||
− | | | + | |进行中 |
− | + | |- | |
+ | |RAW系列 | ||
+ | |RAW-MIPI-IMX462M | ||
|进行中 | |进行中 | ||
|} | |} | ||
Line 82: | Line 76: | ||
==== V-by-One-HS-RX与V-by-One-HS-TX的连接 ==== | ==== 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与树莓派的连接 ==== | ||
Line 89: | Line 87: | ||
===== 树莓派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
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 |
---|---|
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 整体连接示意图
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
第一个版本。