Drogheda/03-Architecture-Hardware/2026-09-27_Drogheda_EinarBoard-V5.6_ECO_ES_v1.0.md

140 lines
14 KiB
Markdown
Raw 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.

# EinarBoard V5.6 — ECO (orden de cambio de ingeniería) para el siguiente lote
**Fecha:** 2026-09-27 · **Base:** `hbox-watchdog-v5` (V5.5, 15 pzas 22-ago, netlist verificada) · **Autor:** Claude para Leo / Michelle (PCB) · **Estado:** propuesta para aprobar **antes de pedir** esta semana.
Arquitectura que NO cambia: simpleRTK2B en zócalo UNO (MOD1) + 4G NTRIP Master en zócalo XBee (J7/J8), STM32F411RET6, LTC4040 con paquete 1S4P, W5500, SC16IS752, mismo contorno 140×100 mm, mismo stackup S-G-P-S.
## 0. Qué tiene que poder hacer la V5.6 que la V5.5 no puede
| # | Requisito | Por qué la V5.5 no lo hace (evidencia de banco 26/27-sep) |
|---|---|---|
| R1 | **Ciclo de 10 min en batería**: apagar todo, despertar, registrar el módem, reportar, apagar | El módem no arranca en frío sobre el boost: F9P y módem arrancan juntos por Q1 sobre 4.6 V; U7 MP1584 (mín. 4.5 V) cae en UVLO con la ráfaga de arranque; el PMIC del módem aborta sin reintentar. Solo SW4G1 lo revive. |
| R2 | **Control del módem desde el MCU**: encender/apagar, resetear, saber si está vivo | `MODEM_RST` solo llega a SW4G1; `MODEM_LED` solo a D4G1; el MCU no ve nada del módem. |
| R3 | **Cargar la batería con la fuente SD-15B (3 A)** sin bucles de brown-out | `RS1` 8 mΩ → límite de entrada 3.1 A > 3 A de la fuente; `R50` 825 Ω → 2.4 A de carga. La fuente se pliega antes de que el LTC4040 recorte al cargador (incidente 10-ago; hoy lo tapa el gobernador 0.6.0 por firmware). |
| R4 | **Gestión térmica** en puertos a ~45 °C | Ventana de carga del LTC4040 con `RNTB` 10 k pausa en caliente a ~40–42 °C: el paquete no se llena de día. Cobre del boost (`SW_BAT` 0.3 mm) se calienta. Sin temperatura del módem en telemetría. |
| R5 | **Lista EMC del segundo lote** (auditoría 22-ago) | `SW_BAT` 0.3 mm, `BAT_PLUS` 0.3–0.5 mm, lazos Cin 5–8.5 mm, divisor FB del ventilador a 25 mm, ESD DFU a 41 mm de J11, J9 sin ESD. |
## A. Alimentación del módem — riel propio con margen y enable desde el MCU (R1)
| Cambio | Detalle |
|---|---|
| **U7: MP1584EN → AP64350SP-13** | Buck 3.5 A, **Vin 3.8–40 V** (UVLO 1 V por debajo del riel de batería, contra 0.1 V hoy), SO-8-EP (mismo tamaño que el MP1584, **otro pinout** → re-layout del bloque). LCSC **C2071691** (~US$0.90, 14 900 en stock). FB = 0.8 V igual que el MP1584 → **R60 100k / R61 31.6k se quedan** (3.33 V). |
| **Entrada de U7: de `SW_5V` a `SYS5V`** | El módem ya no cuelga de Q1 ni de F1: tiene su propio interruptor (EN). Sigue detrás de P11 (cable de corte) para que el corte físico siga apagando todo. Cin: 2 × 22 µF 0805 + 10 µF 1206 pegados a VIN (lazo < 3 mm). |
| **EN de U7 = `MODEM_EN` (MCU PC3, pad 11)** | 10 k en serie desde PC3; **100 k a GND** en el pin EN para que el módem esté APAGADO con el MCU en reset/DFU (mismo criterio que PWR_CTRL). |
| **Salida 3V3_MODEM** | 2 × 22 µF 0805 (C41 + 1 nuevo) + **C43 100 µF electrolítico → 220 µF/16 V polímero 6.3×7.7** (LCSC **C881921**, mismo can): las ráfagas LTE de 2 A las absorbe el condensador, no el riel. |
| **L7 10 µH/2 A → 4.7 µH, Isat ≥ 4 A**, misma huella 8×8 (Bourns SRU8028-4R7Y o equiv.) | Con 2 A de ráfaga el 10 µH/2 A satura. |
| **C3 47 µF electrolítico (SW_5V) → 220 µF/16 V polímero** (C881921) | Riel del F9P: más colchón al arrancar sobre el boost. |
| Opcional **R53 499k → 511k** (LCSC C188257) → boost 4.79 → **4.89 V** | LTC4040 permite 3.5–5.0 V (datasheet confirmada 27-sep). No es necesario con el AP64350; dejar 499k salvo que el banco muestre caídas. **No subir a 523k** (4.98 V, tolerancia del 0.8 V ±2.5 % roza el máximo). |
| Opcional U12 (buck 3V3_ETH, también MP1584 desde SYS5V) → AP64350 | Mismo problema de UVLO, pero Ethernet no se usa en batería. Solo si se quiere una sola referencia de buck. |
**Secuencia que habilita esto (firmware V5.6):** despertar → `PWR_CTRL` alto (F9P arranca, riel se asienta) → 3–5 s → `MODEM_EN` alto (el módem arranca solo, sobre riel estable, con 1 V de margen de UVLO) → registro/NTRIP → reporte → `MODEM_EN` bajo → `PWR_CTRL` bajo. El módem se puede apagar y encender **solo**, sin tocar al F9P: eso es también el «reset duro del módem» que hoy no existe.
## B. Líneas del módem al MCU (R2)
Pines libres del F411 (netlist V5: pads sin conexión): PC1 (9), PC2 (10), PC3 (11), PC4 (24), PC5 (25), PC6 (37), PC7 (38), PC8–PC12, PD2, PB9, PB10, PA7.
| Neta nueva | MCU | Desde | Resistencia | Uso |
|---|---|---|---|---|
| `MODEM_EN` | **PC3** (pad 11) | U7 EN | 10 k serie + 100 k a GND en EN | Encender/apagar el módem (A). |
| `MODEM_RST_MCU` | **PC1** (pad 9) | `MODEM_RST` (J7.5, con SW4G1 en paralelo) | **1 k** serie | MCU en open-drain: baja 500 ms = pulsar SW4G1. SW4G1 se queda. |
| `MODEM_LED_MCU` | **PC2** (pad 10) | `MODEM_LED` (J8.8, antes de Rmled1) | 10 k serie | Leer el patrón del LED del módem (fijo = arrancando, rápido = normal, lento = comandos, irregular = conectando) → «módem vivo» sin adivinar. D4G1 se queda. |
| `MODEM_ON_SLEEP` | **PC4** (pad 24) | J8.3 (XBee pin 13) | 10 k serie, **DNP** si el módulo no lo usa | Seguro barato: si ArduSimple saca ON/SLEEP, lo tenemos. |
| `MODEM_ASSOC` | **PC5** (pad 25) | J8.5 (XBee pin 15) | 10 k serie, **DNP** | Ídem (ASSOC). |
| `RTCM_TAP` | **PC7 = USART6_RX** (pad 38) | `DOUT_4G` (J7.2 → MOD1.17, TX del módem hacia el F9P) | **1 k** serie | El MCU **cuenta bytes RTCM** que el módem entrega al F9P: «módem registrado y NTRIP fluyendo» medido, no inferido. Solo escucha (entrada alta impedancia en paralelo con RX2 del F9P). |
Todas son nets nuevas de señal 3.3 V, sin condensadores; ruteo corto por Top/In2. `MODEM_RST` y `MODEM_LED` ya existen como nets: solo se les cuelga la resistencia hacia el MCU.
## C. Cargador con la SD-15B (R3)
| Cambio | Valor | Efecto |
|---|---|---|
| **RS1 8 mΩ → 10 mΩ** 1206 1 W 1 % (LCSC **C105362**, FMF06FTHR010) | Límite de entrada 25 mV / 10 mΩ = **2.5 A** | Queda **por debajo** de los 3 A de la fuente: el LTC4040 recorta al cargador antes de que la SD-15B se pliegue. Fin del bucle 10-ago por hardware; el gobernador 0.6.0 queda como segunda capa. |
| **R50 825 Ω → 1.5 kΩ** 0603 1 % (LCSC **C22843**, básica) | I_chg = 2000 / 1500 = **1.33 A** | 12 Ah se llena en un turno (~9 h desde vacío) sin pedirle 2.4 A a una fuente de 3 A que además alimenta la etapa. El safety timer (4.25 h Li-ion) se rearma por firmware (pulso 0.6.0). |
| P2 / SD-15B | Sin cambio (5.3 V) | Con 2.5 A de límite y 1.33 A de carga, la fuente ya no se satura ni con ráfaga LTE. |
## D. Temperatura (R4)
| Cambio | Detalle | Decisión de Leo |
|---|---|---|
| **D1 — Ventana de carga del LTC4040 (`RNTB`)** | Con `RNTB` 10 k y NTC 10 k B3380/B3950 el LTC4040 **pausa la carga por encima de ~40–42 °C** (umbral caliente 34.9 % de Vin). En puerto a 45 °C el paquete no se llena de día. Dos caminos: **(a)** paquete **LiFePO4 alta temperatura 26650** (carga 0…+60 °C, ≥2000 ciclos) + `JP2` puenteado 2-3 (F2 bajo = LFP, flotación 3.50 V) + **`RNTB` 5.6 k** con NTC **B3380** (ventana +10…+60 °C); **(b)** seguir con Li-ion 18650 y aceptar la pausa (o `RNTB` 6.6 k = pausa a 55 °C, que castiga la celda). | **Hay que decidir la química**: la PCB no cambia (JP2 es puente de soldadura, RNTB es valor de BOM), pero el paquete 26650 cambia caja y BOM mecánica. Recomendación: **(a)**. Si no se decide esta semana, pedir la PCB igual y fijar RNTB/JP2 en ensamble. |
| **D2 — Cobre del boost** (= EMC #1 y #2) | `SW_BAT` ≥ 2 mm polígono, `BAT_PLUS` ≥ 1.5 mm + granja de vías, EP de U6 con ≥ 9 vías térmicas a In1. | Obligatorio. |
| **D3 — Sensor de temperatura del módem: U4b TMP102 (0x49)** | Segundo TMP102 SOT-563 (misma pieza que U4), ADD0 a 3V3 → dirección 0x49, colocado entre J7/J8 y el módem. El módem es la fuente de calor que sube con la ráfaga LTE; hoy `tair` (SHT40) está en la tarjeta, lejos. | Recomendado (US$0.50). Firmware: campo nuevo en `$PHLG` (append). |
| **D4 — Ventilador** | Sin cambio de hardware (2 hilos, Q2 en PA6 = TIM3_CH1: el PWM real es firmware). El buck del ventilador U2 es solo de 24 V: en batería no hay ventilador — con el ciclo de 10 min el calor en batería es bajo. | Firmware. |
| **D5 — `P12` NTC (PB1)** | Dos tarjetas con termistor conectado leen `n/c` (pendiente desde 19-sep). Antes de rediseñar, medir V en P12-1 con el NTC puesto; si el divisor R(10k a 3V3) está bien, es cable/conector. | Verificar en banco antes del pedido. |
## E. Lista EMC del segundo lote (auditoría 22-ago) (R5)
1. 🔴 `SW_BAT` U6-SW → L6: polígono ≥ 2 mm F.Cu (hoy 0.3 mm × 15 mm, ~4 A en respaldo).
2. 🔴 `BAT_PLUS` últimos 20 mm a U6: ≥ 1.5 mm + vías (hoy 0.3–0.5 mm).
3. 🟠 Divisor FB del buck del ventilador (R20/R21) al pin 4 de U2 (hoy a 25 mm, `FB_FAN` 60 mm y rozando `SW_FAN`).
4. 🟠 Lazos Cin de los bucks < 3 mm (U2→C11 6.3, U7→Cin nuevo, U12→C101 8.5).
5. 🟠 ESD DFU D14/D15/D16 junto a J11 (hoy a 41 mm, en el MCU). **J9 (USB del módem): añadir USBLC6-2SC6** en el conector.
6. 🟡 Cristales ≤ 5 mm de sus ICs (Y2 del SC16IS752, Y3/Y4 del MCU); par RX Ethernet acoplado; rellenar las 8 celdas de 20 mm sin vías de costura (bajo MOD1).
## F. Varios de robustez (hallazgos 26/27-sep)
| Cambio | Por qué |
|---|---|
| **F1 PPTC 3 A 1812 → PPTC de menor resistencia** (≥ 4 A hold, ≤ 20 mΩ, p. ej. 1812 6 A) o **0 Ω + protección en Q1** | Con 3 A de hold el PPTC mete 50–100 mΩ en serie con el riel del F9P: 100–200 mV de caída en cada ráfaga, justo sobre el boost. El módem ya no pasa por F1 (A). |
| **P11 con puente de soldadura en paralelo** (`JP_CUT`, abierto por defecto) | Unidades sin cable de corte no dependen de un puente volante en el JST. |
| Serigrafía: `SW4G1 = RESET MÓDEM`, `SW1 = RESET MCU`, `JP2 = F2 (Li-ion / LFP)` | Confusiones de banco esta semana. |
| `ETH_RST` (PA15) con **pull-down 100 k** | Hoy flota cuando el MCU está en reset: el W5500 sale de reset y gasta 130 mA en batería durante los ~4 s del reset. |
## G. Tabla BOM delta
| Ref | V5.5 | V5.6 | LCSC | Nota |
|---|---|---|---|---|
| U7 | MP1584EN | **AP64350SP-13** | C2071691 | SO-8-EP, re-layout |
| L7 | 10 µH/2 A SRU8028 | **4.7 µH ≥ 4 A**, huella 8×8 | (elegir en JLC DB) | |
| C43 | 100 µF/6.3 V elco | **220 µF/16 V polímero** 6.3×7.7 | C881921 | |
| C3 | 47 µF elco | **220 µF/16 V polímero** 6.3×7.7 | C881921 | |
| Cin U7 | C40 22 µF (en SW_5V) | 2 × 22 µF 0805 + 10 µF 1206 **en SYS5V** junto a U7 | C86817 (22 µF ya en BOM) | C40 pasa a ser Cin |
| R_EN | — | 10 k 0603 (PC3→EN) + 100 k 0603 (EN→GND) | básicas | |
| R_RSTM | — | 1 k 0603 (PC1→MODEM_RST) | básica | |
| R_LEDM | — | 10 k 0603 (MODEM_LED→PC2) | básica | |
| R_ONS, R_ASC | — | 10 k 0603 ×2 (J8.3→PC4, J8.5→PC5) | básicas, **DNP** | |
| R_TAP | — | 1 k 0603 (DOUT_4G→PC7) | básica | |
| R_ETHPD | — | 100 k 0603 (ETH_RST→GND) | básica | |
| RS1 | 8 mΩ 1206 | **10 mΩ 1206 1 W** | C105362 | |
| R50 | 825 Ω | **1.5 kΩ** | C22843 | |
| RNTB | 10 k | 10 k (Li-ion) / **5.6 k** (LFP B3380) | básica | ver D1 |
| R53 | 499k | 499k (opcional 511k) | C188257 | ver A |
| U4b | — | TMP102 SOT-563, ADD0→3V3 | = U4 | D3 |
| D_J9 | — | USBLC6-2SC6 | C7519 | E5 |
| F1 | PPTC 3 A 1812 | PPTC ≥ 4 A / ≤ 20 mΩ | (elegir) | F |
| JP_CUT | — | puente de soldadura 2 pads, abierto | — | F |
## H. Firmware para V5.6 (0.7.0, sobre 0.6.0) — lo que desbloquea el hardware
- `board_v56.h`: `PIN_MODEM_EN PC3`, `PIN_MODEM_RST PC1`, `PIN_MODEM_LED PC2`, `PIN_MODEM_ONSLP PC4`, `PIN_MODEM_ASSOC PC5`, `RTCM_TAP` = USART6 RX PC7.
- `ENABLE_DUTY 1` de fábrica en V5.6: ventana = `PWR_CTRL` → 4 s → `MODEM_EN` → registro (LED del módem en «rápido» o primeros bytes RTCM en PC7) → ≥ 2 `$PHLG` con `pwr=BATT` + fix fresco → `MODEM_EN` bajo → `PWR_CTRL` bajo → 10 min. Sin la ceguera actual: el fin de ventana lo decide `RTCM_TAP`/LED, no un temporizador.
- Módem oscuro en 24 V: `MODEM_RST` 500 ms; si no vuelve, `MODEM_EN` OFF 5 s / ON (reset de alimentación real, sin tocar al F9P). El «modem watch» 0.5.9 pasa de diagnóstico a acción con señales reales.
- Cargador: gobernador 0.6.0 sin cambios (con RS1/R50 nuevos casi nunca corta); umbral térmico de celda según química (Li-ion 45 °C / LFP 55–60 °C) y `SLEEP`/rearme por voltaje re-derivados si LFP (curva plana ~3.2 V).
- `$PHLG`: campos append `tmodem` (U4b), `rtcm_bps`, `modem_led`.
## I. Validación del primer lote V5.6 (banco, 1 unidad, 1 día)
1. Riel del módem: `3V3_MODEM` estable con `MODEM_EN`; osciloscopio en VIN de U7 durante el arranque del módem **en batería a 3.5 V**: sin caída bajo 3.8 V. Módem arranca 10/10 en batería (`P`+`Y` con 24 V quitado).
2. Ciclo 10 min en batería 20 ciclos seguidos (módem registra cada vez; `RTCM_TAP` cuenta bytes; posición en el monitor cada 10 min).
3. Carga: paquete a 3.4 V, 24 V con etapa ON: `ltc=CARGANDO`, corriente de entrada en P2 ≤ 2.5 A con ráfagas LTE (pinza), `cortes=0` en 2 h, safety timer rearma.
4. Térmico: cámara/horno a 45 °C: carga sigue (solo LFP+5.6 k); `tmodem` en `$PHLG`; ventilador por firmware.
5. EMC rápido: caída en `SW_BAT` a 2.5 A en respaldo < 50 mV; temperatura de L6/U6 en respaldo continuo 1 h.
## J. Para pedir esta semana — lista de decisiones
1. **Química del paquete** (D1): LFP-HT 26650 + JP2 2-3 + RNTB 5.6 k/B3380 — sí/no. (Afecta caja y BOM del paquete, no la PCB.)
2. **Tamaño del lote** V5.6 y si va con ensamble JLC (todo LCSC arriba) — partes «Extended» nuevas: AP64350, polímero 220 µF, RS1, USBLC6 (US$3 c/u de setup).
3. **R53** se queda en 499k (recomendado).
4. **U12 → AP64350** (opcional, uniformidad) — sí/no.
5. Congelar V5.5 como registro «as-fabbed»: copiar `hbox-watchdog-v5.*` → `hbox-watchdog-v55-PROD.*` (como se hizo con v3-PROD) y editar `hbox-watchdog-v5` como V5.6.
## Orden de trabajo propuesto (esta semana)
| Día | Quién | Qué |
|---|---|---|
| L | Leo | Decisiones J1–J5. Congelar V5.5. |
| L–M | Claude (script, con diff y backup) + Leo (revisión en KiCad) | Esquemático: bloque U7 nuevo (AP64350, Cin/Cout, EN), 7 resistencias y nets a PC1–PC5/PC7, U4b, D_J9, JP_CUT, valores RS1/R50/RNTB/C3/C43/L7/F1. ERC 0. |
| M–J | Michelle / Leo | PCB: re-layout bloque módem, polígonos SW_BAT/BAT_PLUS, mover FB del ventilador y ESD DFU, 7 pistas nuevas, costura. DRC 0. |
| J | Claude | Auditoría pad-a-pad de la netlist V5.6 contra `board_v56.h` (como el 15-sep) + BOM/CPL. |
| V | Leo | Gerbers + BOM + CPL a JLC. |