Skip to main content

reComputer Rugged J401 硬件和接口使用

本 wiki 介绍 reComputer Rugged J40 的各类硬件和接口,并说明如何使用它们来扩展你的项目创意。reComputer Rugged J40 上的大多数接口采用 M12 连接器,具备 IP66 级防水防尘能力以及出色的抗震性能。这使其非常适合在恶劣的户外环境中长期部署,例如船载系统和港口监控系统。

Image

硬件总览​

侧视图 1

侧视图 2

底视图

载板规格​

项目规格
I/O以太网1× M12 GbE + 4× M12 GbE PSE(IEEE 802.3af,15 W,10/100/1000 Mbps)
USB4× USB 3.2 Type-A(防水连接器)+ 1× USB 3.0 Type-C(设备 / 刷机)+ 1× USB 2.0 Type-C(调试)
显示1× HDMI 2.1(防水盖)
CAN2× CAN-FD(隔离)通过 M12 A-code
串口1× RS-232/422/485 通过 M12 A-code
DI/DO2× DI + 2× DO 通过 M12 A-code
SIM1× Nano-SIM 卡槽
天线4× SMA 防水天线连接器
存储M.2 Key M1× M.2 Key M,用于 NVMe 2280 SSD(内置 128 GB SSD)
扩展M.2 Key E1× M.2 Key E,用于 M.2 2230 Wi-Fi 模块(内置 Wi-Fi 6 模块)
M.2 Key B1× M.2 Key B,用于 5G 模块
板载SPI / I2C1× SPI,1× I2C(内部排针)
RTCRTC 插座,2 针连接器
LED1× PWR LED(绿色),1× SSD LED(绿色)
按键1× Recovery 按键,1× RST 按键
电源输入M12 A-code DC 19–48 V

电源​

Image

reComputer Rugged J401 配备了 M12 A-code DC 19-48V 电源接口,兼容宽电压输入范围,适用于多种供电环境。接口定义如下表所示。

Image

Pin用途类型线缆颜色
1DC 电源输入电源棕色
2白色
3地地蓝色
4黑色

显示​

卸下固定防水侧盖的两颗螺丝并打开侧盖,即可访问 HDMI 2.1 接口,提供高质量的显示输出。

Image

用于 SSD 的 M.2 Key M 和用于 Wi-Fi 与蓝牙的 M.2 Key E​

reComputer Rugged J401 配备了 M.2 Key E 接口,可通过该接口扩展设备的蓝牙和 Wi-Fi 功能。我们推荐使用 Intel Dual Band RTL8822CE 无线网卡。

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

接口位置如下图所示。

Image

使用说明​

如果你想拆下内置 SSD 并安装新的 SSD,需要确保你的 SSD 满足以下两个条件:

  • 支持 M.2 Key M 插槽,x4 PCIe Gen3 接口。

  • 符合 2242 尺寸规格。

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

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

Image

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

安装好 Wi-Fi 模块并为设备上电后,我们就可以配置设备的 Wi-Fi 和蓝牙设置。

Image

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

ifconfig

Image

bluetoothctl

Image

用于 4G/5G 模块的 M.2 Key B​

M.2 Key B 插槽支持带 Nano SIM 卡座的 4G/5G 蜂窝模块。

硬件连接​

Image

使用说明​

步骤 1. 检查硬件识别情况

lsusb 

该命令会显示系统中连接的所有 USB 设备列表,以及它们的厂商(ID)、类型和其他信息。例如,输出中可能会显示来自 Quectel Wireless Solutions Co., Ltd. 的 EM12-G 设备,表明 5G 模块已存在。

Image

步骤 2. 确认驱动加载

必须确保 5G 模块所需的 option 驱动已加载。我们可以使用 lsmod 命令进行检查。

lsmod | grep option 

如果 option 驱动加载成功,输出中会显示与该驱动相关的信息。

Image

步骤 3. 配置 ModemManager

ModemManager 是用于管理调制解调器设备的工具,需要安装并重启。

sudo apt install modemmanager 
sudo systemctl restart ModemManager

apt install 命令用于安装 ModemManager 软件包,而 systemctl restart 用于重启 ModemManager 服务,以确保新设置生效。

步骤 4. 验证模块识别

我们可以使用 mmcli -L 命令检查 ModemManager 是否能够正确识别 5G 模块。

mmcli -L 

如果 5G 模块被识别,将会显示类似 /org/freedesktop/ModemManager1/Modem/0 的输出,表示检测到的调制解调器设备路径。

Image

步骤 5. 设置 APN

APN(接入点名称)对于移动设备连接网络至关重要。我们将使用 nmcli 命令创建承载配置文件。以中国移动为例,可以通过以下命令创建配置文件:

sudo nmcli con add type gsm ifname "*" apn "CMNET" ipv4.method  auto 

该命令会添加一个新的 GSM(全球移动通信系统)类型连接,将 APN 指定为“CMNET”,并使用自动 IPv4 配置。

步骤 6. 激活连接

创建承载配置文件后,我们需要激活该连接。

sudo nmcli con up "gsm" 

该命令会激活 GSM 连接,如果成功,将显示确认信息。

Image

步骤 7. 再次验证模块识别

再次运行 mmcli -L 命令,确保在配置 APN 之后模块仍然被识别。

mmcli -L 

步骤 8. 检查模块状态

最后,我们可以使用 mmcli -m 0 命令查看模块的详细信息,例如 IP 分配、运营商和网络连接状态。

mmcli -m 0 

该命令会提供有关 5G 模块的详细信息,包括其制造商、型号、支持和当前使用的网络技术、设备状态以及已连接的网络运营商。

Image

以太网​

reComputer Rugged J401 提供 1 个标准千兆以太网(10/100/1000M)RJ45 接口(J35)和 4 个千兆 PSE(供电设备)RJ45 接口(J36–J39)。标准千兆接口用于常规网络连接。PSE 接口支持 IEEE 802.3af/at 标准,可通过以太网为连接的设备(如 IP 摄像机和无线接入点)供电,每个端口的最大输出功率为 15.4W(802.3af)。这使其非常适合工业、AMR 和户外边缘计算应用,无需单独铺设电源线。所有千兆端口均来自 Jetson Orin 模块内部的 PCIe 控制器,并支持 10/100/1000M 自适应协商。

Image

Linux 网络设备名称与物理以太网端口的对应关系如下所示。当从与图片相同的方向查看以太网连接器时,从左到右的映射依次为 eth4、eth2、eth1、eth0 和 eth3。

Mapping between Linux Ethernet device names and physical ports on reComputer Rugged J401

物理端口位置Linux 设备名称
从左数第一个eth4
从左数第二个eth2
中间eth1
从右数第二个eth0
从右数第一个eth3

使用 ethtool 检查每个以太网端口协商得到的带宽和物理链路状态。如果该命令不可用,请先安装:

sudo apt update
sudo apt install -y ethtool

运行以下命令,以显示所有五个物理以太网接口的速率、双工模式、自协商状态和链路状态:

for interface in eth0 eth1 eth2 eth3 eth4; do
echo "=== ${interface} ==="
sudo ethtool "${interface}" | grep -E 'Speed:|Duplex:|Auto-negotiation:|Link detected:'
done
note

Speed 显示协商得到的链路带宽,例如 1000Mb/s;Duplex 通常应显示为 Full;而 Link detected: yes 则确认对应的物理端口已有活动连接。断开的端口可能会显示 Speed: Unknown! 和 Link detected: no。

使用说明​

硬件连接​

启用 PoE 输出​

四个 PSE 端口(J36–J39)由板载 PSE 控制器供电,该控制器默认处于禁用状态。在原始系统中没有任何东西会将其打开,因此插在 J36–J39 上的相机在 PSE 供电使能线被拉高 并保持为高电平 之前都不会上电。

信号GPIO方向含义
PSE_PWR_ENgpiochip2 line 15output拉高以打开 PSE 输出
PSE_PGgpiochip2 line 0input1 = PSE 电源正常
PSE_INTBgpiochip2 line 1input0 = 无故障

如果缺少 GPIO 工具,请先安装,然后启用输出并保持:

sudo apt-get install -y gpiod     # only if gpioset/gpioget are not already present

# Set PSE_PWR_EN high and keep it high.
# -m signal : maintain the level until the process receives SIGINT/SIGTERM
# setsid + & : detach it from the terminal so the hold survives the SSH session
sudo setsid gpioset -m signal 2 15=1 >/dev/null 2>&1 &

# Confirm the hold is alive
ps aux | grep "[g]pioset -m signal 2 15=1"

# Confirm the controller reports power good -> expected output: "1 0"
sudo gpioget gpiochip2 0 1

预期输出:

1 0

1 0 表示 PSE_PG=1(电源正常)且 PSE_INTB=0(无故障)。如果 PSE_PG 一直为 0,说明没有供电:请检查线缆以及相机自身的功耗需求(802.3af 每个端口允许 15.4 W)。如果 PSE_INTB 读数为 1,则说明控制器锁存了一个故障——请移除负载、断电重启后再检查。

重要提示:电平只会在 gpioset 进程存活期间被驱动。通过字符设备请求的 GPIO 线在最后一个持有它的进程退出时会恢复为默认状态——gpioset --help 明确说明了这一点——因此仅运行该命令并让其返回并不能让 PSE 保持开启。重启之后,或者如果该进程被杀死,相机就会失去电源,链路也会断开。

在重启后保持 PSE 处于开启状态(可选)​

将同样的保持操作封装到一个 systemd 单元中,这样它会在每次启动时应用,并在退出时自动重启:

sudo tee /etc/systemd/system/poe-pse-hold.service >/dev/null <<'EOF'
[Unit]
Description=Hold PoE PSE power enable (PSE_PWR_EN gpio2/15)

[Service]
Type=simple
ExecStart=/usr/bin/gpioset -m signal 2 15=1
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now poe-pse-hold
systemctl status poe-pse-hold --no-pager

Type=simple 加上 Restart=on-failure 使其成为一个保持而不是一次性命令:systemd 会保持该进程——从而保持 GPIO 电平——处于存活状态。

启动两路 PoE 相机​

在启用 PSE 输出后,可以在无需外部 PoE 供电器的情况下为两台相机供电并访问它们。手动将它们启动需要三个步骤。

步骤 1. 找到实际连接了相机的端口。五个千兆端口枚举为 eth0–eth4;请读取 carrier 标志,而不是假定哪个索引对应哪个连接器:

for i in eth0 eth1 eth2 eth3 eth4; do
echo "$i carrier=$(cat /sys/class/net/$i/carrier 2>/dev/null) speed=$(cat /sys/class/net/$i/speed 2>/dev/null)"
done

步骤 2. 让相机完成启动(在 PSE 上电后 30–60 秒),然后将 Jetson 的端口配置到与每台相机相同的子网中:

sleep 45

sudo ip link set eth1 up
sudo ip addr add 192.168.10.100/24 dev eth1 # camera A is 192.168.10.20
sudo ip link set eth2 up
sudo ip addr add 192.168.20.100/24 dev eth2 # camera B is 192.168.20.10

步骤 3. 验证链路和两台相机:

ping -c2 -W1 192.168.10.20
ping -c2 -W1 192.168.20.10
ip -br addr show eth1
ip -br addr show eth2

**预期输出:**两次 ping 都显示 0% packet loss,并且每个端口都显示为 UP,且带有你分配的地址:

eth1             UP             192.168.10.100/24
eth2 UP 192.168.20.100/24

注意:

  • 每台相机会保留其配置的地址。如果你不知道该地址,请先将端口配置到相机应在的子网中,然后通过 ping 扫描来查找它。
  • 当 PSE_PG=1 时某个端口仍保持 carrier=0,意味着相机没有取电,或者防水连接器没有完全插紧。
  • 上述地址是来自一个两相机设置的示例;请使用你自己相机所在的子网。ip addr add 在重启后不会持久生效——如果需要在重启后仍然有效,请使用 NetworkManager 或 systemd-networkd 来配置端口。
# find an unknown camera on a port (example subnet)
for ip in $(seq 2 254); do ping -c1 -W1 192.168.10.$ip >/dev/null 2>&1 && echo "192.168.10.$ip is up"; done

双相机实时预览​

可以同时显示两路 RTSP 流,每路在各自的 GStreamer 窗口中。对第一个窗口使用 GPU/EGL 路径,对第二个窗口使用 X11/Xv 路径:在该平台上同时运行两个基于 EGL 的 sink 可能会导致 EGL 显示崩溃。

# Window A - GPU/EGL path
nohup env DISPLAY=:0 XAUTHORITY=/home/seeed/.Xauthority gst-launch-1.0 \
rtspsrc location="rtsp://<user>:<password>@192.168.10.20:554/" protocols=tcp latency=200 ! \
rtph265depay ! h265parse ! nvv4l2decoder ! \
nvvidconv ! "video/x-raw(memory:NVMM),width=1152,height=648" ! \
nvegltransform ! nveglglessink sync=false > /tmp/camA_disp.log 2>&1 &

# Window B - X11/Xv path
nohup env DISPLAY=:0 XAUTHORITY=/home/seeed/.Xauthority gst-launch-1.0 \
rtspsrc location="rtsp://<user>:<password>@192.168.20.10:554/" protocols=tcp latency=200 ! \
rtph265depay ! h265parse ! nvv4l2decoder ! \
nvvidconv ! "video/x-raw,width=1280,height=720" ! \
xvimagesink sync=false > /tmp/camB_disp.log 2>&1 &
  • 将 <user>:<password> 替换为你自己相机的凭据,并将 IP 地址替换为你在上面验证过的地址。
  • 当通过 SSH 启动这些命令时,需要 DISPLAY=:0 和 XAUTHORITY=/home/seeed/.Xauthority;如果你的桌面用户不是 seeed,请相应调整路径。从 JetPack 桌面会话中的终端运行这些命令则不需要这两项。
  • 使用 protocols=tcp 是因为在工业网络中,基于 UDP 的 RTSP 通常会被阻塞或存在丢包,而 latency=200 则为该流提供 200 ms 的抖动缓冲。
  • 此处测试的相机以 H.265 推流。请检查你自己的相机,如果是 H.264,则将 depayloader/解析器这对元素替换为对应的 H.264 版本。
  • 首帧会在几秒后出现(RTSP 握手、解码器预热以及相机的关键帧间隔)。如果某个窗口一直是黑屏,请查看 /tmp/camA_disp.log 或 /tmp/camB_disp.log。
  • 使用 pkill -f "gst-launch-1.0.*rtspsrc" 停止预览,或者如果两路流都在同一个 shell 中启动,则可以使用 kill %1 %2。

读取某路流的编码格式:

timeout 20 gst-launch-1.0 -v rtspsrc location="rtsp://<user>:<password>@192.168.10.20:554/" \
protocols=tcp latency=200 ! fakesink 2>&1 | grep -o "encoding-name=(string)H26[45]" | head -1

对于 H.264 相机,请使用 rtph264depay ! h264parse 来替代 rtph265depay ! h265parse;其余管线保持不变。

USB​

reComputer Rugged J401 提供 4 个 USB 3.2 Type-A 端口(通过内部 USB 3.1 Gen1 集线器,实现最高 5Gbps 数据速率,可连接高速外设、存储设备或相机)以及 1 个 USB 2.0 Type-C 调试端口(作为串行控制台,用于访问系统日志、调试启动问题和执行固件更新)。

USB-A 速度测试​

创建一个脚本来测试 USB 设备速度:

vim test_usb.sh

粘贴以下内容:

cat <<'EOF' | sudo tee test_usb.sh >/dev/null
#!/bin/bash
set -e

MOUNT_POINT="$1"
TEST_FILE="$MOUNT_POINT/test_usb_speed.bin"

if [ -z "$MOUNT_POINT" ]; then
echo "Usage: $0 <mount_point>"
echo "Example: $0 /media/seeed/USB"
exit 1
fi

if [ ! -d "$MOUNT_POINT" ]; then
echo "Error: $MOUNT_POINT is not a directory"
exit 1
fi

echo "Write test..."
dd if=/dev/zero of="$TEST_FILE" bs=1M count=2048 conv=fdatasync status=progress

echo
echo "Drop caches..."
sync
echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null

echo "Read test..."
dd if="$TEST_FILE" of=/dev/null bs=1M count=2048 status=progress

echo
echo "Cleaning up..."
rm -f "$TEST_FILE"
EOF

按 Esc 退出插入模式,然后输入 :w 并按 Enter 保存脚本,再退出进程。

使脚本可执行并进行测试:

sudo chmod +x test_usb.sh
./test_usb.sh /mnt # If your USB drive is mounted at /mnt
# Or
./test_usb.sh /media/usb # If your USB drive is mounted at /media/usb
# Or
./test_usb.sh /path/to/your/usb/mount_point

Image

USB 2.0 Type-C 接口​

通过该串口,使用 USB-C 数据线,可以在 PC 端监控输入和输出的调试信息。

Image

在 Windows 上安装 Silicon Labs CP210x Universal Windows VCP Driver。

在设备管理器中找到并确认分配给串行设备的 COM 端口

(截图中为 COM8)。

Image

在 PowerShell 中运行以下命令:

#Choose your own serial port 
python -m serial.tools.miniterm COM8 115200

使用用户名和密码登录。

Image

RTC​

reComputer Rugged J401 集成了带电池备份的硬件 RTC,用于精确计时。它支持 CR1220 和 CR1225 纽扣电池。

硬件连接​

Image

使用说明​

步骤 1. 按上述说明连接 RTC 电池。

步骤 2. 打开 reComputer Rugged J401。

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

Image

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

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

cat /sys/devices/platform/bpmp/bpmp:i2c/i2c-4/4-003c/nvvrs-pseq-rtc/rtc/rtc0/time

步骤 5. 断开网络连接并重启设备。你会发现系统时间虽然断电,但仍能正常工作。

Image

CAN​

NVIDIA Jetson Orin Nano/NX 模块仅提供一个原生 CAN 控制器(Controller Area Network (CAN) — NVIDIA Jetson Linux Developer Guide)。若要获得第二个 CAN 接口,需要使用外部 CAN 控制器,例如 MCP2518FDT-E。要启用第二个 CAN 端口,请使用 sudo modprobe mttcan 加载驱动。

Image

使用说明​

USB-CAN 测试​

使用 USB-CAN 适配器按如下方式验证 CAN 通信。

note

USB-CAN 适配器通常内置终端电阻。

  • 当 CAN0_120R_EN_3V3=1 时,CAN0 板载 120 Ω 终端电阻断开。
  • 当 CAN0_120R_EN_3V3=0 时,CAN0 板载 120 Ω 终端电阻接通。

CAN1 终端控制引脚采用相同逻辑。

加载驱动并配置接口​
# Load the driver to bring up the second CAN port
sudo modprobe mttcan
sudo ip link set can0 type can bitrate 125000
sudo ip link set can0 up

# Disconnect the onboard 120 Ω termination resistors
# because the USB-CAN adapter already provides termination
sudo gpioset -m wait gpiochip2 2=1 3=1
监控和发送数据​
# Monitor data
candump can0 &
candump can1 &

# Send data
cansend can0 123#abcdabcd

CAN0 接收与发送:

Image

CAN1 发送:

Image

CAN 回环测试​

你也可以将 CAN0 和 CAN1 连接在一起进行板级回环测试。将两个 CAN 总线物理短接(CAN0_H 接 CAN1_H,CAN0_L 接 CAN1_L),在两端启用板载 120 Ω 终端电阻,然后验证两个接口之间的双向通信。

打开三个终端并运行以下命令。

窗口 1:配置并测试 CAN0

sudo modprobe mttcan
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 250000
sudo ip link set can0 up

# Send frames from can0
cangen can0

# Receive frames on can0
candump can0

窗口 2:配置并测试 CAN1

sudo modprobe mttcan
sudo ip link set can1 down
sudo ip link set can1 type can bitrate 250000
sudo ip link set can1 up

# Send frames from can1
cangen can1

# Receive frames on can1
candump can1

窗口 3:启用终端电阻并检查链路计数器

# Enable the onboard 120 Ω termination resistors on both CAN ports
gpioset -m wait gpiochip2 2=0 3=0

# Check low-level TX/RX counters
ip -d -s link show can0
ip -d -s link show can1

如果接线和终端设置正确,在一个接口上产生的帧应能在另一个接口上接收,并且 TX/RX 计数器会相应增加。

Image

DI/DO​

reComputer Rugged J401 的 DI/DO 接口集成在 J47 2x10P 连接器上,与 CAN 接口共用该接口。它们支持 2 路数字输入和 2 路数字输出,具有稳定的信号传输和工业级电压适配能力,适合连接数字传感器、继电器等外设设备。

Image

硬件连接​

M12 接口上对应的 DI/DO 引脚如下图所示。

Image

数字输入(DI)/数字输出(DO)通道

使用说明​

数字输出(DO)操作​

DO 接口采用开漏输出。你可以通过命令设置输出电平(高/低),以控制继电器、LED 等外设。

运行以下命令以使能 DO 通道(输出 12V,由外部上拉电阻和 12V 电源供电):

# Enable DO_30V_1 (gpiochip0 106)
sudo gpioset --mode=wait 0 106=1

# Enable DO_30V_2 (gpiochip0 43)
sudo gpioset --mode=wait 0 43=1

运行以下命令以关闭 DO 通道(输出约 0V):

# Disable DO_30V_1 (gpiochip0 106)
sudo gpioset --mode=wait 0 106=0

# Disable DO_30V_2 (gpiochip0 43)
sudo gpioset --mode=wait 0 43=0

DO 拉高前:

Image

DO 拉高后:

Image

数字输入(DI)操作​

使用 gpioget 命令读取 DI 通道的输入电平(返回值 1 = 高电平,0 = 低电平),以获取外设设备的状态。

# Read DI_12V_1 (gpiochip0 105) status
gpioget gpiochip0 105

# Read DI_12V_2 (gpiochip0 144) status
gpioget gpiochip0 144

Image

UART​

reComputer Rugged J401 配备了独立的 UART 接口(UART1),支持 RS232、RS422 和 RS485 通信模式,具有稳定的信号传输能力,并与多种外设设备具有良好的兼容性。

硬件连接​

UART 接口通道

通过拨动 SW3 开关在 RS232、RS485 和 RS422 模式之间切换。

注意:当开关按下(ON)时,该位为 0;未按下时,该位为 1

Image

Mode_0Mode_1Mode_2模式状态
000RS-422 全双工1T/1R RS-422
001纯 RS-2323T/5R RS-232
010RS-485 半双工1T/1R RS-485,TX ENABLE
低电平有效
011RS-485 半双工1T/1R RS-485,TX ENABLE 高电平有效
100RS-422 全双工带终端电阻的 RS-422
101RS-2321T/1R RS-232 与 RS485 应用共存,无需总线开关(用于特殊用途)
110RS-485带终端电阻的 1T/1R RS-485,TX ENABLE 低电平有效
111关闭所有 I/O 引脚为高阻态

SPI​

硬件连接​

Image

使用说明​

使用杜邦线连接目标 SPI 通道的核心引脚(以 /dev/spidev0.0 为例):将 MOSI 引脚连接到其 MISO 引脚(实现数据回环收发)。

接线示意图如下:

Image

步骤 1:加载 SPI 内核模块(前提条件)

在操作 SPI 接口之前,确保已加载 spidev 内核模块(默认系统可能已预加载,但建议手动确认):

sudo modprobe spidev

如果命令执行没有错误提示,则表示模块加载成功;如果模块已经加载,命令不会返回任何信息,这是正常现象。

步骤 2:查看 SPI 设备节点

在终端输入以下命令,查看 reComputer Rugged J401 的 SPI 接口所映射的设备名称:

ls /dev/spidev*

如果没有显示设备节点,说明 spidev 模块未成功加载。请重新运行 sudo modprobe spidev 并检查系统日志进行排查。

步骤 3:获取并编译 SPI 测试代码

从 GitHub 拉取 spidev-test 测试代码并进行编译:

git clone https://github.com/rm-hull/spidev-test
cd spidev-test
gcc spidev_test.c -o spidev_test

步骤 4:运行 SPI 测试程序

在终端输入以下命令运行 SPI 测试程序(以 /dev/spidev2.0 为例):

sudo ./spidev_test -v -D /dev/spidev0.0 -s 100000 -p "Hello SPI"

步骤 5:验证测试结果

运行测试命令后,可以在终端中观察 SPI0.0 接口的数据收发情况。核心输出如下:

Image

关键判断标准:TX(发送)数据与 RX(接收)数据一致,表示 SPI 回环测试成功,SPI 接口功能正常。

I2C​

Rugged J401 通过 J8 2x10 Pin 连接器提供 I2C 接口,可方便连接传感器和外设,实现系统扩展。

硬件连接​

Image

Image

将你的 I2C 设备连接到载板上的 I2C 接口:

  • Ground -> Ground(引脚 1)

  • SDA -> SDA(引脚 16)

  • SCL -> SCL(引脚 14)

  • VCC -> 3V3(引脚 20)

使用说明​

步骤 1. 安装 I2C 测试工具:

sudo apt update
sudo apt-get install i2c-tools

步骤 2. 查看 I2C 总线映射:

i2cdetect -l

步骤 3. 扫描 I2C 总线上的设备:

sudo i2cdetect -y -r 1

Image

资源​

技术支持与产品讨论​

感谢你选择我们的产品!我们将为你提供多种支持,确保你在使用我们产品的过程中尽可能顺利。

Loading Comments...