Line 1: |
Line 1: |
| [[FPD LINK III for Jetson|English]] | | [[FPD LINK III for Jetson|English]] |
| | | |
− | === 概述 ===
| + | == 概述 == |
| + | FPD-Link SerDes III是由TI提供的视频流同轴远程传输方案。我们设计了[[FPD-LINK3-TX Data Sheet index|FPD-LINK3-TX]]和[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]电路板,可以实现1或2路MIPI图像的同轴远程传输,传输距离可达8米(RG174电缆)或10米(RG58电缆)。 |
| | | |
− | === 硬件准备及安装 ===
| + | 在Jetson Nano和NX平台上,采用1组[[FPD-LINK3-TX Data Sheet index|FPD-LINK3-TX]]和[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]电路板,即可提供1路摄像头的远传,采用2组则可以提供2路摄像头的远传。[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]上,fpdlink通道为port0(J3)到J9。 |
| | | |
− | === 更新Jetson系统 === | + | 在Jetson TX2和Jetson AGX Xavier平台上,采用1组[[FPD-LINK3-TX Data Sheet index|FPD-LINK3-TX]]和[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]电路板,即可提供2路摄像头的远传。[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]上,fpdlink通道为port0(J3)和port1(J4)到J7,J7为一个4lan的mipi接口,通过虚拟通道技术,支持两路独立的摄像头数据传输。 |
| + | |
| + | 在Jetson TX2平台,采用3组FPD-LINK电路板,配合1个[[ADP-N2 Data Sheet index|ADP-N2]],即可提供6路视频的远传。在Jetson AGX Xavier平台,采用4组FPD-LINK电路板,配合一个[[ADP-N3 Data Sheet index|ADP-N3]],即可提供8路视频的远传。 |
| + | |
| + | 在应用层看来,FPD-Link通道支持所有MIPI摄像头功能,包括图像、i2c通信、同步IO、触发IO。<br />在使用CS-FPD-CAM时,必须要参考如下文章: |
| + | |
| + | * [[VEYE CS Camera for Jetson TX2/zh|如何在英伟达Jetsno Nano, TX2,AGX Xavier和Xavier NX平台使用VEYE系列和CS系列摄像头模组]] |
| + | |
| + | == 硬件准备及安装 == |
| + | [[File:Jetson NX FPDLINK3 2 cameras.jpg|center|thumb|600x600px|Jetson NX connect with CS-FPD-CAMs(the same with Jetson Nano)]] |
| + | [[File:XAVIER-FPDLINK3-4cam.jpg|center|thumb|600x600px|AGX XAVIER connnect with CS-FPD-CAMs]] |
| + | [[File:TX2-FPDLINK3-4cams.jpg|center|thumb|600x600px|TX2 connect with CS-FPD-CAMs]] |
| + | <br />注: |
| + | |
| + | # [[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]需要12V供电。 |
| + | #FPD-LINK3-2RX需要不晚于Xavier主板供电。因为Xavier会在启动阶段探测外设。 |
| + | #务必将ADP转接板用螺丝固定到主板上。 |
| + | |
| + | == 更新Jetson系统 == |
| + | 与[[VEYE CS Camera for Jetson TX2/zh#.E6.9B.B4.E6.96.B0Jetson Nano.2C Jetson TX2.EF.BC.8CAGX Xavier.E5.92.8CXavier NX.E7.B3.BB.E7.BB.9F|更新Jetson Nano, Jetson TX2,AGX Xavier和Xavier NX系统]]步骤基本一致,注意dts、dtb、均采用fpdlink后缀的版本即可。driver源代码和Image,兼容FPD-Link和MIPI接口摄像头。 |
| + | |
| + | ==== Image和DTB更新成功了吗? ==== |
| + | |
| + | ===== 对于Image ===== |
| + | <code>ls /sys/bus/i2c/drivers/</code> |
| + | |
| + | 应当有 veyecam2m csx307 cssc132 i2c-ds90ub954 目录的存在。 |
| + | |
| + | ===== 对于DTB ===== |
| + | DTB在不同的平台和不同的摄像头模组都会有所不同。 |
| + | |
| + | - Nano A02 |
| + | |
| + | <code>ls /proc/device-tree/host1x/i2c@546c0000/</code> |
| + | |
| + | - Nano B01 |
| + | |
| + | <code>ls /proc/device-tree/cam_i2cmux/i2c@*</code> |
| + | |
| + | - TX2 Devkit |
| + | |
| + | <code>ls /proc/device-tree/i2c@3180000/tca9548@70/i2c@*</code> |
| + | |
| + | - AGX Xavier |
| + | |
| + | <code>ls /proc/device-tree/i2c@3180000/tca9548@70/i2c@*</code> |
| + | |
| + | - Xavier NX 和 TX2 NX(p3509-0000 carrier board) |
| + | |
| + | <code>ls /proc/device-tree/cam_i2cmux/i2c@*</code> |
| + | |
| + | 应当可以发现摄像头型号和ds90ub954。 |
| + | |
| + | == I2C地址 == |
| + | '''fpdlink port:[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]板子上,J3为port 0, J4为port 1。''' |
| + | |
| + | ==== Nano A02 ==== |
| + | {| class="wikitable" |
| + | !Camera Index |
| + | !I2C bus |
| + | !I2C Addr |
| + | !Location |
| + | |- |
| + | |Camera 0 |
| + | |6 |
| + | |0x3b |
| + | |FPD-LINK3-2RX port 0 |
| + | |} |
| + | |
| + | ==== Nano B01 ==== |
| + | {| class="wikitable" |
| + | !Camera Index |
| + | !I2C bus |
| + | !I2C Addr |
| + | !Location |
| + | |- |
| + | |Camera 0 |
| + | |7 |
| + | |0x3b |
| + | |FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 1 |
| + | |8 |
| + | |0x3b |
| + | |FPD-LINK3-2RX port 0 |
| + | |} |
| + | |
| + | ==== Xavier NX and TX2 NX(p3509-0000 carrier board) ==== |
| + | {| class="wikitable" |
| + | !Camera Index |
| + | !I2C bus |
| + | !I2C Addr |
| + | !Location |
| + | |- |
| + | |Camera 0 |
| + | |9 |
| + | |0x3b |
| + | |FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 1 |
| + | |10 |
| + | |0x3b |
| + | |FPD-LINK3-2RX port 0 |
| + | |} |
| + | |
| + | ==== AGX Xavier ==== |
| + | {| class="wikitable" |
| + | !Camera Index |
| + | !I2C bus |
| + | !I2C Addr |
| + | !Location |
| + | |- |
| + | |Camera 0 |
| + | |30 |
| + | |0x3b |
| + | |ADP-N3 J1--FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 1 |
| + | |30 |
| + | |0x3c |
| + | |ADP-N3 J1--FPD-LINK3-2RX port 1 |
| + | |- |
| + | |Camera 2 |
| + | |31 |
| + | |0x3b |
| + | |ADP-N3 J2--FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 3 |
| + | |31 |
| + | |0x3c |
| + | |ADP-N3 J2--FPD-LINK3-2RX port 1 |
| + | |- |
| + | |Camera 4 |
| + | |32 |
| + | |0x3b |
| + | |ADP-N3 J3--FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 5 |
| + | |32 |
| + | |0x3c |
| + | |ADP-N3 J3--FPD-LINK3-2RX port 1 |
| + | |- |
| + | |Camera 6 |
| + | |33 |
| + | |0x3b |
| + | |ADP-N3 J4--FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 7 |
| + | |33 |
| + | |0x3c |
| + | |ADP-N3 J4--FPD-LINK3-2RX port 1 |
| + | |} |
| + | |
| + | ==== TX2 Devkit ==== |
| + | {| class="wikitable" |
| + | !Camera Index |
| + | !I2C bus |
| + | !I2C Addr |
| + | !Location |
| + | |- |
| + | |Camera 0 |
| + | |30 |
| + | |0x3b |
| + | |ADP-N2 J1--FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 1 |
| + | |30 |
| + | |0x3c |
| + | |ADP-N2 J1--FPD-LINK3-2RX port 1 |
| + | |- |
| + | |Camera 2 |
| + | |31 |
| + | |0x3b |
| + | |ADP-N2 J2--FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 3 |
| + | |31 |
| + | |0x3c |
| + | |ADP-N2 J2--FPD-LINK3-2RX port 1 |
| + | |- |
| + | |Camera 4 |
| + | |32 |
| + | |0x3b |
| + | |ADP-N2 J3--FPD-LINK3-2RX port 0 |
| + | |- |
| + | |Camera 5 |
| + | |32 |
| + | |0x3c |
| + | |ADP-N2 J3--FPD-LINK3-2RX port 1 |
| + | |} |
| | | |
| === 应用和测试 === | | === 应用和测试 === |
| + | 与[[VEYE CS Camera for Jetson TX2/zh#.E5.BA.94.E7.94.A8.E5.92.8C.E6.B5.8B.E8.AF.95|MIPI模组在Jetson平台的应用和测试]]步骤一致。 |
| + | == FPD LINK III 脚本使用说明 == |
| + | $ ./fpdlink3_i2c_jetson.sh |
| + | |
| + | Usage: ./fpdlink3_i2c_jetson.sh [-f] function name -b bus -p port -p1 param1 -p2 param2 -p3 param3 |
| + | |
| + | options: |
| + | |
| + | -f [function name] function name |
| + | |
| + | -b [i2c bus num] i2c bus number |
| + | |
| + | -p [fpdlink port] fpd link port number [0,1] |
| + | |
| + | -p1 [param1] param1 of each function |
| + | |
| + | -p2 [param1] param2 of each function |
| + | |
| + | -p3 [param1] param3 of each function |
| + | |
| + | support functions: rpi_init,sync_init,trigger_init |
| + | |
| + | '''fpdlink port:[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]板子上,J3为port 0, J4为port 1。''' |
| + | ===fpdlink3_i2c.sh使用详解=== |
| + | FPD-Link设备的探测和加载在系统上电初始化的时候会自动完成。 |
| + | |
| + | =====sync_init===== |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -b [busnum] -p [portnum] -p1 0</code> |
| + | |
| + | 配置I2C总线busnum,port为portnum,设备为sync模式的主摄像头。 |
| + | |
| + | 将对应的[[FPD-LINK3-TX Data Sheet index|FPD-LINK3-TX]]的J1信号连接到[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]的J6,信号方向为TX-->RX。 |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -b [busnum] -p [portnum] -p1 1</code> |
| + | |
| + | 配置I2C总线busnum,port为portnum,设备为sync模式的从摄像头。 |
| + | |
| + | 将对应的[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]的J8信号连接到port1上的[[FPD-LINK3-TX Data Sheet index|FPD-LINK3-TX]]的J1,信号方向为RX-->TX。 |
| + | =====trigger_init ===== |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -b [busnum] -p [portnum]</code> |
| + | |
| + | 配置I2C总线busnum,port为portnum,设备为trigger模式。 |
| + | |
| + | 将[[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX]]的J6信号连接到portnum上的[[FPD-LINK3-TX Data Sheet index|FPD-LINK3-TX]]的J1,信号方向为RX-->TX。 |
| + | == 典型使用方案 == |
| + | |
| + | === CS-FPD-CAM单纯视频流,连接到Jetson Nano B01/NX === |
| + | [[File:CS-FPD-CAM connect to Jetson Nano-NX.png|center|thumb|800x800px|CS-FPD-CAM connect to Jetson Nano/NX]] |
| + | === CS-FPD-CAM单纯视频流,连接到Jetson AGX Xavier === |
| + | [[File:CS-FPD-CAM connect to Jetson AGX Xavier.png|center|thumb|800x800px|CS-FPD-CAM connect to Jetson AGX Xavier]] |
| + | |
| + | === CS-FPD-CAM-IMX307的同步模式,连接到Jetson Nano B01/NX === |
| + | [[File:CS-FPD-CAM-IMX307 sync mode's sync singal connection NEW.png|alt=|center|thumb|800x800px|CS-FPD-CAM-IMX307 sync mode's sync singal connection]]SYNC信号采用J7-3连接到J1-3,J7-2连接到J1-2。 |
| + | |
| + | =====第一步:===== |
| + | 上电之后, |
| + | |
| + | <code>ls /dev/video*</code> |
| + | |
| + | 出现video0,video1,则表明已正确检测到摄像头,可以连出视频。 |
| + | ===== 第二步:===== |
| + | 执行上面步骤后, |
| + | |
| + | *配置cam0为主 |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 0 -p1 0 -b [i2c_bus_num]</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 0 -b [i2c_bus_num] -d 0x3b</code> |
| + | |
| + | *配置cam1为从 |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 0 -p1 1 -b [i2c_bus_num]</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b [i2c_bus_num] -d 0x3b</code> |
| + | =====第三步: ===== |
| + | 指令执行之后,对摄像头的码流获取和I2C指令控制,与MIPI接口的摄像头完全一致。 |
| + | === CS-FPD-CAM-IMX307的同步模式,连接到Jetson AGX Xavier === |
| + | [[File:CS-FPD-IMX307 connect to Jetson AGX Xavier SYNC MODE NEW.png|alt=|center|thumb|800x800px|CS-FPD-IMX307 connect to Jetson AGX Xavier SYNC MODE]]SYNC信号采用J7-3连接到J1-3,J7-2连接到J1-2。 |
| + | |
| + | =====第一步:===== |
| + | 上电之后, |
| + | |
| + | <code>ls /dev/video*</code> |
| + | |
| + | 出现video0-7,则表明已正确检测到摄像头,可以连出视频。 |
| + | |
| + | ===== 第二步: ===== |
| + | 执行上面步骤后,I2C通路就可以访问了。 |
| + | |
| + | *配置cam0为主 |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 0 -p1 0 -b 30</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 0 -b 30 -d 0x3b</code> |
| + | |
| + | *配置cam1-7为从 |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 1 -p1 1 -b 30</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b 30 -d 0x3c</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 0 -p1 1 -b 31</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b 31 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 1 -p1 1 -b 31</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b 31 -d 0x3c</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 0 -p1 1 -b 32</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b 32 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 1 -p1 1 -b 32</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b 32 -d 0x3c</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 0 -p1 1 -b 33</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b 33 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f sync_init -p 1 -p1 1 -b 33</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 1 -p2 1 -b 33 -d 0x3c</code> |
| + | |
| + | ===== 第三步: ===== |
| + | 指令执行之后,对摄像头的码流获取和I2C指令控制,与MIPI接口的摄像头完全一致。 |
| + | |
| + | ===== 同步信号连接说明: ===== |
| + | 同步信号连接如上图所示,需将J6与J8的2、4、6、8pin连接在一起。 |
| + | |
| + | 同步信号原理图请参考: |
| + | |
| + | * [[FPD-LINK3-2RX Data Sheet index|FPD-LINK3-2RX数据手册]] |
| + | |
| + | * [[ADP-N2 Data Sheet index|ADP-N2数据手册]] |
| + | |
| + | * [[ADP-N3 Data Sheet index|ADP-N3数据手册]] |
| + | |
| + | === CS-FPD-CAM-SC132外触发模式,连接到Jetson Nano B01/NX === |
| + | [[File:CS-FPD-CAM-SC132 trigger mode new.png|alt=|center|thumb|780x780px|CS-FPD-CAM-SC132 trigger mode's trigger signal]]Trigger信号采用J7-1连接到J1-1,J7-2连接到J1-2. |
| + | |
| + | =====第一步:===== |
| + | 上电之后, |
| + | |
| + | <code>ls /dev/video*</code> |
| + | |
| + | 出现video0,则表明已正确检测到摄像头。 |
| + | ===== 第二步:===== |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 0 -b [i2c_bus_num] -d 0x3b</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b [i2c_bus_num] -d 0x3b</code> |
| + | |
| + | 配置port 0为硬触发模式。 |
| + | =====第三步:===== |
| + | 执行上面步骤后,I2C通路就可以访问了。对摄像头的码流获取和I2C指令控制,与MIPI接口的摄像头完全一致。 |
| + | |
| + | 参考[[Camera module Trigger Mode manual/zh|摄像机模组触发模式应用说明]]进行触发模式的配置。 |
| + | === CS-FPD-CAM-SC132外触发模式,连接到Jetson AGX Xavier === |
| + | [[File:CS-FPD-SC132-Xavier-TRIGGER.png|center|thumb|800x800px|CS-FPD-SC132-Xavier- trigger mode's trigger signal]] |
| + | <br />Trigger信号采用J7-1连接到J1-1,J7-2连接到J1-2. |
| + | |
| + | ===== 第一步: ===== |
| + | 上电之后, |
| + | |
| + | <code>ls /dev/video*</code> |
| + | |
| + | 出现video0-7,则表明已正确检测到摄像头。 |
| + | ===== 第二步:===== |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 0 -b 30 -d 0x3b</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 30 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 1 -b 30 -d 0x3c</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 30 -d 0x3c</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 0 -b 31 -d 0x3b</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 31 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 1 -b 31 -d 0x3c</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 31 -d 0x3c</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 0 -b 32 -d 0x3b</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 32 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 1 -b 32 -d 0x3c</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 32 -d 0x3c</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 0 -b 33 -d 0x3b</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 33 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 1 -b 33 -d 0x3c</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 33 -d 0x3c</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 0 -b 34 -d 0x3b</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 34 -d 0x3b</code> |
| + | |
| + | <code>./fpdlink3_i2c_jetson.sh -f trigger_init -p 1 -b 34 -d 0x3c</code> |
| + | |
| + | <code>./cs_mipi_i2c.sh -w -f streammode -p1 3 -b 34 -d 0x3c</code> |
| | | |
− | === FPD LINK III 脚本使用说明 === | + | 配置所有摄像头为硬触发模式。 |
| + | =====第三步:===== |
| + | 执行上面步骤后,I2C通路就可以访问了。对摄像头的码流获取和I2C指令控制,与MIPI接口的摄像头完全一致。 |
| | | |
− | === 典型使用方案 ===
| + | 参考[[Camera module Trigger Mode manual/zh|摄像机模组触发模式应用说明]]进行触发模式的配置。 |