14 KiB
| 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 | 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)
- 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.)
- Firewall de la laptop: permitir entradas al puerto 5010/TCP (o desactivarlo durante la prueba).
- Abrir un terminal y dejar escuchando:
nc -lk 5010 # macOS / Linux
ncat -lk 5010 # Windows (Nmap)
A2. Flashear el build de banco
- DFU en J11 (mantener SW2, pulsar y soltar SW1, soltar SW2) — igual que el procedimiento de flasheo §5. Solo USB, sin 24 V.
dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.0-eth.bin(o STM32CubeProgrammer).- Terminal serie en J11: la primera línea debe decir
hbox-v5-bringup 0.6.0-eth. La ayuda (h) debe listar la teclaE=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
- 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).
- 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 |
- En la ventana de
ncdebe 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.)
- Teclear
s:STAT … eth=CONECTADO ip=192.168.7.2 lineas=N bytes=… drop=0 conn=1.lineasdebe subir;dropdebe quedarse en 0. - Prueba de cable: desconectar el RJ45 10 s →
EVT ETH cable desconectado — esperando enlace; reconectar → vuelve aenlace ARRIBAyconectado (n=2)en < 10 s. - Prueba de servidor: cerrar
nc(Ctrl-C) →EVT ETH servidor desconectado … reintento en 5 s; volver a lanzarnc -lk 5010→ reconecta solo. - Tecla
E:E→ETH OFF (operador), LEDs de J10 apagados;Eotra vez → toda la secuencia b–f de nuevo. - Sin 5 V: quitar los 24 V (con batería puesta) →
EVT ETH OFF (sin_5V): W5500 en resetySTAT … eth=off. Volver los 24 V → reset del MCU (0.5.9+) y la secuencia completa otra vez. - 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):
- 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.
- Adaptador: A → P15.1, B → P15.2, GND → P15.3. Par trenzado, ≤ 3 m en banco.
- Terminal en el puerto del adaptador a 9600 8N1, eco local apagado. Enviar
HELGEN-485 0123456789\r\ndiez veces (o un archivo de 1 kB). - Esperado: cada línea regresa idéntica. 10/10 sin caracteres perdidos = PASA.
- Si no vuelve nada: intercambiar A y B (muchos adaptadores etiquetan D+/D− al revés). Si sigue sin nada: B2.
RS-232 (P16):
- 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.)
- Terminal en el adaptador a 9600 8N1. Enviar
HELGEN-232 0123456789\r\ndiez veces. - 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()—RSTalto → 150 ms →Ethernet.beginestá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 endrop=. MAC02: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 conW5500 NO respondede 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 enSER_DEA), canal B → U15 MAX3232 (canal 2 sin usar: T2IN a GND, R2IN a GND). - 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 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). |