14 KiB
| title | tags | project | author | date | version | status | audience | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| HBOX V5 — Prueba de banco: Ethernet y puertos serie |
|
Project Drogheda | Helgen Technologies | 2026-09-29 | 1.3 | 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.1-eth.bin (lo compila ingeniería con -DENABLE_ETH=1 y entrega su SHA-256; no uses el 0.6.0-eth: con cable directo y sin DHCP se bloqueaba 4–5 s cada 5 s) ; 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.1-eth)
A1. Laptop (una vez)
-
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.
-
Firewall: permite entradas a 5010/TCP o desactívalo durante la prueba.
-
Deja escuchando:
nc -lk 5010 # macOS / Linux ncat -lk 5010 # Windows (Nmap)
A2. Flasheo del build de banco
- DFU por J11, solo USB, sin 24 V (flasheo §5).
dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.1-eth.bino STM32CubeProgrammer.- Terminal en J11: primera línea
hbox-v5-bringup 0.6.1-eth; la ayuda (h) listaE=Ethernet on/off.
El build -eth es solo de banco: al terminar reflashea el binario V5 vigente de Descargas (hoy hbox-v5-bringup_0.6.0.bin; ver C).
A3. Secuencia
-
Cable entre J10 y la laptop. Sin 24 V los LEDs de J10 quedan apagados (correcto: el USB no alimenta el W5500).
-
Energiza 24 V + ignición (P11 en ON). En los primeros ~15 s:
Paso Consola Significa a >>> BOARD OK·EVT … STACK ON reason=autoTarjeta 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 cableEl 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) oETH 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:5010Listo para conectar f EVT ETH conectado a 192.168.7.1:5010 (n=1): NMEA + $PHLG + $PHEV en espejoSocket abierto -
En
ncllega primero la identidad y luego el flujo.$PHIDse repite cada 5 min; con la etapa apagada o sin simpleRTK2B solo llegan$PHLG/$PHEV.$PHID,<UID 24 hex>,0.6.1-eth,EinarBoard v5 (HBOX v5),02:48:42:xx:xx:xx,<up_s>*CS $PHLG,0.6.1-eth,RUN,… $GNGGA,… $GNRMC,… -
s:STAT … eth=CONECTADO ip=192.168.7.2 lineas=N bytes=… drop=0 conn=1.lineassube;dropqueda en 0. -
Cable: desconecta el RJ45 10 s →
EVT ETH cable desconectado — esperando enlace; al reconectar,enlace ARRIBAyconectado (n=2)en < 10 s. -
Servidor: cierra
nc(Ctrl-C) →EVT ETH servidor desconectado … reintento en 5 s; relanzanc -lk 5010y reconecta solo. -
Tecla
E→ETH OFF (operador), LEDs de J10 apagados;Eotra vez repite b–f. -
Sin 5 V: quita los 24 V con batería puesta →
EVT ETH OFF (sin_5V): W5500 en resetyeth=off. Al volver los 24 V, reset del MCU (0.5.9+) y la secuencia completa. -
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 y 0.6.1 (y sus -eth) |
Presencia del SC16IS752 y niveles estáticos | B1, B2 |
| Build con lazo serie (planeado; no es 0.6.1) | 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 (build con lazo, planeado)
No cablees P15 con P16: son eléctricamente distintos. El lazo une TX→RX de cada canal dentro del SC16IS752 (MCR bit 4), sin cable: tecla de consola del build con lazo → [PASS] SER_LOOP_A / [PASS] SER_LOOP_B. Prueba U10 y el cristal, no los transceptores ni las clemas.
B4. Eco externo con adaptadores (build con lazo, 9600 8N1)
En modo eco, lo que entra por un puerto sale por el mismo.
RS-485 (P15):
- 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.
- A → P15.1, B → P15.2, GND → P15.3. Par trenzado, ≤ 3 m.
- Terminal en el adaptador a 9600 8N1, sin eco local. Envía
HELGEN-485 0123456789\r\ndiez veces (o 1 kB). - Pasa con 10/10 líneas idénticas.
- Sin respuesta: intercambia A y B (muchos adaptadores rotulan D+/D− al revés); si sigue, vuelve a B2.
RS-232 (P16):
- 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.
- Terminal a 9600 8N1. Envía
HELGEN-232 0123456789\r\ndiez veces. - 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 |
build con lazo |
| Eco RS-485 / RS-232 | 10/10 idénticas a 9600 8N1 | build con lazo |
Hasta que salga el build con lazo 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 ese build.
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 el binario V5 vigente de Descargas (hoy
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():RSTalto → 150 ms →Ethernet.beginestá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. Desde 0.6.1-eth: nuncaEthernet.maintain()tras un connect fallido (sin lease, la librería re-corría el DHCP entero: 4–5 s bloqueado cada 5 s); renovación del lease una vez por minuto solo si hubo DHCP; el cargador se pausa durante el DHCP; W5500 ausente: reintento cada 10 min tras 3 fallos. Escrituras no bloqueantes (availableForWrite); descartes endrop=. MAC02: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.binde 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 respondeintermitente 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 enSER_DEA); canal B → U15 MAX3232 (canal 2 sin usar: T2IN y R2IN a GND). En 0.6.0 y 0.6.1 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.1RS485_A, P15.2RS485_B, P15.3 GND; JP5.1RS485_T(R82 120 Ω → A), JP5.2RS485_B; P16.1RS232_TX(T1OUT), P16.2RS232_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. |
| 1.2 | 2026-09-29 | Build de banco 0.6.1-eth (el 0.6.0-eth se bloqueaba sin DHCP). Lazo y eco serie: build posterior (0.6.1 salió como arreglo del cargador). |
| 1.3 | 2026-09-29 | Binario de campo vigente otra vez 0.6.0 (0.6.1 retirada). El build de banco sigue siendo 0.6.1-eth: Ethernet funciona, pero su $PHLG por 4G no llega al monitor. |
Versiones anteriores en git.