hbox-docs/docs/procedimientos/v5-prueba-y-flasheo.md

308 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "EinarBoard V5 — Prueba y flasheo por tarjeta"
tags: [project-drogheda, hardware, einarboard, v5, v5.5, v5.6, bringup, testing, flasheo, procedimiento]
date: 2026-09-15
project: Project Drogheda
author: Helgen Technologies
version: 1.3
status: ACTIVO
audience: técnicos de banco
---
# EinarBoard V5 — Prueba y flasheo por tarjeta
!!! warning "V5.6 y V5.7: su serigrafía trae otros designadores (T43, 22-oct)"
Este procedimiento usa los designadores de la V5.5 (y de la V4), los que trae su serigrafía. La V5.6 y la V5.7 llegan con los de T43 y varios nombres ahora son **otra pieza**: el USB-C de DFU es **J7** (aquí J11), el zócalo del módem es **J8/J9** (aquí J7/J8), el GX16 es **J15** (aquí P1) y el LTC4040 es **U14** (aquí U6). En una V5.6 o una V5.7, busca cada designador en la tabla de abajo antes de medir o conectar. Las notas marcadas «V5.6» ya van en la numeración nueva.
??? info "Designadores de este documento en la V5.6 y la V5.7 (61)"
| Aquí (V5.5) | V5.6 | V5.7 | Pieza |
|---|---|---|---|
| C90 | **C23** | **C23** | 4.7uF (en la V5.5: 10uF) |
| C101 | **C48** | **C48** | 22uF |
| C103 | **C1** | **C1** | 100uF/6.3V |
| D13 | **D8** | **D8** | SS34 |
| D14 | **D7** | **D7** | PESD5V0S1BA |
| D15 | **D5** | **D5** | PESD5V0S1BA |
| D16 | **D6** | **D6** | PESD5V0S1BA |
| D17 | **D10** | **D10** | LED C13 (blue) |
| D18 | **D12** | **D12** | LED PWR (green) |
| DB1 | **D17** | **D17** | LED |
| DB4 | **D14** | **D14** | LED |
| J7 | **J8** | **J8** | XBEE-ROW-1 (VCC/DOUT/DIN) |
| J8 | **J9** | **J9** | XBEE-ROW-2 |
| J9 | **J13** | **J13** | USB-C |
| J10 | **J6** | **J6** | HR911105A |
| J11 | **J7** | **J7** | USB-C DFU |
| JP2 | **JP3** | **JP3** | F2:LFP (2-3) (en la V5.5: F2:Li-ion) |
| JP3 | **JP5** | **JP5** | F1:0 |
| JP4 | **JP4** | **JP4** | F0:1 |
| MH4 | **MH3** | **MH3** | MountingHole_3.2mm_M3 (en la V5.5: MountingHole_3.2mm) |
| MOD1 | **MOD1** | **MOD1** | simpleRTK2B-Pro on UNO female headers |
| P1 | **J15** | **J15** | GX16-5 |
| P2 | **J16** | — | 5V-IN-SD15B05 |
| P4 | **J5** | **J5** | BATT-1S4P+NTC |
| P6 | **J3** | **J3** | FAN 2-pin |
| P8 | **J4** | **J4** | PANEL_LED |
| P11 | **J2** | **J2** | CUTOFF-SW |
| P14 | **J10** | **J10** | RGB_LED_EXT |
| Q2 | **Q1** | **Q1** | AO3400A |
| R20 | **R76** | — | 100k |
| R80 | **R29** | **R29** | 10k |
| R98 | **R35** | **R35** | 10k |
| R99 | **R12** | **R12** | 10k |
| R100 | **R39** | **R39** | 5.1k |
| R101 | **R38** | **R38** | 5.1k |
| R102 | **R40** | **R40** | 1k |
| RB1 | **R66** | **R66** | 120R |
| RB4 | **R55** | **R55** | 120R |
| Ren1 | **R80** | — | 100k |
| Ren2 | **R79** | — | 20k |
| SW1 | **SW2** | **SW2** | RESET |
| SW2 | **SW1** | **SW1** | BOOT0 |
| TP3 | **TP3** | **TP3** | SWDIO |
| TP4 | **TP5** | **TP5** | SWCLK |
| TP5 | **TP4** | **TP4** | NRST |
| TP6 | **TP1** | **TP1** | GND |
| TP7 | **TP2** | **TP2** | 3V3 |
| U2 | **U15** | — | MP1584EN |
| U3 | **U6** | **U6** | SHT40-AD1B |
| U4 | **U12** | **U12** | TMP102 |
| U6 | **U14** | **U14** | LTC4040EUFD |
| U10 | **U5** | **U5** | SC16IS752IPW |
| U11 | **U2** | **U2** | W5500 |
| U12 | **U9** | **U9** | MP1584EN |
| U13 | **U11** | **U11** | PCF8574 |
| U16 | **U3** | **U3** | STM32F411RET6 |
| U17 | **U4** | **U4** | TLV1117LV33 (en la V5.5: AMS1117-3.3) |
| Y1 | **Y1** | **Y1** | 25MHz |
| Y2 | **Y3** | **Y3** | 3.6864MHz (en la V5.5: 1.8432MHz) |
| Y3 | **Y2** | **Y2** | 25MHz |
| Y4 | **Y4** | **Y4** | 32.768kHz |
!!! abstract "Para quién · Cuándo · Tiempo · Necesitas"
- Para quién: técnicos de banco.
- Cuándo: al recibir cada tarjeta V5.5 o V5.6 desnuda, antes de montar módulos. Siguiente paso: [Módulos RTK y 4G](v5-modulos-integracion.md).
- Tiempo: 15–20 min por tarjeta.
- Necesitas: multímetro, fuente de banco 0–30 V con límite de corriente, cable USB-C con datos, laptop con STM32CubeProgrammer o `dfu-util`, jumper 2.54 mm para P11, lupa, el binario V5 vigente de [Descargas](../descargas/index.md) y el [acta de tarjeta V5](../formularios/v5.html).
!!! warning "Reglas"
1. Flashea solo el binario V5 de [Descargas](../descargas/index.md). `blackpillrtkcode_v3` (v3.0.3) maneja PB12–PB15 como LEDs de batería; en la V5 esos pines son el SPI del W5500.
2. Sin batería en P4, sin simpleRTK2B en MOD1 y sin módem en J7/J8.
3. Fuente siempre con límite de corriente. Si llega al límite o algo se calienta: apaga, marca FALLA y pasa a la siguiente tarjeta.
## Referencias en la tarjeta
| Ref. | Qué es | Uso |
|---|---|---|
| J11 | USB-C DFU (junto a SW1/SW2 y J10) | Alimentar el MCU y flashear |
| J9 | USB-C del módem | No se usa aquí |
| SW1 / SW2 | RESET / BOOT0 | Reinicio y modo DFU |
| TP7 / TP6 | 3V3 / GND | Riel de 3.3 V |
| TP3 / TP4 / TP5 | SWDIO / SWCLK / NRST | Solo si ingeniería pide ST-Link |
| P2 | Entrada 5 V (SD-15B) | Riel de 5 V |
| P1 | Entrada 24 V (GX16): pin 1 = +24 V, pin 2 = GND | Buck del ventilador |
| P11 | CUTOFF-SW (2 pines) | Puentear para pasar MAIN5V → SYS5V |
| P6 | Ventilador: pin 1 = +5V_FAN, pin 2 = retorno conmutado | Salida del buck (pin 1 contra GND) |
| MOD1 | Zócalo UNO del simpleRTK2B, pin "5V" | La etapa RTK debe arrancar apagada |
| D18 / D17 | LED verde PWR / LED azul C13 | 3.3 V presente / controlado por firmware |
| U17 | AMS1117 3.3 V | Temperatura al tacto |
| Y2 | Cristal 3.6864 MHz (marcado `3.6864` o `36.864`) | Visual |
## 1. Inspección visual (sin energía, 3 min)
- [ ] Sin puentes de soldadura en U16 (MCU), U11 (W5500), U10 (SC16IS752) y U6 (LTC4040).
- [ ] Y2 marcado `3.6864` o `36.864`; Y1 y Y3 `25.000`; Y4 el pequeño de 32.768 kHz. Y2 marcado `1.8432`: anota y avisa a ingeniería.
- [ ] SW1 y SW2 presentes y con clic.
- [ ] J11, J9 y J10 (RJ45) asentados, sin pines doblados.
- [ ] JP2, JP3 y JP4 presentes; no cambies su posición.
- [ ] Sin componentes faltantes ni marcas de quemado.
## 2. Cortos a tierra (sin energía, 2 min)
Multímetro en ohms, no en modo continuidad. Punta negra en TP6. Unos cientos de ohms que suben es normal (capacitores cargando); una lectura fija de 0–20 Ω es corto.
| Punto | Riel | Esperado | < 100 Ω |
|---|---|---|---|
| TP7 | 3V3 | > 1 kΩ | FALLA: corto en 3.3 V |
| P2 pin 1 | VEH5V | > 1 kΩ | FALLA: corto en entrada 5 V |
| P11 pin 1 | MAIN5V | > 1 kΩ | FALLA: corto en 5 V del sistema |
| P1 pin 1 | 24V_IN | > 10 kΩ | FALLA: corto en 24 V |
| MOD1 pin "5V" | SW_5V | > 1 kΩ | FALLA |
## 3. Riel de 3.3 V por USB (J11, 3 min)
El USB en J11 energiza solo el MCU y la lógica de 3.3 V; el 5 V del sistema queda apagado.
1. Conecta USB-C en J11 a la laptop o a un cargador.
2. Mide:
| Punto | Esperado |
|---|---|
| D18 | Encendido |
| TP7 contra TP6 | 3.20–3.40 V |
| U17 al tacto tras 1 min | Tibio. Si quema: FALLA |
| D17 | Apagado o fijo (chip virgen) |
3. D18 apagado o TP7 < 3.0 V: desconecta y marca FALLA (3V3).
4. Deja el USB conectado.
## 4. Rieles de 5 V y 24 V con fuente (5 min)
Con el MCU virgen sus pines quedan en alta impedancia y la etapa RTK debe quedar apagada; eso es lo que se verifica.
### 4a. 5 V (P2)
1. Fuente a 5.0 V, límite 500 mA, salida apagada.
2. Jumper en P11.
3. Fuente a P2 (pin 1 = +5 V, pin 2 = GND). El USB puede quedarse en J11.
4. Enciende y mide:
| Punto | Esperado |
|---|---|
| Corriente | < 300 mA (típico 100–250 mA) |
| P11 pin 1 (MAIN5V) | 4.8–5.1 V |
| P11 pin 2 (SYS5V) | 4.8–5.1 V |
| TP7 | 3.20–3.40 V |
| MOD1 pin "5V" (SW_5V) | 0 V. Con 5 V: FALLA (la etapa RTK no arranca apagada) |
| U6 y U12 al tacto | Tibios |
5. Apaga la fuente y desconecta P2.
### 4b. 24 V → buck del ventilador (P1)
1. Fuente a 24.0 V, límite 200 mA, salida apagada.
2. Fuente a P1 (pin 1 = +24 V, pin 2 = GND). Pin 3 (ignición) sin conectar.
3. Enciende y mide:
| Punto | Esperado |
|---|---|
| Corriente | < 50 mA (sin ventilador) |
| P6 pin 1 contra TP6 | 4.9–5.1 V (no midas contra P6 pin 2: es el lado conmutado) |
| U2 al tacto | Frío o tibio |
4. Apaga y desconecta P1. El jumper de P11 puede quedarse.
Valor fuera de rango: marca FALLA con la sección (4a o 4b) y el valor medido.
## 5. Flasheo por USB DFU (J11, 5 min)
Solo tarjetas que pasaron 1–4. El firmware de campo se flashea igual. Verifica el SHA-256 del binario antes ([Descargas](../descargas/index.md)).
### 5a. Modo DFU
1. Solo el USB en J11 (nada en P1/P2).
2. Mantén SW2 (BOOT0).
3. Pulsa y suelta SW1 (RESET).
4. Suelta SW2.
5. La laptop detecta `STM32 BOOTLOADER` (ID `0483:DF11`).
Si no aparece: cambia el cable (muchos son solo de carga) y repite con SW2 presionado al soltar SW1. El chip virgen solo entra al bootloader con esta secuencia.
### 5b. STM32CubeProgrammer
1. Selector de conexión: USB. Refresca hasta ver `USB1` y pulsa Connect.
2. Pestaña Erasing & Programming.
3. File path: el `.bin` descargado. Start address: `0x08000000`.
4. Marca Verify programming y Run after programming.
5. Start Programming. Espera "File download complete" y "Verify… successful".
6. Disconnect.
### 5c. `dfu-util` (macOS/Linux)
```bash
dfu-util -l # debe listar [0483:df11]
dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_X.Y.Z.bin
```
### 5d. Verificación
1. Abre un terminal serie a 115200 baud (CoolTerm, `screen` o el monitor de Arduino) y pulsa SW1.
2. En los primeros 5 s:
| Punto | Esperado |
|---|---|
| D17 y LED de panel en P8 | Parpadean a 1 Hz |
| DB1 → DB4 | Encienden en secuencia una vez y se apagan; luego R, G, B en P14 si hay LED RGB |
| Laptop | Puerto serie nuevo (`STMicroelectronics Virtual COM Port` / `usbmodem…`) |
| Terminal | Encabezado `hbox-v5-bringup X.Y.Z` con la versión flasheada (otra versión: reflashea), líneas `[PASS]` y al final `>>> BOARD OK` |
3. Si abriste el terminal tarde, teclea `r`: repite las pruebas y la secuencia de LEDs.
4. Reporte esperado:
```
[PASS] CLOCK_HSE SYSCLK=96000000 Hz HSE_RDY=1 PLL_SRC=HSE ← cristal Y3 y USB
[PASS] LSE_Y4 Y4 32.768k LSERDY=1 ← cristal Y4
[PASS] I2C PCF8574 U13 @0x20 ACK
[PASS] I2C SHT40 U3 @0x44 ACK
[PASS] I2C TMP102 U4 @0x48 ACK
[PASS] I2C SC16IS752 U10 @0x4D ACK
[PASS] TMP102 TMP102 27.50 C
[PASS] SHT40 SHT40 27.8 C 45.0 %RH
[PASS] SC16IS752 0x4D ACK, SPR rd=0xA5 (exp A5), LSR=0x60
[PASS] GAUGE_WALK visual — technician confirms ← confirmas que viste DB1→DB4
[PASS] ADC vbat=0.00 v5=0.00 ntc=..C mcu=..C ← vbat y v5 en 0 con solo USB
[PASS] DIN ign=0 chrg=.. fault=.. ser_irq=1 eth_int=..
---- RESULT: 12 PASS / 0 FAIL ----
>>> BOARD OK
```
Después sale una línea `STAT …` cada 2 s. Sin módulos ni batería, la etapa RTK y el cargador no encienden.
5. Cualquier `[FAIL]`: anota la línea completa y marca FALLA (POST). LED azul sin parpadear: repite 5a–5b una vez; si vuelve a fallar, FALLA (FLASH).
## 6. Cierre
- [ ] Desconecta el USB.
- [ ] Etiqueta la tarjeta con su serie (V5-01 … V5-15) y la fecha, cerca de MH4, sin tapar serigrafía.
- [ ] Llena el [acta de tarjeta V5](../formularios/v5.html).
- [ ] Guarda en bolsa antiestática. Las FALLA van en bolsa aparte con nota del punto que falló.
## 7. Hoja de respaldo en papel
El registro oficial es el acta. Anota el valor medido cuando esté fuera de rango (ej. "TP7 = 2.9 V").
| Tarjeta | Visual (1) | Cortos (2) | 3V3 USB (3) | 5 V (4a) | 24 V (4b) | DFU (5a) | Flash (5b) | Post-flash (5d) | OK / FALLA | Técnico | Fecha |
|---|---|---|---|---|---|---|---|---|---|---|---|
| V5-01 | | | | | | | | | | | |
| V5-02 | | | | | | | | | | | |
| V5-03 | | | | | | | | | | | |
| V5-04 | | | | | | | | | | | |
| V5-05 | | | | | | | | | | | |
| V5-06 | | | | | | | | | | | |
| V5-07 | | | | | | | | | | | |
| V5-08 | | | | | | | | | | | |
| V5-09 | | | | | | | | | | | |
| V5-10 | | | | | | | | | | | |
| V5-11 | | | | | | | | | | | |
| V5-12 | | | | | | | | | | | |
| V5-13 | | | | | | | | | | | |
| V5-14 | | | | | | | | | | | |
| V5-15 | | | | | | | | | | | |
Conectores y LEDs: [manual V5](../manuales/manual-tarjeta-V5.md) · valores: [hoja de datos V5.6](../hardware/v56-datasheet.md) · [pinout V5.6](../hardware/v56-pinout.md).
## Anexo — notas de ingeniería
Verificado contra `hbox-watchdog-v5.kicad_pcb` / `.kicad_sch` (netlist, 15-sep-2026):
- Alimentación por J11: VBUS → D13 (SS34) → `/LDO_IN` → U17 AMS1117 → `/3V3`. `/SYS5V` apagado, así que U12 y `/3V3_ETH` (W5500) también. R100/R101 (5.1 k en CC) presentes: un cable C-a-C entrega VBUS.
- DFU: BOOT0 = pin 60 de U16, pull-down R98 10 k, SW2 a 3V3. `/BOOT1_STRAP` (PB2, pin 28) a GND por R99 10 k. HSE = Y3 25 MHz en PH0/PH1 (el bootloader ROM lo requiere, AN2606). USB en PA11/PA12 (pines 44/45) con ESD D14/D15.
- SWD: TP3 SWDIO (PA13), TP4 SWCLK (PA14), TP5 NRST, TP6 GND, TP7 3V3.
- Única colisión v3.0.3 ↔ v5: `PIN_BATLED1..4` = PB12–PB15 (pines 33–36) = `/ETH_CS`, `/ETH_SCK`, `/ETH_MISO`, `/ETH_MOSI` (SPI2 del W5500); PB14 es salida del W5500. En v5 el indicador de batería está en U13 PCF8574 (A0–A2 a GND → 0x20, P0–P3 → RB1–RB4 120 R → LEDs). El resto del mapa v3 coincide: PA0 BAT_SENSE, PA1 PWR_CTRL, PA2/PA3 GNSS, PA4 5V_SENSE, PA5 IGN_SENSE, PA6 FAN_PWM, PA8 CHRG_EN, PA9/PA10 USART1, PB0 EXT_LED, PB1 NTC, PB3 CHRG_STAT, PB4 CHRG_FAULT, PB5 BYP_CTRL, PB6/PB7 I²C1, PC13 LED (activo bajo, R102 1 k a 3V3), PB10 tach = NC.
- Pines v5 que v3 no conoce: PC0 `/ETH_INT`, PA15 `/ETH_RST` (sin pull-up: flota si el MCU no lo maneja), PB8 `/SER_IRQ`, PC14/PC15 LSE (Y4). `/SER_RSTn` tiene pull-up R80 10 k.
- Cristales (BOM = maestro): Y2 = C2238 X49SM36864MSD2SC-1 = 3.6864 MHz para el SC16IS752 (`XTAL_FREQ 3686400`); "1.8432MHz" en esquemático/BOM es error de etiqueta. Y1 (W5500) y Y3 (HSE) = C14872 X49SM25MSD2SC = 25 MHz, confirmados contra el BOM de JLCPCB. Y4 = 32.768 kHz.
- KiCad vs tarjetas fabricadas: el `.kicad_pcb` vivo tiene 35 huellas movidas después del pedido (commits 24-ago y 07-sep: zona Ethernet/DFU J10/U11/U12/Y1/C90–C103/J11, D14–D16, R20, C101); la netlist no cambió. Referencia física del lote: `production/HBOX_v5_PROD.zip` (22-ago). En las tarjetas recibidas D14–D16 están junto al MCU, no junto a J11.
- U2 se habilita solo: `/EN_FAN` = divisor Ren1 100 k / Ren2 20 k desde `/24V` (≈4 V con 24 V), sin MCU; por eso 4b vale con chip virgen. `/FAN_RET` es el lado bajo conmutado por Q2 (gate en PA6): abierto con MCU virgen.
- Compilación v5: `STMicroelectronics:stm32:GenF4:pnum=GENERIC_F411RETX` (no `BLACKPILL_F411CE`), `HSE_VALUE=25000000` con `SystemClock_Config` explícito en HSE para que el USB CDC tenga reloj exacto.
## Historial de revisiones
| Versión | Fecha | Cambios |
|---|---|---|
| 1.0 | 2026-09-15 | Primera versión (lote de 15, firmware 0.5.1). |
| 1.1 | 2026-09-29 | Encabezado uniforme, nota de binario vigente, enlaces a acta y manuales. |
| 1.2 | 2026-09-29 | Edición breve: sin tabla de material duplicada; binario genérico `X.Y.Z` en lugar de 0.5.1. |
| 1.3 | 2026-10-22 | Aviso y tabla de equivalencias para la V5.6 y la V5.7, que traen los designadores de T43 (22-oct). El cuerpo conserva la numeración de la V5.5. |
Versiones anteriores en git.