Drogheda/06-Testing-Validation/2026-09-29_Drogheda_HBOX-V5_Prueba-Ethernet-y-Puertos-Serie_ES_v1.0.md

14 KiB
Raw Blame History

title tags project author date version status audience
HBOX V5 (V5.5 / V5.6) — Prueba de banco de Ethernet y puertos serie (RS-485 / RS-232)
project-drogheda
hardware
hbox
v5
v5.6
ethernet
w5500
rs485
rs232
sc16is752
testing
procedimiento
Project Drogheda Helgen Technologies 2026-09-29 1.0 ACTIVO — obligatoria en al menos una V5.5 ANTES de pedir la V5.6; después, en toda unidad con RJ45 o clemas serie en el panel técnicos de banco

HBOX V5 — Prueba de banco: Ethernet y puertos serie

Objetivo: demostrar en hardware real que el W5500 (Ethernet) y el SC16IS752 con sus transceptores (RS-485 en P15, RS-232 en P16) funcionan. Hasta el 28-sep Ethernet nunca se había ejercitado en una tarjeta real; la V5.6 copia ese bloque tal cual, así que esta prueba en una V5.5 es condición para ordenar la V5.6. Duración: Ethernet 15 min · serie 15 min. Registro: ▶ acta Ethernet y puertos serie.

!!! danger "Seguridad eléctrica — las tres reglas" 1. Nunca probar Ethernet con la unidad solo en batería ni solo por USB. El W5500 se alimenta de 3V3_ETH, que cuelga del 5 V del sistema: sin 5 V el chip está sin alimentar y el firmware lo deja en reset. En batería el firmware tampoco lo enciende (no valen sus ~130 mA). 2. 5 V del sistema ≥ 5.2 V durante la prueba (SD-15B ajustado a ~5.3 V o fuente de banco a 5.3 V en P2). Con menos, la ráfaga LTE del módem lleva el riel al PFI 4.60 V del LTC4040 y la tarjeta se reinicia a media prueba. 3. Sin batería si se usa fuente de banco en P2 sin 24 V (no hay cargador que gobernar, pero un paquete Li-ion sobre una fuente mal ajustada no se perdona). Lo normal: 24 V al GX16 y el SD-15B interno.


0. Material

Cant. Ítem
1 Unidad V5 ensamblada (tarjeta + simpleRTK2B + módem + antenas) o tarjeta V5 sola + simpleRTK2B (para ver NMEA)
1 Fuente 24 V al GX16 (o fuente 5.3 V / 3 A en P2)
1 Laptop con terminal serie (115200) grabando a archivo, y con nc (macOS/Linux) o ncat (Windows, Nmap)
1 Binario de banco hbox-v5-bringup_0.6.0-eth.bin (lo compila ingeniería con -DENABLE_ETH=1; SHA-256 en su entrega)
1 Cable Ethernet directo (cat 5e o mejor), 1–3 m; el W5500 hace Auto-MDIX, no hace falta cruzado
1 Adaptador USB ↔ RS-485 (con terminales A/B o D+/D−)
1 Adaptador USB ↔ RS-232 (DB9 macho, chip FTDI/Prolific) + 3 cables con puntera para la clema
1 Multímetro
— Destornillador plano 2.5 mm para las clemas Phoenix MC 1,5

A. Prueba de Ethernet (build 0.6.0-eth)

A1. Preparar la laptop (una vez)

  1. Adaptador Ethernet de la laptop en IP manual 192.168.7.1, máscara 255.255.255.0, sin gateway. (Si en vez de cable directo se usa un switch con DHCP, la unidad tomará la IP del DHCP; entonces la laptop debe estar en esa red y la unidad seguirá buscando el servidor en 192.168.7.1 — por eso el cable directo es lo más simple.)
  2. Firewall de la laptop: permitir entradas al puerto 5010/TCP (o desactivarlo durante la prueba).
  3. Abrir un terminal y dejar escuchando:
nc -lk 5010            # macOS / Linux
ncat -lk 5010          # Windows (Nmap)

A2. Flashear el build de banco

  1. DFU en J11 (mantener SW2, pulsar y soltar SW1, soltar SW2) — igual que el procedimiento de flasheo §5. Solo USB, sin 24 V.
  2. dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.0-eth.bin (o STM32CubeProgrammer).
  3. Terminal serie en J11: la primera línea debe decir hbox-v5-bringup 0.6.0-eth. La ayuda (h) debe listar la tecla E=Ethernet on/off.

!!! warning "Al terminar, regresar la unidad a 0.6.0" El build -eth es de banco. Antes de embarcar se vuelve a flashear hbox-v5-bringup_0.6.0.bin (campo) y se anota en el acta de reflasheo.

A3. Secuencia de prueba

  1. Cable Ethernet entre J10 y la laptop. Aún sin 24 V: los LEDs de J10 deben estar apagados (W5500 sin alimentar por USB — correcto).
  2. Energizar 24 V + ignición (P11 en ON). En consola, en los primeros ~15 s:
Paso Línea esperada en consola Qué significa
a >>> BOARD OK · EVT … STACK ON reason=auto tarjeta y etapa bien
b EVT ETH W5500 OK en SPI2 (W5500) mac=02:48:42:xx:xx:xx ip_estatica=192.168.7.2 — esperando cable el chip responde ($PHEV … ETH_HW,ok)
c LED de enlace de J10 encendido; el de actividad parpadea PHY con enlace
d EVT ETH sin DHCP en 4 s -> IP estatica (cable directo) o ETH enlace ARRIBA ip=<dhcp> (DHCP) (switch) dirección obtenida
e EVT ETH enlace ARRIBA ip=192.168.7.2 (estatica) gw=… -> servidor 192.168.7.1:5010 listo para conectar
f EVT ETH conectado a 192.168.7.1:5010 (n=1): NMEA + $PHLG + $PHEV en espejo socket abierto
  1. En la ventana de nc debe aparecer primero una línea de identidad y luego el flujo:
$PHID,<UID 24 hex>,0.6.0-eth,EinarBoard v5 (HBOX v5),02:48:42:xx:xx:xx,<up_s>*CS
$PHLG,0.6.0-eth,RUN,…
$GNGGA,…
$GNRMC,…

($PHID se repite cada 5 min. Con la etapa apagada o sin simpleRTK2B llegan solo $PHLG/$PHEV.)

  1. Teclear s: STAT … eth=CONECTADO ip=192.168.7.2 lineas=N bytes=… drop=0 conn=1. lineas debe subir; drop debe quedarse en 0.
  2. Prueba de cable: desconectar el RJ45 10 s → EVT ETH cable desconectado — esperando enlace; reconectar → vuelve a enlace ARRIBA y conectado (n=2) en < 10 s.
  3. Prueba de servidor: cerrar nc (Ctrl-C) → EVT ETH servidor desconectado … reintento en 5 s; volver a lanzar nc -lk 5010 → reconecta solo.
  4. Tecla E: E → ETH OFF (operador), LEDs de J10 apagados; E otra vez → toda la secuencia b–f de nuevo.
  5. Sin 5 V: quitar los 24 V (con batería puesta) → EVT ETH OFF (sin_5V): W5500 en reset y STAT … eth=off. Volver los 24 V → reset del MCU (0.5.9+) y la secuencia completa otra vez.
  6. Guardar el log de consola y la captura de nc (nc -lk 5010 | tee H00xx_eth.txt). Ambos van al acta.

A4. Criterios de aceptación — Ethernet

Criterio PASA si
Hardware ETH W5500 OK en SPI2 en cada arranque con 5 V (nunca NO responde)
Enlace LED de enlace de J10 ON con cable; enlace ARRIBA en < 10 s tras conectar el cable
Dirección DHCP tomado si hay servidor DHCP; si no, cae a 192.168.7.2 en ≤ 5 s
Espejo $PHID es la primera línea en nc; después NMEA + $PHLG continuos ≥ 5 min; drop=0
Recuperación cable fuera/dentro y servidor caído/arriba se recuperan solos en < 10 s
No interferencia mientras Ethernet está conectado: modoB=ON, phlg_aire sigue subiendo, el monitor sigue viendo la unidad por 4G, v5min ≥ 4.9

A5. Árbol de fallas — Ethernet

Síntoma Dónde buscar
EVT ETH W5500 NO responde en SPI2 … — 3V3_ETH? U11? reintento en 10 s ($PHEV … ETH_HW,fail) Medir 3V3_ETH (U12 salida / J10 pin 4 TCT) → 3.3 V. Si 0 V: U12 o su enable, SYS5V (P11 cerrado?). Si 3.3 V: SPI2 (PB12 CS, PB13 SCK, PB14 MISO, PB15 MOSI) y RST PA15: en V5.5 PA15 no tiene pull-down (flota); la tarjeta debe llevar R112 4.7 k en V5.6. Cristal Y1 25 MHz. Soldadura de U11 (QFN 48)
W5500 OK pero nunca enlace ARRIBA; LED de enlace apagado cable (probar otro), el adaptador de la laptop está activo?, J10 (pines doblados, magnéticos: HR911105A trae los transformadores dentro — un J10 golpeado los rompe), pares TX/RX (J10 1-2 / 3-6)
enlace ARRIBA pero nunca conectado (eth=buscando_srv) IP de la laptop ≠ 192.168.7.1/24, nc no está escuchando, firewall de la laptop, dos adaptadores de red con la misma subred
conectado pero nc no muestra nada / drop sube nc sin -k se cerró tras el primer cliente; la laptop no drena (terminal congelada)
Se reinicia la tarjeta al conectar Ethernet riel 5 V: v5min < 4.6 → SD-15B / fuente; ver regla 2 de seguridad
Todo bien con cable directo pero no con switch el switch da DHCP en otra subred y el servidor sigue siendo 192.168.7.1 → cable directo, o build con -DETH_SERVER_IP= de esa red

B. Prueba de puertos serie (P15 RS-485, P16 RS-232)

B0. Lo que puede probar cada firmware

Firmware Qué prueba Cómo
0.6.0 / 0.6.0-eth (hoy) presencia del SC16IS752 (registro scratchpad) + niveles estáticos de los transceptores B1 + B2
0.6.1 (planeado; cuando exista) lazo interno A↔B y eco externo por cada puerto a 9600 8N1 B3 + B4

B1. Presencia (cualquier 0.6.x)

Con la tarjeta energizada (USB basta), en consola teclear r y buscar:

[PASS] I2C            SC16IS752 U10 @0x4D ACK
[PASS] SC16IS752      0x4D ACK, SPR rd=0xA5 (exp A5), LSR=0x60

[FAIL] … no ACK at 0x4D → U10 sin alimentación / soldadura / dirección (A0, A1 a GND). SPR rd= distinto de A5 → U10 dañado o Y2 no oscila (debe decir 3.6864).

B2. Niveles estáticos (cualquier 0.6.x, multímetro, sin nada conectado a las clemas)

Medir (negro a GND = P15.3 / P16.3) Esperado Si no
P16.1 (TX RS-232) −5 a −6.5 V (marca en reposo del MAX3232) ≈ 0 V: U15 sin 3V3 o bomba de carga muerta (C1±/C2± = C de U15); ≈ +5 V: T1IN en bajo = U10 en reset
P16.2 (RX RS-232) ≈ 0 V flotando (R1IN tiene pull-down interno) —
P15.1 (A) y P15.2 (B) respecto a GND ambas entre 1 y 3 V; sin JP5 pueden flotar cerca de 3.3/0 según el driver ambas 0 V con 3V3 presente: U14 sin VCC
P15.1 – P15.2 (A – B) con JP5 cerrado 0 V ± 0.2 (driver desactivado, línea terminada) ≈ 0 con JP5 abierto también es normal
JP5 con la tarjeta apagada, ohms entre P15.1 y P15.2 JP5 abierto: > 10 kΩ · JP5 cerrado: ≈ 120 Ω (R82) —

B3. Lazo interno (cuando exista 0.6.1)

Cablear P15 ↔ P16 no — son eléctricamente distintos. El lazo interno de 0.6.1 conecta TX→RX de cada canal dentro del SC16IS752 (registro MCR bit 4) y no necesita cable: tecla de consola de 0.6.1 → [PASS] SER_LOOP_A / [PASS] SER_LOOP_B. Prueba U10 y el cristal, no los transceptores ni las clemas.

B4. Eco externo con adaptadores (cuando exista 0.6.1) — 9600 8N1

Con 0.6.1 en modo eco, todo lo que entra por un puerto sale por el mismo puerto.

RS-485 (P15):

  1. Cerrar JP5 en la tarjeta solo si el adaptador también termina (la mayoría trae 120 Ω conmutable): bus de dos nodos = dos extremos = dos terminaciones. Anotar la posición en el acta.
  2. Adaptador: A → P15.1, B → P15.2, GND → P15.3. Par trenzado, ≤ 3 m en banco.
  3. Terminal en el puerto del adaptador a 9600 8N1, eco local apagado. Enviar HELGEN-485 0123456789\r\n diez veces (o un archivo de 1 kB).
  4. Esperado: cada línea regresa idéntica. 10/10 sin caracteres perdidos = PASA.
  5. Si no vuelve nada: intercambiar A y B (muchos adaptadores etiquetan D+/D− al revés). Si sigue sin nada: B2.

RS-232 (P16):

  1. Cable de 3 hilos con puntera: P16.1 TX → DB9 pin 2 (RXD) · P16.2 RX → DB9 pin 3 (TXD) · P16.3 GND → DB9 pin 5. (Cruce DTE↔DTE; sin control de flujo.)
  2. Terminal en el adaptador a 9600 8N1. Enviar HELGEN-232 0123456789\r\n diez veces.
  3. Esperado: 10/10 líneas de vuelta idénticas. Basura o nada: revisar cruce (probar pines 2↔3 invertidos) y B2.

B5. Criterios de aceptación — puertos serie

Prueba PASA si Con qué firmware
Presencia U10 [PASS] SC16IS752 … SPR rd=0xA5 0.6.0+
Niveles RS-232 P16.1 en −5…−6.5 V en reposo 0.6.0+
Niveles RS-485 A y B con nivel (no 0/0), 120 Ω entre A-B solo con JP5 cerrado 0.6.0+
Lazo interno A y B [PASS] SER_LOOP_A y SER_LOOP_B 0.6.1
Eco RS-485 10/10 líneas idénticas a 9600 8N1 0.6.1
Eco RS-232 10/10 líneas idénticas a 9600 8N1 0.6.1

!!! note "Sin 0.6.1, el resultado de serie se registra como «presencia + niveles OK»" Es lo máximo que puede probarse hoy y basta para ordenar la V5.6 (el bloque serie no cambia entre V5.5 y V5.6). El eco con adaptadores se repite cuando salga 0.6.1 y se agrega al mismo acta.


C. Cierre

  • Re-flashear hbox-v5-bringup_0.6.0.bin (campo) si la unidad se va a embarcar; anotar en el acta de reflasheo.
  • Quitar cable Ethernet y adaptadores; tapas ciegas en J10/P15/P16 si el panel no los usa.
  • Acta Ethernet y puertos serie enviada con los dos logs.

Anexo A — Notas de ingeniería

  • Ethernet en firmware: ethService() — RST alto → 150 ms → Ethernet.begin estático (prueba el chip y lee el PHY) → con cable, DHCP con 4 s de presupuesto (K1 liberado mientras, relayDisengage("eth_dhcp")) o estática → connect() con timeout 300 ms, reintento 5 s. Escrituras no bloqueantes (availableForWrite), descartes en drop=. MAC 02:48:42: + hash del UID. Eventos en banda: ETH_HW, ETH_UP, ETH_LINK, ETH_CONN, ETH_DISC, ETH_OFF.
  • V5.5 vs V5.6 en este bloque: V5.6 añade R112 4.7 k pull-down en ETH_RST (PA15) y C90 4.7 µF / C91 10 nF según datasheet. Si una V5.5 arranca con W5500 NO responde de forma intermitente, sospechar PA15 flotando antes de que el firmware tome el pin.
  • SC16IS752: dirección 0x4D (A1 = A0 = GND, modo I²C), IRQ en PB8 (R81 10 k), cristal Y2 3.6864 MHz (XTAL_FREQ 3686400 → 9600 = divisor 24). Canal A → U14 SP3485 (DE y ~RE unidos en SER_DEA), canal B → U15 MAX3232 (canal 2 sin usar: T2IN a GND, R2IN a GND).
  • Netlist V5.6 (p5ntc-after.xml): P15.1 RS485_A, P15.2 RS485_B, P15.3 GND; JP5.1 RS485_T (R82 120 Ω → A), JP5.2 RS485_B; P16.1 RS232_TX (T1OUT), P16.2 RS232_RX (R1IN), P16.3 GND; J10 1/2 TX±, 3/6 RX±, 4 TCT (3V3_ETH), 5 RCT, 7/8 NC, 9–12 LEDs de enlace/actividad.

Historial de revisiones

Versión Fecha Autor Cambios
1.0 2026-09-29 Helgen Technologies Primera versión: prueba de Ethernet con 0.6.0-eth (espejo TCP, DHCP/estática, recuperación, árbol de fallas) y de puertos serie (presencia, niveles, lazo y eco 9600 8N1 para 0.6.1).