239 lines
12 KiB
Markdown
239 lines
12 KiB
Markdown
---
|
||
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.2
|
||
status: ACTIVO
|
||
audience: técnicos de banco
|
||
---
|
||
|
||
# EinarBoard V5 — Prueba y flasheo por tarjeta
|
||
|
||
!!! 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. |
|
||
|
||
Versiones anteriores en git.
|