hbox-docs/docs/procedimientos/v5-prueba-ethernet-serie.md

13 KiB
Raw Blame History

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

HBOX V5 — Prueba de banco: Ethernet y puertos serie

!!! abstract "Para quién · Cuándo · Tiempo · Necesitas" - Para quién: técnicos de banco. - Cuándo: al menos una V5.5 antes de pedir la V5.6 (Ethernet nunca se había probado en tarjeta real y la V5.6 copia el bloque); después, toda unidad V5.5/V5.6 con RJ45 o clemas serie en el panel, dentro de la configuración de la unidad. - Tiempo: Ethernet 15 min · serie 15 min. - Necesitas: unidad V5 ensamblada (o tarjeta + simpleRTK2B para ver NMEA); 24 V al GX16 (o 5.3 V / 3 A en P2); laptop con terminal serie a 115200 grabando y nc (macOS/Linux) o ncat (Windows); binario de banco hbox-v5-bringup_0.6.0-eth.bin (lo compila ingeniería con -DENABLE_ETH=1 y entrega su SHA-256) ; cable Ethernet directo cat 5e de 1–3 m (el W5500 hace Auto-MDIX); adaptadores USB-RS485 y USB-RS232 (DB9 macho) con 3 cables con puntera; multímetro; desarmador plano 2.5 mm; acta Ethernet y puertos serie.

!!! warning "Reglas" 1. Nunca pruebes Ethernet solo en batería ni solo por USB: el W5500 cuelga de 3V3_ETH, que sale del 5 V del sistema. Sin 5 V el firmware lo deja en reset. 2. 5 V del sistema ≥ 5.2 V (SD-15B o fuente a ~5.3 V). Con menos, la ráfaga LTE lleva el riel al PFI 4.60 V del LTC4040 y la tarjeta se reinicia. 3. Con fuente de banco en P2 y sin 24 V, sin paquete de batería. Lo normal: 24 V al GX16 y el SD-15B interno.

A. Ethernet (build 0.6.0-eth)

A1. Laptop (una vez)

  1. Adaptador Ethernet en IP manual 192.168.7.1, máscara 255.255.255.0, sin gateway. Con un switch con DHCP la unidad toma IP del DHCP pero sigue buscando el servidor en 192.168.7.1; usa cable directo.

  2. Firewall: permite entradas a 5010/TCP o desactívalo durante la prueba.

  3. Deja escuchando:

    nc -lk 5010            # macOS / Linux
    ncat -lk 5010          # Windows (Nmap)
    

A2. Flasheo del build de banco

  1. DFU por J11, solo USB, sin 24 V (flasheo §5).
  2. dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.0-eth.bin o STM32CubeProgrammer.
  3. Terminal en J11: primera línea hbox-v5-bringup 0.6.0-eth; la ayuda (h) lista E=Ethernet on/off.

El build -eth es solo de banco: al terminar reflashea hbox-v5-bringup_0.6.0.bin (ver C).

A3. Secuencia

  1. Cable entre J10 y la laptop. Sin 24 V los LEDs de J10 quedan apagados (correcto: el USB no alimenta el W5500).

  2. Energiza 24 V + ignición (P11 en ON). En los primeros ~15 s:

    Paso Consola 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, actividad parpadea PHY con enlace
    d EVT ETH sin DHCP en 4 s -> IP estatica (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
  3. En nc llega primero la identidad y luego el flujo. $PHID se repite cada 5 min; con la etapa apagada o sin simpleRTK2B solo llegan $PHLG/$PHEV.

    $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,…
    
  4. s: STAT … eth=CONECTADO ip=192.168.7.2 lineas=N bytes=… drop=0 conn=1. lineas sube; drop queda en 0.

  5. Cable: desconecta el RJ45 10 s → EVT ETH cable desconectado — esperando enlace; al reconectar, enlace ARRIBA y conectado (n=2) en < 10 s.

  6. Servidor: cierra nc (Ctrl-C) → EVT ETH servidor desconectado … reintento en 5 s; relanza nc -lk 5010 y reconecta solo.

  7. Tecla E → ETH OFF (operador), LEDs de J10 apagados; E otra vez repite b–f.

  8. Sin 5 V: quita los 24 V con batería puesta → EVT ETH OFF (sin_5V): W5500 en reset y eth=off. Al volver los 24 V, reset del MCU (0.5.9+) y la secuencia completa.

  9. Guarda el log de consola y la captura de nc (nc -lk 5010 | tee H00xx_eth.txt) para el acta.

A4. Aceptación

Criterio Pasa si
Hardware ETH W5500 OK en SPI2 en cada arranque con 5 V, nunca NO responde
Enlace LED de enlace ON con cable; enlace ARRIBA < 10 s tras conectar
Dirección Toma DHCP si hay servidor; si no, 192.168.7.2 en ≤ 5 s
Espejo $PHID primero; NMEA + $PHLG continuos ≥ 5 min; drop=0
Recuperación Cable y servidor se recuperan solos en < 10 s
No interferencia Con Ethernet conectado: modoB=ON, phlg_aire sube, el monitor ve la unidad por 4G, v5min ≥ 4.9

A5. Fallas

Síntoma Revisa
EVT ETH W5500 NO responde en SPI2 … — 3V3_ETH? U11? reintento en 10 s ($PHEV … ETH_HW,fail) 3V3_ETH (salida de U12 / J10 pin 4 TCT) = 3.3 V. Con 0 V: U12 o su enable, SYS5V (¿P11 cerrado?). Con 3.3 V: SPI2 (PB12 CS, PB13 SCK, PB14 MISO, PB15 MOSI) y RST en PA15 (en V5.5 flota sin pull-down; V5.6 lleva R112 4.7 k), cristal Y1 25 MHz, soldadura de U11 (QFN 48)
W5500 OK pero nunca enlace ARRIBA Otro cable; adaptador de la laptop activo; J10 (pines doblados; el HR911105A trae los magnéticos dentro y un golpe los rompe); pares J10 1-2 / 3-6
enlace ARRIBA sin conectado (eth=buscando_srv) IP de la laptop ≠ 192.168.7.1/24, nc sin escuchar, firewall, dos adaptadores en la misma subred
conectado sin datos en nc o drop sube nc sin -k se cerró tras el primer cliente; terminal congelada
Reinicio al conectar Ethernet v5min < 4.6: SD-15B o fuente (regla 2)
Bien con cable directo, mal con switch DHCP en otra subred y servidor fijo en 192.168.7.1: usa cable directo o pide build con -DETH_SERVER_IP=

B. Puertos serie (P15 RS-485, P16 RS-232)

B0. Qué prueba cada firmware

Firmware Prueba Secciones
0.6.0 / 0.6.0-eth Presencia del SC16IS752 y niveles estáticos B1, B2
0.6.1 (planeado) Lazo interno y eco externo a 9600 8N1 B3, B4

B1. Presencia (0.6.x)

Tarjeta energizada (USB basta). Teclea r y busca:

[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 o dirección (A0, A1 a GND). SPR rd= ≠ A5: U10 dañado o Y2 no oscila (marcado 3.6864).

B2. Niveles estáticos (0.6.x, sin nada en las clemas)

Punto (negro a P15.3 / P16.3) Esperado Si no
P16.1 (TX RS-232) −5 a −6.5 V (reposo del MAX3232) ≈ 0 V: U15 sin 3V3 o bomba de carga muerta; ≈ +5 V: T1IN bajo = U10 en reset
P16.2 (RX RS-232) ≈ 0 V (pull-down interno de R1IN) —
P15.1 (A) y P15.2 (B) a GND Ambas 1–3 V Ambas 0 V con 3V3 presente: U14 sin VCC
P15.1 – P15.2 con JP5 cerrado 0 V ± 0.2 (driver desactivado, línea terminada) ≈ 0 con JP5 abierto también es normal
Ohms P15.1–P15.2, tarjeta apagada JP5 abierto > 10 kΩ · cerrado ≈ 120 Ω (R82) —

B3. Lazo interno (0.6.1)

No cablees P15 con P16: son eléctricamente distintos. El lazo de 0.6.1 une TX→RX de cada canal dentro del SC16IS752 (MCR bit 4), sin 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 (0.6.1, 9600 8N1)

En modo eco, lo que entra por un puerto sale por el mismo.

RS-485 (P15):

  1. JP5 según la regla de terminación. En banco, bus de dos nodos: ciérralo solo si el adaptador también termina. Anota la posición.
  2. A → P15.1, B → P15.2, GND → P15.3. Par trenzado, ≤ 3 m.
  3. Terminal en el adaptador a 9600 8N1, sin eco local. Envía HELGEN-485 0123456789\r\n diez veces (o 1 kB).
  4. Pasa con 10/10 líneas idénticas.
  5. Sin respuesta: intercambia A y B (muchos adaptadores rotulan D+/D− al revés); si sigue, vuelve a B2.

RS-232 (P16):

  1. Cable de 3 hilos: P16.1 TX → DB9 pin 2 (RXD) · P16.2 RX → DB9 pin 3 (TXD) · P16.3 GND → DB9 pin 5. Sin control de flujo.
  2. Terminal a 9600 8N1. Envía HELGEN-232 0123456789\r\n diez veces.
  3. Pasa con 10/10 idénticas. Basura o nada: invierte pines 2↔3 y revisa B2.

B5. Aceptación

Prueba Pasa si 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 Ω A-B solo con JP5 cerrado 0.6.0+
Lazo interno SER_LOOP_A y SER_LOOP_B en PASS 0.6.1
Eco RS-485 / RS-232 10/10 idénticas a 9600 8N1 0.6.1

Sin 0.6.1 el resultado se registra como "presencia + niveles OK". Basta para ordenar la V5.6 (el bloque serie no cambia). El eco se agrega al mismo acta cuando salga 0.6.1.

Conexión en la instalación

Conector Pin 1 Pin 2 Pin 3 Notas
P15 RS-485 A B GND Semidúplex, 2 hilos. JP5 = terminación 120 Ω (R82) entre A y B
P16 RS-232 TX (sale) RX (entra) GND ±5 V (MAX3232). El HBOX es DTE
  • JP5 (puente de soldadura, abierto de fábrica): un bus RS-485 se termina solo en sus dos extremos. Ciérralo solo si el HBOX es un extremo; en un bus de dos nodos se cierran los dos; nunca en un nodo intermedio.
  • RS-232 contra otro DTE (laptop, PLC con DB9 macho): cruzado como en B4. Contra un DCE (módem, DB9 hembra): directo.
  • Clemas Phoenix MC 1,5 de 3 vías (paso 3.5 mm): alambre 0.2–1.5 mm² (AWG 24–16), pelado 7 mm, sin estañar (o con puntera). RS-485 en par trenzado con GND en el mismo cable.
  • No hay PoE (J10 pines 7/8 sin conectar): la unidad sigue necesitando 24 V.

C. Cierre

  • Si la unidad se embarca, reflashea hbox-v5-bringup_0.6.0.bin y anótalo en el acta de reflasheo.
  • Retira cable y adaptadores; tapas ciegas en J10/P15/P16 que el panel no use.
  • Envía el acta Ethernet y puertos serie con los dos logs.

Anexo — notas de ingeniería

  • ethService(): RST alto → 150 ms → Ethernet.begin estático (prueba el chip y lee el PHY) → con cable, DHCP con 4 s (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.
  • Defaults del build: DHCP, y si no hay respuesta en 4 s estática 192.168.7.2/24 (-DETH_DHCP=0, -DETH_IP=192,168,1,50); servidor 192.168.7.1:5010, reintento 5 s (-DETH_SERVER_IP=, -DETH_SERVER_PORT=); activo solo con 5 V, nunca en batería ni por USB. IP y servidor son banderas de compilación: otro valor = otro .bin de ingeniería. No hay build de campo con Ethernet y el servidor htracker no escucha el espejo; la unidad reporta por 4G.
  • V5.6 añade R112 4.7 k pull-down en ETH_RST (PA15) y C90 4.7 µF / C91 10 nF. W5500 NO responde intermitente en V5.5: sospecha PA15 flotando antes de que el firmware tome el pin.
  • SC16IS752: 0x4D (A1 = A0 = GND, I²C), IRQ en PB8 (R81 10 k), 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 y R2IN a GND). En 0.6.0 no hay tráfico de aplicación y el protocolo con el equipo del cliente está por definir.
  • 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.

Historial de revisiones

Versión Fecha Cambios
1.0 2026-09-29 Primera versión: Ethernet con 0.6.0-eth y puertos serie (presencia, niveles, lazo y eco para 0.6.1).
1.1 2026-09-29 Edición breve; recibe de la configuración de la unidad la tabla de conexión, la regla de JP5 y los defaults de Ethernet.

Versiones anteriores en git.