跳到主要内容

TRD1 F4B

概述

TRD1 F4B 扩展了官方 NVIDIA Jetson AGX THOR 开发套件的 FPDLINK 连接能力,可在 THOR 平台上快速集成 FPDLINK 摄像头视频流。最多支持 8 路 FPDLINK 摄像头。

TRD1_F4B

主要特性与应用

特性:
• 支持 NVIDIA JETSON THOR 平台
• 支持 摄像头 分辨率:最高 3840*2160
• 支持 摄像头 输出格式 : RAW / YUV422
• 尺寸:L:243.12mm x W:112.4mm x H:56.88mm
• 兼容 摄像头 类型:FPDLINK Ⅲ、FPDLINK Ⅳ
• 最大支持摄像头数量:8 *FPDLINK
• SOC:NVIDlA Jetson T5000 模组
• AI 算力:2070 TFLOPS
• 内存:128 GB 256-bit LPDDR5X

应用:
• 机器人
• 工业
• 医疗
• 检测

快速入门

硬件概述

TRD1 F4B 硬件概述

框图

TRD1 F4B 框图
备注
  • TRD1 F4B 使用 2 个 UB9724 解串器,每个解串器最多支持 4 个摄像头端口。

支持的摄像头列表

摄像头兼容性

可以选择以下摄像头组合连接到 TRD1 F4B.

相机组合支持的相机数量Jetpack 7.0
组合 14*8MP/30FPS-
组合 28*3MP/30FPS-
组合 32 *8MP/30FPS+4 *3MP/30FPS-
Comb. 41 *8MP/30FPS+2 *2MP/30FPS+4 *3MP/30FPS-
JetPack 版本

NVIDIA JetPack(Jetpack 7.0)是面向 Jetson 系列开发板的官方软件开发套件(SDK)。它包含操作系统、驱动、CUDA、cuDNN、TensorRT 以及其他开发工具和库。每个 JetPack 版本通常对应特定的 Jetson Linux 版本(此前称为 L4T - Linux for Tegra)。

  • 36.4.3: L4T R36.4.3 (Jetpack 6.2)
  • 36.4: L4T R36.4 (Jetpack 6.1)
  • 36.3: L4T R36.3 (Jetpack 6.0)
  • 35.4.1: L4T R35.4.1 (Jetpack 5.1.2)

更多信息请访问 NVIDIA 官方 Jetson 下载中心.

硬件准备

物料清单

序号产品型号数量备注
1945-14070-0080-000-MIPI1最多支持 8 路摄像头
2T4JC-JC-ZZZZ-0500L (母头转母头 0.5m)2标准配置
3触发 Cable1标准配置
4电源 Conversion Cable1标准配置
5电源适配器1标准配置
6多功能转换座1可选配置

套件内容

TRD1 F4B 套件内容

安装步骤

快速设置
  1. 使用同轴线将 FPDLINK 摄像头连接到 TRD1 F4B(最多支持 8 路摄像头)
  2. 连接电源(DC 9-16V)
  3. 启动系统(Jetson Thor)
TRD1 F4B 摄像头连接

软件准备

SDK 下载

驱动包

请根据摄像头类型和 JetPack 版本选择合适的驱动包:

摄像头 类型JetPack 版本下载链接
FPDLINK 摄像头 (YUV)JP7.0下载
下载方法

将完整链接地址复制到 DownGit 进行下载

快速拉起

系统更新

可以使用 NVIDIA SDK Manager Linux 软件,或通过 Linux 命令行使用 NVIDIA Linux Driver Package 将 JetPack OS 刷写到 NVIDIA Jetson 设备。对于初学者,建议优先使用 NVIDIA SDK Manager。

JetPack 版本
  • Jetpack 7.0 L4TR38.2.1
支持 摄像头 模组
  • SG2-AR0233C-5200-F3A-Hxxx

  • 最多支持同时拉起 8 路摄像头

  • SG8S-AR0820C-5300-F4A-Hxxx

  • 最多支持同时拉起 4 路摄像头

  • SG3S-ISX031C-F3A-Hxxx

  • 最多支持同时拉起 8 路摄像头

快速拉起
  1. 连接 摄像头 to ports on 转接板.
CN1 (CAM4/CAM5/CAM6/CAM7)
CN2 (CAM0/CAM1/CAM2/CAM3)

CAM 端口与设备节点的对应关系如下:

PORT                    DeviceTree Node            DEV NODE
CN1(COAX0) cam_4 /dev/video4
CN1(COAX1) cam_5 /dev/video5
CN1(COAX2) cam_6 /dev/video6
CN1(COAX3) cam_7 /dev/video7
CN2(COAX4) cam_0 /dev/video0
CN2(COAX5) cam_1 /dev/video1
CN2(COAX6) cam_2 /dev/video2
CN2(COAX7) cam_3 /dev/video3

供电

SG8-AGX-Thor-9724 转接板需要使用 12V 供电。

  1. 进入驱动目录,

    cd TRD1_F4B_AGX_THOR_FPDx8_YUV_JP7.0_L4TR38.2.1
    chmod a+x ./install.sh
    ./install.sh
  2. 使用 "sudo /opt/nvidia/jetson-io/jetson-io.py" 命令选择对应设备

    sudo /opt/nvidia/jetson-io/jetson-io.py

    1.select "Configure Jetson AGX CSI Connector"
    2.select "Configure for compatible hardware"
    3.select "Jetson Sensing SG8_AGX_F4_A1 YUV FPD4x8"
    4.select "Save pin changes"
    5.select "Save and reboot to reconfigure pins"
  3. 设备重启后,修改 load_module.sh 脚本。

4.1 修改 load_modules.sh 脚本

4.1.1 修改视频设备配置命令行。

以下命令用于配置系统中识别为 video0 到 video7 的摄像头。 需要根据摄像头型号和实际连接方式调整命令参数 sensor_modetrig_modetrig_pin

v4l2-ctl -d /dev/video0 -c sensor_mode=0,trig_mode=0,trig_pin=0x00000000
v4l2-ctl -d /dev/video1 -c sensor_mode=0,trig_mode=0,trig_pin=0x00000000
v4l2-ctl -d /dev/video2 -c sensor_mode=0,trig_mode=0,trig_pin=0x00000000
v4l2-ctl -d /dev/video3 -c sensor_mode=0,trig_mode=0,trig_pin=0x00000000
v4l2-ctl -d /dev/video4 -c sensor_mode=0,trig_mode=0,trig_pin=0x00020000
v4l2-ctl -d /dev/video5 -c sensor_mode=0,trig_mode=0,trig_pin=0x00000000
v4l2-ctl -d /dev/video6 -c sensor_mode=0,trig_mode=0,trig_pin=0x00000000
v4l2-ctl -d /dev/video7 -c sensor_mode=0,trig_mode=0,trig_pin=0x00000000

sensor_mode 参数的取值与摄像头型号相关,具体如下:

SG2-AR0233C-5200-F3A-Hxxx(1920X1080): sensor_mode=0;
SG3S-ISX031C-F4A-Hxxx(1920X1536): sensor_mode=1;
SG3S-ISX031C-F3A-Hxxx(1920X1536): sensor_mode=1;
SG8S-AR0820C-5300-F4A-Hxxx(3840X2160): sensor_mode=3.

trig_modetrig_pin 参数表示要使用的触发模式及对应触发引脚。

Auto-trigger Mode(摄像头启动后自动触发,但不同摄像头之间不同步):trig_mode=0;trig_pin=0x00000000

Jetson Orin Trigger Mode(摄像头通过 Jetson Orin 生成的触发信号进行触发和同步):trig_mode=1;trig_pin=0x00000000

External-Trigger Mode(摄像头通过连接到套件触发引脚的外部信号发生器生成的触发信号进行同步触发):trig_mode=1;trig_pin=0x00020000

4.1.2 修改驱动模块参数:

如果需要混合使用 FPD3(带 F3 标识:XXX-F3A-XXX)摄像头和 FPD4(带 F4 标识:XXX-F4A-XXX)摄像头,可按以下方法配置。

a. 确认每个摄像头通道对应的摄像头类型。

b. 修改以下驱动加载命令中的 enable_fpd4_0enable_fpd4_1 参数,其中 FPD4 用 1 表示,FPD3 用 0 表示。

sudo insmod ko/sgx-yuv-fpd4.ko enable_fpd4_0=X,X,X,X enable_fpd4_1=X,X,X,X

以下示例中:

sudo insmod ko/sgx-yuv-fpd4.ko enable_fpd4_0=1,1,0,0 enable_fpd4_1=0,0,1,1

enable_fpd4_0 表示第一组输入通道。取值 1,1,0,0 表示 cam_0 和 cam_1 以 FPD4 模式工作,cam_2 和 cam_3 以 FPD3 模式工作。

enable_fpd4_1 表示第二组输入通道。取值 0,0,1,1 表示 cam_4 和 cam_5 以 FPD3 模式工作,cam_6 和 cam_7 以 FPD4 模式工作。

  1. 拉起摄像头

5.1 运行 load_module.sh 脚本。

sudo ./load_modules.sh

模块加载后会生成 /dev/video0/dev/video7 设备节点。

5.2 在终端运行 gst-launch-1.0

## COAX4
gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink -ev

## COAX5
gst-launch-1.0 v4l2src device=/dev/video1 ! xvimagesink -ev

## COAX6
gst-launch-1.0 v4l2src device=/dev/video2 ! xvimagesink -ev

## COAX7
gst-launch-1.0 v4l2src device=/dev/video3 ! xvimagesink -ev

## COAX0
gst-launch-1.0 v4l2src device=/dev/video4 ! xvimagesink -ev

## COAX1
gst-launch-1.0 v4l2src device=/dev/video5 ! xvimagesink -ev

## COAX2
gst-launch-1.0 v4l2src device=/dev/video6 ! xvimagesink -ev

## COAX3
gst-launch-1.0 v4l2src device=/dev/video7 ! xvimagesink -ev

如果上述步骤均已正确完成,下次重启设备后只需运行 sudo ./load_modules.sh 命令加载驱动,然后在终端运行 gst-launch-1.0

  1. 提供触发同步信号

修改 load_modules.sh 脚本并重新运行。

v4l2-ctl -d /dev/video0 -c sensor_mode=0,trig_pin=0x00000000,trig_mode=1
v4l2-ctl -d /dev/video1 -c sensor_mode=1,trig_pin=0x00000000,trig_mode=1
v4l2-ctl -d /dev/video2 -c sensor_mode=1,trig_pin=0x00000000,trig_mode=1
v4l2-ctl -d /dev/video3 -c sensor_mode=1,trig_pin=0x00000000,trig_mode=1
v4l2-ctl -d /dev/video4 -c sensor_mode=1,trig_pin=0x00000000,trig_mode=1
v4l2-ctl -d /dev/video5 -c sensor_mode=1,trig_pin=0x00000000,trig_mode=1
v4l2-ctl -d /dev/video6 -c sensor_mode=3,trig_pin=0x00000000,trig_mode=1
v4l2-ctl -d /dev/video7 -c sensor_mode=3,trig_pin=0x00000000,trig_mode=1

6.1 外部触发模式

当使用外部触发信号发生器提供外部触发信号时,触发源应连接到 CN4 6-PIN 连接器: PIN2(CAM-FSYNC2)对应 CN1 摄像头的外部触发信号, PIN4(CAM-FSYNC4)对应 CN2 摄像头的外部触发信号, PIN6 is 地 pin. 将触发信号源正极连接到 PIN2 和 PIN4,以同步所有摄像头。 将触发信号源负极连接到 PIN6。

6.2 Jetson Orin 触发模式

当使用 Jetson Orin 触发模式时,需要按以下步骤配置 Jetson Orin 生成的触发信号。

a.load the driver
sudo insmod ko/pwm-gpios.ko

b.Export PWM channel 0 (pwmchip4 is a newly generated node after loading the driver)
echo 0 > /sys/class/pwm/pwmchip4/export

c.Set the period to 33333333 (corresponding to 30 Hz)
echo 33333333 > /sys/class/pwm/pwmchip4/pwm0/period

d.Set the duty cycle
echo 30000000 > /sys/class/pwm/pwmchip4/pwm0/duty_cycle

e.Enable PWM output
echo 1 > /sys/class/pwm/pwmchip4/pwm0/enable

集成 SENSING 驱动源码

  1. 编译 Image 和 dtb 参考以下命令将 Dtb 和 Kernel 源码集成到你的内核源码中

    cp camera-driver-package/source/hardware Linux_for_Tegra/source/hardware -r
    cp camera-driver-package/source/kernel Linux_for_Tegra/source/kernel -r
    cp camera-driver-package/source/nvidia-oot Linux_for_Tegra/source/nvidia-oot -r
  2. 进入源码根目录并重新编译

    cd <install-path>/Linux_for_Tegra/source
    export CROSS_COMPILE_AARCH64=toolchain-path/bin/aarch64-buildroot-linux-gnu-
    export KERNEL_HEADERS=$PWD/kernel/kernel-noble
    export INSTALL_MOD_PATH=<install-path>/Linux_for_Tegra/rootfs/
    make -C kernel
    make modules
    make dtbs
    sudo -E make install -C kernel

    cp kernel/kernel-noble/arch/arm64/boot/Image <install-path>/Linux_for_Tegra/kernel/Image
    cp nvidia-oot/device-tree/platform/generic-dts/dtbs/* <install-path>/Linux_for_Tegra/kernel/dtb/
  3. 将新生成的 Image 和 dtb 安装到 NVIDIA 设备并重启使其生效

    dtb:nvidia-oot/device-tree/platform/generic-dts/dtbs/
    Image: kernel/kernel-noble/arch/arm64/boot/

    tegra-camera.ko:nvidia-oot/drivers/media/platform/tegra/camera/
    nvhost-nvcsi.ko:nvidia-oot/drivers/video/tegra/host/nvcsi/
  4. 将上述编译生成的 image、dtb、ko 复制到 Jetson 对应位置

    sudo cp *.dtbo /boot/
    sudo cp Image /boot/Image
    sudo cp tegra-camera.ko /lib/modules/6.8.12-tegra/updates/drivers/media/platform/tegra/camera/
    sudo cp nvhost-nvcsi.ko /lib/modules/6.8.12-tegra/updates/drivers/video/tegra/host/nvcsi/
  5. 选择已安装的设备树

    sudo /opt/nvidia/jetson-io/jetson-io.py

    1.select "Configure Jetson AGX CSI Connector"
    2.select "Configure for compatible hardware"
    3.select "Jetson Sensing SG8_AGX_F4_A1 YUV FPD4x8"
    4.select "Save pin changes"
    5.select "Save and reboot to reconfigure pins"
  6. 安装摄像头驱动

    sudo insmod ./ko/ti9724.ko
    sudo insmod ./ko/sgx-yuv-fpd4.ko
  7. 拉起摄像头

    ## COAX4
    v4l2-ctl -d /dev/video0 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink -ev

    ## COAX5
    v4l2-ctl -d /dev/video1 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video1 ! xvimagesink -ev

    ## COAX6
    v4l2-ctl -d /dev/video2 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video2 ! xvimagesink -ev

    ## COAX7
    v4l2-ctl -d /dev/video3 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video3 ! xvimagesink -ev

    ## COAX0
    v4l2-ctl -d /dev/video4 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video4 ! xvimagesink -ev

    ## COAX1
    v4l2-ctl -d /dev/video0 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video5 ! xvimagesink -ev

    ## COAX2
    v4l2-ctl -d /dev/video0 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video6 ! xvimagesink -ev

    ## COAX3
    v4l2-ctl -d /dev/video0 -c sensor_mode=?,trig_pin=?
    gst-launch-1.0 v4l2src device=/dev/video7 ! xvimagesink -ev