Saltar al contenido principal

Uso de hardware e interfaces de reComputer Rugged J401

Este wiki presenta los distintos componentes de hardware e interfaces de reComputer Rugged J40 y explica cómo utilizarlos para ampliar tus ideas de proyecto. La mayoría de las interfaces en el reComputer Rugged J40 utilizan conectores M12, lo que proporciona resistencia al agua y al polvo con clasificación IP66, así como una excelente resistencia a las vibraciones. Esto lo hace adecuado para despliegues a largo plazo en entornos exteriores hostiles, como a bordo de embarcaciones y en sistemas de monitorización portuaria.

Image

Descripción general del hardware​

Vista lateral 1

Vista lateral 2

Vista inferior

Especificaciones de la placa portadora​

ElementoEspecificación
E/SEthernet1× M12 GbE + 4× M12 GbE PSE (IEEE 802.3af, 15 W, 10/100/1000 Mbps)
USB4× USB 3.2 Tipo A (conectores impermeables) + 1× USB 3.0 Tipo C (dispositivo / flasheo) + 1× USB 2.0 Tipo C (depuración)
Pantalla1× HDMI 2.1 (tapa impermeable)
CAN2× CAN-FD (aislado) mediante M12 código A
Serie1× RS-232/422/485 mediante M12 código A
DI/DO2× DI + 2× DO mediante M12 código A
SIM1× ranura para tarjeta Nano-SIM
Antena4× conectores de antena impermeables SMA
AlmacenamientoM.2 Key M1× M.2 Key M para SSD NVMe 2280 (incluye SSD de 128 GB)
ExpansiónM.2 Key E1× M.2 Key E para módulo Wi-Fi M.2 2230 (incluye módulo Wi-Fi 6)
M.2 Key B1× M.2 Key B para módulo 5G
IntegradoSPI / I2C1× SPI, 1× I2C (conector interno de pines)
RTCSocket RTC, conector de 2 pines
LED1× LED PWR (verde), 1× LED SSD (verde)
Botón1× botón de recuperación, 1× botón RST
AlimentaciónEntradaM12 código A CC 19–48 V

Alimentación​

Image

reComputer Rugged J401 está equipado con una interfaz de alimentación M12 código A CC 19-48 V, compatible con un amplio rango de tensión de entrada, lo que lo hace adecuado para diversos entornos de suministro de energía. La definición de la interfaz se muestra en la tabla siguiente.

Image

PinUsoTipoColor del cable
1Entrada de alimentación CCAlimentaciónMarrón
2Blanco
3TierraTierraAzul
4Negro

Pantalla​

Retira los dos tornillos que fijan la tapa lateral impermeable y ábrela para acceder al puerto HDMI 2.1, que proporciona una salida de vídeo de alta calidad.

Image

M.2 Key M para SSD y M.2 Key E para Wi-Fi y Bluetooth​

El reComputer Rugged J401 incorpora una interfaz M.2 Key E, mediante la cual puedes ampliar las capacidades de Bluetooth y Wi-Fi del dispositivo. Recomendamos utilizar la tarjeta de red inalámbrica Intel Dual Band RTL8822CE.

M.2 Key M es una interfaz diseñada para unidades de estado sólido (SSD) de alta velocidad, que proporciona velocidades de transferencia de datos ultrarrápidas, ideal para aplicaciones de alto rendimiento.

La ubicación de la interfaz se muestra en la figura siguiente.

Image

Instrucciones de uso​

Si deseas retirar el SSD incluido e instalar uno nuevo, debes asegurarte de que tu SSD cumpla las siguientes dos condiciones:

  • Soportar la ranura M.2 Key M con interfaz x4 PCIe Gen3.

  • Cumplir con la especificación de tamaño 2242.

Abre el terminal en el dispositivo Jetson e introduce el siguiente comando para probar la velocidad de lectura y escritura del SSD.

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

Image

Ejecuta el comando sudo rm tempfile para eliminar los archivos de caché después de completar la prueba.

Después de instalar el módulo Wi-Fi y encender el dispositivo, podemos configurar los ajustes de Wi-Fi y Bluetooth del dispositivo.

Image

Por supuesto, también podemos comprobar el estado de funcionamiento del dispositivo utilizando los siguientes comandos.

ifconfig

Image

bluetoothctl

Image

M.2 Key B para módulo 4G/5G​

La ranura M.2 Key B es compatible con módulos celulares 4G/5G con soporte para tarjeta Nano SIM.

Conexión de hardware​

Image

Instrucciones de uso​

Paso 1. Comprobar el reconocimiento del hardware

lsusb 

Este comando muestra una lista de todos los dispositivos USB conectados al sistema, junto con su fabricante (ID), tipo y otra información. Por ejemplo, la salida puede mostrar un dispositivo de Quectel Wireless Solutions Co., Ltd. EM12-G, lo que indica que el módulo 5G está presente.

Image

Paso 2. Confirmar la carga del controlador

Es esencial asegurarse de que el controlador option, que se requiere para el módulo 5G, esté cargado. Podemos usar el comando lsmod para comprobarlo.

lsmod | grep option 

Si el controlador option se carga correctamente, se mostrará en la salida la información relevante sobre el controlador.

Image

Paso 3. Configurar ModemManager

ModemManager es una herramienta para gestionar dispositivos módem, y es necesario instalarla y reiniciarla.

sudo apt install modemmanager 
sudo systemctl restart ModemManager

El comando apt install se utiliza para instalar el paquete ModemManager, mientras que systemctl restart reinicia el servicio ModemManager para garantizar que la nueva configuración surta efecto.

Paso 4. Verificar la identificación del módulo

Podemos usar el comando mmcli -L para comprobar si ModemManager puede identificar correctamente el módulo 5G.

mmcli -L 

Si se reconoce el módulo 5G, se mostrará una salida similar a /org/freedesktop/ModemManager1/Modem/0, que indica la ruta al dispositivo módem detectado.

Image

Paso 5. Establecer el APN

El APN (Access Point Name) es crucial para conectar un dispositivo móvil a la red. Usaremos el comando nmcli para crear un perfil de portador. Tomando como ejemplo China Mobile, podemos crear un archivo de configuración con los siguientes comandos:

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

Este comando añade una nueva conexión de tipo GSM (Global System for Mobile Communications), especificando el APN como "CMNET" y utilizando configuración IPv4 automática.

Paso 6. Activar la conexión

Después de crear el perfil de portador, necesitamos activar la conexión.

sudo nmcli con up "gsm" 

Este comando activa la conexión GSM y, si tiene éxito, se mostrará un mensaje de confirmación.

Image

Paso 7. Volver a verificar la identificación del módulo

Ejecuta de nuevo el comando mmcli -L para asegurarte de que el módulo sigue siendo reconocido después de configurar el APN.

mmcli -L 

Paso 8. Comprobar el estado del módulo

Por último, podemos usar el comando mmcli -m 0 para ver información detallada sobre el módulo, como la asignación de IP, el operador y el estado de la conexión de red.

mmcli -m 0 

Este comando proporciona detalles completos sobre el módulo 5G, incluido su fabricante, modelo, tecnologías de red admitidas y actuales, estado del dispositivo y operadores de red conectados.

Image

Ethernet​

El reComputer Rugged J401 proporciona 1 puerto RJ45 Ethernet Gigabit estándar (10/100/1000M) (J35) y 4 puertos RJ45 Gigabit PSE (Power Sourcing Equipment) (J36–J39). El puerto Gigabit estándar se utiliza para la conectividad general de red. Los puertos PSE son compatibles con los estándares IEEE 802.3af/at, lo que permite suministrar energía a través de Ethernet a dispositivos conectados como cámaras IP y puntos de acceso inalámbricos, con una potencia máxima de salida de 15,4 W por puerto (802.3af). Esto lo hace ideal para aplicaciones industriales, AMR y de computación perimetral en exteriores, eliminando la necesidad de un cableado de alimentación independiente. Todos los puertos Gigabit se derivan del controlador PCIe dentro del módulo Jetson Orin y admiten autonegociación 10/100/1000M.

Image

Los nombres de los dispositivos de red de Linux se asignan a los puertos Ethernet físicos como se muestra a continuación. Al ver los conectores Ethernet desde la misma dirección que en la imagen, la asignación de izquierda a derecha es eth4, eth2, eth1, eth0 y eth3.

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

Posición del puerto físicoNombre del dispositivo Linux
Primero desde la izquierdaeth4
Segundo desde la izquierdaeth2
Centroeth1
Segundo desde la derechaeth0
Primero desde la derechaeth3

Utiliza ethtool para comprobar el ancho de banda negociado y el estado del enlace físico de cada puerto Ethernet. Instálalo primero si el comando no está disponible:

sudo apt update
sudo apt install -y ethtool

Ejecuta el siguiente comando para mostrar la velocidad, el modo dúplex, el estado de auto-negociación y el estado del enlace para las cinco interfaces Ethernet físicas:

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

Speed muestra el ancho de banda de enlace negociado, como 1000Mb/s; Duplex normalmente debería indicar Full; y Link detected: yes confirma que el puerto físico correspondiente tiene una conexión activa. Un puerto desconectado puede mostrar Speed: Unknown! y Link detected: no.

Instrucciones de uso​

Conexión de hardware​

Activar la salida PoE​

Los cuatro puertos PSE (J36–J39) están alimentados por un controlador PSE integrado que está desactivado por defecto. En un sistema de fábrica nada lo activa, por lo que una cámara conectada a J36–J39 permanece sin alimentación hasta que la línea de habilitación de alimentación PSE se lleva a nivel alto y se mantiene en alto.

SeñalGPIODirecciónSignificado
PSE_PWR_ENgpiochip2 línea 15salidallevar a nivel alto para activar la salida PSE
PSE_PGgpiochip2 línea 0entrada1 = alimentación PSE correcta
PSE_INTBgpiochip2 línea 1entrada0 = sin fallo

Instala las herramientas GPIO si faltan, luego habilita la salida y mantenla activada:

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

Salida esperada:

1 0

1 0 significa PSE_PG=1 (alimentación correcta) y PSE_INTB=0 (sin fallo). Si PSE_PG permanece en 0, no se está suministrando energía: comprueba el cable y el propio requisito de alimentación de la cámara (802.3af permite 15,4 W por puerto). Si PSE_INTB lee 1, el controlador ha registrado un fallo: retira la carga, apaga y enciende de nuevo y vuelve a comprobar.

Importante: el nivel solo se mantiene mientras el proceso gpioset esté vivo. Una línea GPIO solicitada a través del dispositivo de caracteres vuelve a su estado predeterminado cuando sale el último proceso que la mantiene — gpioset --help lo indica explícitamente — por lo que ejecutar el comando y dejar que termine no mantiene el PSE encendido. Después de un reinicio, o si el proceso se mata, las cámaras pierden alimentación y el enlace cae.

Mantener el PSE encendido entre reinicios (opcional)​

Envuelve el mismo mantenimiento en una unidad systemd para que se aplique en cada arranque y se reinicie automáticamente si alguna vez termina:

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 más Restart=on-failure es lo que hace que esto sea un mantenimiento en lugar de un comando de una sola vez: systemd mantiene vivo el proceso — y por lo tanto el nivel GPIO.

Puesta en marcha de dos cámaras PoE​

Con la salida PSE habilitada, se pueden alimentar y alcanzar dos cámaras sin ningún inyector PoE externo. Ponerlas en marcha manualmente requiere tres pasos.

Paso 1. Encuentra los puertos que realmente tienen conectada una cámara. Los cinco puertos Gigabit se enumeran como eth0–eth4; lee el indicador de portadora en lugar de asumir qué índice pertenece a qué conector:

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

Paso 2. Deja que las cámaras terminen de arrancar (30–60 s después de que se active la alimentación PSE), luego pon el puerto del Jetson en la misma subred que cada cámara:

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

Paso 3. Verifica los enlaces y las dos cámaras:

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

Salida esperada: ambos pings informan 0% packet loss, y cada puerto muestra UP con la dirección que le asignaste:

eth1             UP             192.168.10.100/24
eth2 UP 192.168.20.100/24

Notas:

  • Cada cámara mantiene la dirección con la que fue configurada. Si no la conoces, pon el puerto en la subred en la que debería estar la cámara y búscala con un barrido de ping.
  • Un puerto que permanece en carrier=0 mientras PSE_PG=1 significa que la cámara no está consumiendo energía, o que el conector impermeable no está completamente insertado.
  • Las direcciones anteriores son ejemplos tomados de una configuración con dos cámaras; utiliza las subredes de tus propias cámaras. ip addr add no es persistente entre reinicios: configura el puerto con NetworkManager o systemd-networkd si debe sobrevivir a un reinicio.
# 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

Vista previa en vivo de dos cámaras​

Ambos flujos RTSP se pueden mostrar a la vez, cada uno en su propia ventana de GStreamer. Utiliza la ruta GPU/EGL para la primera ventana y la ruta X11/Xv para la segunda: dos sinks basados en EGL ejecutándose al mismo tiempo pueden bloquear la pantalla EGL en esta plataforma.

# 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 &
  • Sustituye <user>:<password> por las credenciales de tu propia cámara, y las direcciones IP por las que verificaste arriba.
  • DISPLAY=:0 y XAUTHORITY=/home/seeed/.Xauthority son necesarios cuando los comandos se lanzan por SSH; ajusta la ruta si tu usuario de escritorio no es seeed. Ejecutarlos desde una terminal dentro de la sesión de escritorio de JetPack no necesita ninguno de los dos.
  • Se usa protocols=tcp porque RTSP sobre UDP a menudo está bloqueado o es poco fiable en redes industriales, y latency=200 da al flujo un búfer de fluctuación de 200 ms.
  • Las cámaras probadas aquí transmiten H.265. Comprueba tu propia cámara y cambia el par depayloader/parser si es H.264.
  • Los primeros fotogramas aparecen después de unos segundos (handshake RTSP, calentamiento del decodificador y el intervalo de fotogramas clave de la cámara). Si una ventana permanece en negro, lee /tmp/camA_disp.log o /tmp/camB_disp.log.
  • Detén la vista previa con pkill -f "gst-launch-1.0.*rtspsrc", o kill %1 %2 si ambas se iniciaron desde la misma shell.

Para leer el códec de un flujo:

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

Para una cámara H.264 utiliza rtph264depay ! h264parse en lugar de rtph265depay ! h265parse; el resto de la tubería permanece sin cambios.

USB​

El reComputer Rugged J401 proporciona 4 puertos USB 3.2 Tipo A (a través de un hub interno USB 3.1 Gen1, que admite tasas de datos de hasta 5 Gbps para conectar periféricos de alta velocidad, dispositivos de almacenamiento o cámaras) y 1 puerto USB 2.0 Tipo C de depuración (que funciona como una consola serie para acceder a registros del sistema, depurar problemas de arranque y realizar actualizaciones de firmware).

Prueba de velocidad USB-A​

Crea un script para probar la velocidad del dispositivo USB:

vim test_usb.sh

Pega el siguiente contenido:

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

Pulsa Esc para salir del modo Insert, luego escribe :w y pulsa Enter para guardar el script, y después salir del proceso.

Haz que el script sea ejecutable y pruébalo:

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

Puerto USB 2.0 Type-C​

Usando este puerto serie, a través del cable de datos USB-C, puedes monitorizar en el PC la información de depuración de entrada y salida.

Image

Instala el controlador Silicon Labs CP210x Universal Windows VCP en Windows.

En el Administrador de dispositivos, localiza y confirma el puerto COM asignado al dispositivo serie

(COM8 en la captura de pantalla).

Image

Ejecuta el siguiente comando en PowerShell:

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

Inicia sesión con nombre de usuario y contraseña.

Image

RTC​

El reComputer Rugged J401 incluye un RTC de hardware con batería de respaldo para un cronometraje preciso. Es compatible con baterías tipo moneda CR1220 y CR1225.

Conexión de hardware​

Image

Instrucciones de uso​

Paso 1. Conecta una batería RTC como se mencionó anteriormente.

Paso 2. Enciende el reComputer Rugged J401.

Paso 3. En el escritorio de Ubuntu, haz clic en el menú desplegable en la esquina superior derecha, ve a Settings > Date & Time, conéctate a una red mediante un cable Ethernet y selecciona Automatic Date & Time para obtener la fecha y hora automáticamente.

Image

Si no te has conectado a internet mediante Ethernet, puedes configurar manualmente la fecha y hora aquí.

Paso 4. Abre una ventana de terminal y ejecuta el siguiente comando para comprobar la hora del reloj de hardware:

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

Paso 5. Desconecta la conexión de red y reinicia el dispositivo. Verás que la hora del sistema ha perdido alimentación pero sigue funcionando con normalidad.

Image

CAN​

El módulo NVIDIA Jetson Orin Nano/NX proporciona solo un controlador CAN nativo (Controller Area Network (CAN) — NVIDIA Jetson Linux Developer Guide). Para obtener una segunda interfaz CAN, se requiere un controlador CAN externo como el MCP2518FDT-E. Para activar el segundo puerto CAN, carga el controlador con sudo modprobe mttcan.

Image

Instrucciones de uso​

Prueba USB-CAN​

Utiliza un adaptador USB-CAN para verificar la comunicación CAN como se indica a continuación.

nota

Los adaptadores USB-CAN suelen incluir una resistencia de terminación integrada.

  • Cuando CAN0_120R_EN_3V3=1, la resistencia de terminación de 120 Ω integrada de CAN0 está desconectada.
  • Cuando CAN0_120R_EN_3V3=0, la resistencia de terminación de 120 Ω integrada de CAN0 está conectada.

La misma lógica se aplica al pin de control de terminación de CAN1.

Cargar el controlador y configurar la interfaz​
# 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
Monitorizar y enviar datos​
# Monitor data
candump can0 &
candump can1 &

# Send data
cansend can0 123#abcdabcd

Recepción y transmisión de CAN0:

Image

Transmisión de CAN1:

Image

Prueba de bucle de retorno CAN​

También puedes conectar CAN0 y CAN1 juntos para una prueba de bucle de retorno a nivel de placa. Une físicamente los dos buses CAN (CAN0_H con CAN1_H, y CAN0_L con CAN1_L), habilita las resistencias de terminación de 120 Ω integradas en ambos lados y luego verifica la comunicación bidireccional entre las dos interfaces.

Abre tres terminales y ejecuta los siguientes comandos.

Ventana 1: configurar y probar 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

Ventana 2: configurar y probar 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

Ventana 3: habilitar resistencias de terminación y comprobar contadores de enlace

# 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

Si el cableado y la terminación son correctos, las tramas generadas en una interfaz deberían recibirse en la otra interfaz, y los contadores TX/RX deberían aumentar en consecuencia.

Image

DI/DO​

Las interfaces DI/DO del reComputer Rugged J401 están integradas en el conector J47 2x10P, compartiendo la interfaz con las interfaces CAN. Admiten 2 canales de entrada digital y 2 canales de salida digital, con transmisión de señal estable y adaptación de voltaje de grado industrial, adecuadas para conectar sensores digitales, relés y otros dispositivos periféricos.

Image

Conexión de hardware​

Los pines DI/DO correspondientes en la interfaz M12 se muestran en la figura siguiente.

Image

Canales de Entrada Digital (DI) / Salida Digital (DO)

Instrucciones de uso​

Operación de Salida Digital (DO)​

Las interfaces DO adoptan salida de drenador abierto. Puedes configurar el nivel de salida (alto/bajo) mediante comandos para controlar periféricos como relés y LED.

Ejecuta el siguiente comando para habilitar el canal DO (salida de 12 V, alimentado por la resistencia de pull-up externa y la fuente de alimentación de 12 V):

# 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

Ejecuta el siguiente comando para deshabilitar el canal DO (salida ~0 V):

# 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 antes de poner a nivel alto:

Image

DO después de poner a nivel alto:

Image

Operación de Entrada Digital (DI)​

Utiliza el comando gpioget para leer el nivel de entrada del canal DI (valor devuelto 1 = nivel alto, 0 = nivel bajo) y obtener el estado de los dispositivos periféricos.

# Read DI_12V_1 (gpiochip0 105) status
gpioget gpiochip0 105

# Read DI_12V_2 (gpiochip0 144) status
gpioget gpiochip0 144

Image

UART​

El reComputer Rugged J401 está equipado con una interfaz UART independiente (UART1) que admite modos de comunicación RS232, RS422 y RS485, con transmisión de señal estable y amplia compatibilidad con dispositivos periféricos.

Conexión de hardware​

Canales de la interfaz UART

Cambia entre los modos RS232, RS485 y RS422 alternando el interruptor SW3.

Nota: Cuando el interruptor está presionado hacia abajo (ON), el bit es 0; cuando no está presionado, el bit es 1

Image

Mode_0Mode_1Mode_2ModoEstado
000RS-422 Full Duplex1T/1R RS-422
001RS-232 puro3T/5R RS-232
010RS-485 Half Duplex1T/1R RS-485, TX ENABLE
Activo en bajo
011RS-485 Half Duplex1T/1R RS-485, TX ENABLE Activo en alto
100RS-422 Full DuplexRS-422 con resistencia de terminación
101RS-2321T/1R RS-232 coexiste con la aplicación RS485 sin necesidad del bus de conmutación de bus (para uso especial)
110RS-4851T/1R RS-485 con resistencia de terminación, TX ENABLE Activo en bajo
111ApagadoTodos los pines de E/S están en alta impedancia

SPI​

Conexión de hardware​

Image

Instrucciones de uso​

Utiliza cables Dupont para conectar los pines centrales del canal SPI de destino (toma /dev/spidev0.0 como ejemplo): conecta el pin MOSI a su pin MISO (para realizar la transmisión/recepción de datos en bucle).

El diagrama de cableado es el siguiente:

Image

Paso 1: Cargar el módulo del kernel SPI (prerrequisito)

Antes de operar la interfaz SPI, asegúrate de que el módulo del kernel spidev esté cargado (el sistema predeterminado puede precargarlo, pero se recomienda verificarlo manualmente):

sudo modprobe spidev

Si el comando se ejecuta sin mensajes de error, significa que el módulo se ha cargado correctamente; si el módulo ya está cargado, el comando no devolverá ninguna información, lo cual es un fenómeno normal.

Paso 2: Ver los nodos de dispositivo SPI

Introduce el siguiente comando en la terminal para ver el nombre del dispositivo mapeado por la interfaz SPI de reComputer Rugged J401:

ls /dev/spidev*

Si no se muestra ningún nodo de dispositivo, significa que el módulo spidev no se ha cargado correctamente. Vuelve a ejecutar sudo modprobe spidev y revisa el registro del sistema para la resolución de problemas.

Paso 3: Obtener y compilar el código de prueba SPI

Obtén el código de prueba spidev-test desde GitHub y compílalo:

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

Paso 4: Ejecutar el programa de prueba SPI

Introduce el siguiente comando en la terminal para ejecutar el programa de prueba SPI (toma /dev/spidev2.0 como ejemplo):

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

Paso 5: Verificar el resultado de la prueba

Después de ejecutar el comando de prueba, puedes observar en la terminal el estado de transmisión y recepción de datos de la interfaz SPI0.0. La salida principal es la siguiente:

Image

Criterio clave de evaluación: si los datos TX (transmitidos) son consistentes con los datos RX (recibidos), indica que la prueba de bucle cerrado SPI se ha realizado correctamente y que la función de la interfaz SPI es normal.

I2C​

El Rugged J401 proporciona una interfaz I2C a través del conector J8 de 2x10 pines, lo que permite una conexión sencilla de sensores y periféricos para la expansión del sistema.

Conexión de hardware​

Image

Image

Conecta tu dispositivo I2C a la interfaz I2C en la placa portadora:

  • Tierra -> Tierra (Pin 1)

  • SDA -> SDA (Pin 16)

  • SCL -> SCL (Pin 14)

  • VCC -> 3V3 (Pin 20)

Instrucciones de uso​

Paso 1. Instala las herramientas de prueba I2C:

sudo apt update
sudo apt-get install i2c-tools

Paso 2. Consulta los mapeos del bus I2C:

i2cdetect -l

Paso 3. Escanea los dispositivos en el bus I2C:

sudo i2cdetect -y -r 1

Image

Recursos​

Soporte técnico y debate sobre el producto​

Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible.

Loading Comments...