Skip to main content

接口使用

note

本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues

本篇 Wiki 介绍了 J501 载板上的各种硬件和接口,以及如何使用它们来扩展您的项目创意。

GMSL 摄像头

我们需要将 J501 载板与 GMSL 扩展板结合使用,以激活 GMSL 功能。J501 GMSL 扩展板设计用于与 NVIDIA® Jetson AGX Orin™ 兼容的 reServer 工业 J501 载板连接多达 8 个 GMSL 摄像头。此扩展板使用反序列化器 'MAX96724'。

兼容摄像头

硬件连接

  • 步骤1. 在 J501 载板上安装铜柱。
  • 步骤2. 将 GMSL 扩展板连接到 J501 载板,并用螺丝固定。
  • 步骤3. 连接 GMSL 摄像头。

使用说明

note

在启用 GMSL 功能之前,请确保您已安装带有 GMSL 扩展板驱动程序的 JetPack 版本。

步骤1. 在 Jetson 设备终端中输入以下命令,检查连接的摄像头是否被正确识别。

ls /dev/video*

步骤2. 安装视频接口配置工具。

sudo apt install v4l-utils

步骤3. 为串行器和反串行器设置通道格式。

media-ctl -d /dev/media0 --set-v4l2 '"ser_0_ch_0":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_1_ch_1":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_2_ch_2":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_3_ch_3":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_4_ch_0":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_5_ch_1":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_6_ch_2":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_7_ch_3":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_0":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_1":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_2":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_3":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_0":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_1":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_2":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_3":0[fmt:YUYV8_1X16/1920x1536]'
note

每次设备重启后,我们都需要为串行器和反串行器设置通道格式。

步骤4. 我们可以使用以下命令快速启动摄像头并打开窗口显示视频流。

gst-launch-1.0 v4l2src device=/dev/video0  ! xvimagesink -ev 
gst-launch-1.0 v4l2src device=/dev/video1 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video2 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video3 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video4 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video5 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video6 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video7 ! xvimagesink -ev

千兆以太网接口

J501 上有 2 个以太网端口:

  • eth0:标准千兆以太网端口,支持 10/100/1000Mbps。
  • eth1:10 千兆以太网端口。

每个以太网端口上有 2 个 LED(绿色和黄色):

  • 绿色 LED:仅在连接到 1000M/10G 网络时亮起。
  • 黄色 LED:显示网络活动状态。

SATA 接口

reServer J501 载板支持 2 个 SATA 2.5" HDD/SSD,并配备 SATA 数据和电源连接器。您可以按以下步骤连接 HDD/SSD:

使用说明

在 Jetson 设备系统启动后,您可以通过 lsblk 验证连接的 SATA 驱动器。

M.2 Key M

M.2 Key M 是为高速固态硬盘(SSD)设计的接口,提供超快的数据传输速度,非常适合高性能应用。

支持的 SSD 如下:

使用说明

在 Jetson 设备中打开终端,输入以下命令测试 SSD 的读写速度。

sudo dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync
danger

请在测试完成后运行 sudo rm tempfile 命令以删除缓存文件。

M.2 Key E

J501载板配备了一个M.2 Key E接口,通过该接口可以扩展设备的蓝牙和Wi-Fi功能。

我们推荐使用 Intel Dual Band Wireless-Ac 8265 w/Bluetooth 8265.NGWMG 模块。

硬件连接

使用说明

安装Wi-Fi模块并启动设备后,我们可以配置设备的Wi-Fi和蓝牙设置。

当然,我们也可以通过以下命令检查设备的运行状态。

ifconfig
bluetoothctl

M.2 Key B

J501载板配备了一个M.2 Key B连接器,支持4G和5G模块。目前我们已经测试了 SIM8202G-M2 5G模块

硬件连接

Mini PCIe

J501载板配备了一个Mini PCIe连接器,支持4G和LoRa模块。然而,您只能同时连接一个4G模块或一个LoRa模块。一些4G模块还嵌入了GPS功能,我们也会讨论这一点。

4G模块

硬件连接

  • 步骤1. 在20Pin Header上的 SIM_MUX_SELGND 引脚之间添加一个跳线。

  • 步骤2. 将4G模块插入Mini PCIe插槽并用螺丝固定。

  • 步骤3. 将支持4G的Nano SIM卡插入板上的SIM卡槽。

note

如果您想移除SIM卡,请按压卡片以触发内部弹簧,使SIM卡从卡槽弹出。

使用说明

步骤1. 安装minicom:

sudo apt update
sudo apt install minicom -y

步骤2. 进入连接的4G模块的串行控制台,以便输入AT命令并与4G模块交互:

sudo minicom -D /dev/ttyUSB2 -b 115200

步骤3. 按Ctrl+A,然后按E以打开本地回显。

步骤4. 输入命令 "AT" 并按回车。如果看到响应 "OK",则说明4G模块工作正常。

步骤5. 输入命令 "ATI" 以检查模块信息。

DI/DO/CAN

J501载板支持4个数字输入通道和4个数字输出通道,所有通道均光电隔离,可有效保护主板免受电压尖峰或其他电气干扰。此外,该连接器还提供两个CAN接口,我们将在本Wiki的后续部分讨论。

类型标签名称原理图信号模块引脚编号BGA编号GPIO编号电压/电流限制
输入DI1DI_12V_1/DI_1_GPIO17A54PP.0444412V/ 总电流20mA
DI2DI_12V_2/DI_2_GPIO18C55PQ.04452
DI3DI_12V_3/DI_3_GPIO19K56PN.02434
DI4DI_12V_4/DI_4_GPIO33C54PM.07431
输出DO1DO_40V_1/DI_1_GPIOE59PAA.0432040V/ 每引脚负载40mA
DO2DO_40V_2/DI_2_GPIOF59PAA.07323
DO3DO_40V_3/DI_3_GPIOB62PBB.01325
DO4DO_40V_4/DI_4_GPIOC61PBB.00324
note
  • 12V数字输入,地信号需要连接到 GND_DI

  • 数字输出,最大耐压40V,地信号需要连接到 GND_DO

  • CAN总线采用标准差分信号,地信号需要连接到 GND_ISO

DI连接概述

我们可以按照下图进行DI连接。建议在DI线上串联一个电阻。在测试中,我们使用了一个4.7kΩ电阻连接到DI1引脚。

DI使用说明

我们需要在DI线上输入12V电压才能被检测为输入。

步骤1. 按照上图连接到DI1引脚并输入12V。

步骤2. 按如下方式打开DI1的GPIO:

sudo su 
cd /sys/class/gpio
echo 444 > export
cd PP.04
note

我们可以参考DI/DO引脚分配表找到GPIO编号和BGA编号。在上述示例中,对于DI1引脚,GPIO编号为444,BGA编号为PP.04。

步骤3. 执行以下命令检查状态:

cat value

如果输出为 0,表示有 12V 输入。如果输出为 1,表示没有输入电压。

DO 的连接概览

我们可以按照下图为 DO 进行连接。建议在 DO 线上串联一个电阻。在这里,我们测试使用了一个 4.7kΩ 的电阻。

DO 的使用说明

在这里,我们需要按照上图所示连接一个负载。测试的最简单方法是连接一个万用表(如果你有的话),否则可以连接一个最大电压小于 40V 的负载。

步骤1. 按照上图所示将连接完成到 DO1 引脚,并输入最大 40V。

步骤2. 按如下方式打开 D01 的 GPIO:

sudo su 
cd /sys/class/gpio
echo 320 > export
cd PAA.04
echo out > direction

步骤3. 执行以下命令打开引脚:

echo 1 > value

如果负载被打开,或者万用表输出了你输入的电压,则测试正常。

CAN

J501 载板具有两个支持 CAN FD(控制器局域网灵活数据速率)协议的 CAN 接口,速率为 5Mbps。CAN 接口通过电容隔离实现隔离,这提供了出色的 EMI 保护,并确保在工业和自动化应用中的可靠通信。默认安装了一个 120Ω 的终端电阻,你可以通过 GPIO 开关来打开或关闭该电阻。

note

CAN 接口使用隔离电源,这意味着连接到 CAN 接口的外部设备的地信号应连接到 GND_ISO 引脚。

使用 USB 转 CAN 适配器的连接概览

要测试和与 CAN 总线接口,请将 USB 转 CAN 适配器连接到板上的 CAN 接口,如下图所示:

这里我们使用了 USB 转 CAN 分析仪适配器 和 Bazaar 上提供的 USB 电缆。

使用 USB 转 CAN 适配器的使用说明

步骤1. 从制造商网站下载并安装你所使用的 USB 转 CAN 适配器的驱动程序。在我们的案例中,根据我们使用的适配器,驱动程序可以在 这里 找到。

步骤2. 一些适配器还附带了用于 PC 与 CAN 设备通信的必要软件。在我们的案例中,根据我们使用的适配器,我们下载并安装了可以在 这里 找到的软件。

步骤3. 初始化 Jetson 的 CAN 接口。

在 Jetson 中创建一个名为 can_init.sh 的新文件,并写入以下内容:

#!/bin/bash

sudo gpioset gpiochip2 9=0
sudo gpioset gpiochip2 8=0

sudo busybox devmem 0x0c303018 w 0xc458
sudo busybox devmem 0x0c303010 w 0xc400
sudo busybox devmem 0x0c303008 w 0xc458
sudo busybox devmem 0x0c303000 w 0xc400

sudo modprobe can
sudo modprobe can_raw
sudo modprobe mttcan

sudo ip link set can0 down
sudo ip link set can1 down

sudo ip link set can0 type can bitrate 125000
sudo ip link set can1 type can bitrate 125000
sudo ip link set can0 up
sudo ip link set can1 up

然后,在 Jetson 的终端窗口中运行我们刚刚创建的文件:

sudo apt-get install gpiod
cd <path to can_init.sh>
sudo chmod +x can_init.sh
./can_init.sh

步骤4. 在终端中输入 ifconfig,你将看到 CAN 接口已启用。

步骤5. 打开之前安装的 CAN 软件。在本例中,我们将打开根据我们使用的 CAN 适配器安装的软件。

步骤6. 将 USB 转 CAN 适配器连接到 PC,并通过 Windows 搜索栏搜索 设备管理器 打开它。现在你将在 端口 (COM & LPT) 下看到已连接的适配器。记下此处列出的串口。根据下图,串口为 COM9

步骤7. 打开 CAN 软件,点击 COM 部分旁边的 刷新,点击下拉菜单并选择与适配器对应的串口。保持 COM bps 为默认值,然后点击 打开

步骤8. 保持 模式CAN bps 为默认值,将 类型 更改为 标准帧,然后点击 设置并启动

步骤9. 在 reComputer Industrial 上,执行以下命令向 PC 发送 CAN 信号:

cansend can0 123#abcdabcd

现在你将在软件中看到接收到的信号,如下所示:

步骤10. 在 reComputer Industrial 上,执行以下命令等待接收来自 PC 的 CAN 信号:

candump can0 &

步骤11. 在 CAN 软件中,点击 发送单帧

现在你将在 reComputer Industrial 上看到接收到的信号,如下所示:

info

我们还可以参考 这里 来通过 CAN 建立 J501 载板与 reTerminal DM 之间的通信。

USB

reServer J501 载板共有 5 个 USB 接口:3 个 USB 3.1 Type-A 接口,1 个 USB 3.1 Type-C 接口,以及 1 个用于调试的 USB 2.0 Type-C 接口。

使用说明

我们可以在 Jetson 终端中输入 watch -n 1 lsusb -tv 来探测 USB 接口。一旦连接了 USB 设备,该接口的详细信息将显示在这里。

此外,您可以参考 M.2 Key M 来测试 USB 存储设备的读写速度。

note

请注意,在测试之前,请使用 cd 命令导航到 USB 存储设备挂载的文件夹。

RTC

J501 载板具有 RTC 接口,即使系统断电也能提供精确的时间记录。

连接方式

J501 载板提供两种不同方式连接 RTC 电池。

将 3V CR1220 纽扣电池连接到板上的 RTC 插槽,如下图所示。确保电池的 正极 (+) 朝上。

使用说明

步骤1. 按上述方式连接 RTC 电池。

步骤2. 打开 J501。

步骤3. 在 Ubuntu 桌面上,点击右上角的下拉菜单,导航到 Settings > Date & Time,通过以太网连接网络并选择 Automatic Date & Time 以自动获取日期/时间。

note

如果您未通过以太网连接到互联网,可以在此手动设置日期/时间。

步骤4. 打开终端窗口,执行以下命令检查硬件时钟时间:

sudo hwclock

您将看到类似以下的输出,但这不是正确的日期/时间:

步骤5. 输入以下命令,将硬件时钟时间更改为当前系统时钟时间:

sudo hwclock --systohc

步骤6. 移除任何连接的以太网线,以确保不会从互联网获取时间,然后重启板子:

sudo reboot

步骤7. 检查硬件时钟时间,验证即使设备断电,日期/时间也保持不变。

现在我们将创建一个脚本,在每次启动时始终从硬件时钟同步系统时钟。

步骤8. 使用您喜欢的文本编辑器创建一个新的 shell 脚本。这里我们使用 vi 文本编辑器:

sudo vi /usr/bin/hwtosys.sh 

步骤9.i 进入 插入模式,然后复制并粘贴以下内容到文件中:

#!/bin/bash

sudo hwclock --hctosys

步骤10. 使脚本可执行:

sudo chmod +x /usr/bin/hwtosys.sh 

步骤11. 创建一个 systemd 文件:

sudo vim /lib/systemd/system/hwtosys.service 

步骤12. 在文件中添加以下内容:

[Unit]
Description=Change system clock from hardware clock

[Service]
ExecStart=/usr/bin/hwtosys.sh

[Install]
WantedBy=multi-user.target

步骤13. 重新加载 systemctl 守护进程:

sudo systemctl daemon-reload 

步骤14. 启用新创建的服务以在启动时运行,并启动该服务:

sudo systemctl enable hwtosys.service
sudo systemctl start hwtosys.service

步骤15. 验证脚本是否作为 systemd 服务正常运行:

sudo systemctl status hwtosys.service

步骤16. 重启板子,您将看到系统时钟现在与硬件时钟同步。

风扇

J501 板载风扇接口由 nvfancontrol 守护进程管理,该进程根据 Jetson 模块的运行状态自适应调整风扇速度。我们可以通过其配置文件 /etc/nvfancontrol.conf 配置守护进程的工作模式。

note

更多信息请参考 这里

此外,我们可以使用 jtop 工具手动设置风扇速度。

HDMI

J501 配备了一个 HDMI 2.1 Type A 接口,支持 7680x4320 的分辨率。这允许超高清的视频输出。

技术支持与产品讨论

感谢您选择我们的产品!我们为您提供多种支持,确保您使用我们的产品时体验顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...