--- title: "Validación en banco — política de ventilador por potencia (FW v3.0.3)" tags: [project-drogheda, testing, ventilador, firmware, banco, v3, v4, procedimiento] date: 2026-08-18 project: Project Drogheda version: v1.0 audience: ingeniería (banco) target: EinarBoard 1.0 / 2.0 (V4) + firmware blackpillrtkcode_v3 v3.0.3 --- # Validación en banco — política de ventilador por potencia (FW v3.0.3) Tarjeta: V3 (EinarBoard 1.0) y V4 (EinarBoard 2.0) con firmware `blackpillrtkcode_v3` v3.0.3. !!! abstract "Para quién · Cuándo · Tiempo · Necesitas" - Para quién: ingeniería (banco) - Cuándo: al validar un binario V3/V4 con la política de ventilador por potencia (v3.0.3 o posterior que la conserve) - Tiempo: ~30 min por unidad (incluye 5 min al 100 % y el ciclo de calentamiento) - Necesitas: fuente 24 V, fuente 5 V a 5.2 V, fuente de ignición 12–24 V, multímetro, laptop con terminal 115200, pistola de aire caliente y osciloscopio opcional ## 0. Qué se está probando Desde v3.0.3 el ventilador **ya no se modula**: solo tiene dos estados. | Condición | Ventilador | |---|---| | VEH5V presente Y ignición ON | **100 % fijo (DC), a cualquier temperatura** | | Falta VEH5V o falta ignición ("modo batería") | Termostato: **enciende ≥ 48 °C, apaga < 45 °C** (temperatura de control = la más alta de aire SHT40 / batería TMP102 / MCU) | La lógica reacciona en ≤ 2 s (cadencia térmica) más el debounce de entradas (~0.75 s). No hay sensado de 24 V: la ignición es el testigo de que el riel de 24 V existe. !!! danger "24 V en P1 y riel de 5 V" Verifica la polaridad antes de energizar. No conectes ni desconectes el ventilador (P6) con la tarjeta energizada. En banco sin batería, 5 V ≥ 5.2 V o paquete conectado ([reglas de banco](diagnostico-banco.md#reglas-de-banco)); si la unidad se reinicia sola, revisa esto primero. ## 1. Equipo Fuente de 24 V (≥ 1 A), fuente de 5 V ajustada a 5.2 V (o el SD-15B de la unidad), fuente o puente de 12–24 V para ignición, multímetro, laptop con terminal serie (USB del Blackpill, **115200 8N1**), pistola de aire caliente (a baja, < 70 °C), osciloscopio (opcional, para confirmar DC). ## 2. Puntos de medición | Conector | Pin | Señal | Uso en esta prueba | |---|---|---|---| | **P1** (GX16-5 / Phoenix) | 1 | `24V_IN` | Alimenta SOLO el buck del ventilador (U2 → `5V_FAN`) | | | 2 | `GND` | Retorno común | | | 3 | `IGN_IN` | Ignición cruda 12–24 V (divisor Rig 22k / Rigb 10k → PA5) | | **P2** | 1 | `VEH5V` | 5 V del SD-15B (= "vehículo presente" para el firmware, umbral ON > 4.2 V / OFF < 3.8 V) | | **P6** (ventilador) | 1 | `5V_FAN` | +5 V del buck — debe medir ~5 V siempre que haya 24 V en P1.1 | | | 2 | `FAN_RET` | Drenaje de Q2 (lado bajo). **Fan ON → ~0 V; fan OFF → ~5 V** | | | 4 | `FAN_TACH_RAW` | No usado (ventilador de 2 hilos) — debe quedar al aire | | **PA6** (Blackpill / Rg) | — | `FAN_PWM` | Comando del MCU vía Rg (100 Ω) → gate de Q2. **ON → 3.3 V DC plano; OFF → 0 V** | La medición que decide es **P6.2 respecto a GND** (o la tensión P6.1↔P6.2 a través del ventilador: ~5 V girando, ~0 V parado). PA6 confirma qué está comandando el firmware; P6.2 confirma que Q2 y el ventilador obedecen. ## 3. Telemetría de referencia Abra la terminal serie antes de empezar. Cada 2 s sale una línea `TLM`; las columnas relevantes (ver línea `COLS` al arranque): `...,veh,ign,...,tair,rh,tbat,fan_rpm,fan_pwm,fan_fault,...` - `veh` / `ign`: entradas ya con debounce — confirman que la tarjeta ve lo que usted conectó. - `fan_pwm`: **solo puede valer 0 o 100** en v3.0.3. Cualquier valor intermedio = firmware equivocado (¿quedó una v2.3/3.0.1?). - La línea `BOOT` debe reportar `fw=3.0.3`. Si no, deténgase y reflashee. ## 4. Procedimiento Estado inicial: P1 con 24 V, P2 con 5.2 V, ignición desconectada, ventilador en P6, unidad a temperatura ambiente (< 40 °C). | # | Acción | Resultado esperado | Verificar | |---|---|---|---| | 1 | Energizar la unidad (arranque en frío) | Self-test: los 4 LEDs de gauge encienden en secuencia y el ventilador da un soplo de ~0.8 s | Confirma que Q2 + ventilador funcionan, independiente de la lógica | | 2 | Esperar 10 s, sin ignición | Ventilador apagado | P6.2 ≈ 5 V · PA6 = 0 V · TLM: `veh=1 ign=0 fan_pwm=0` | | 3 | Aplicar 12–24 V a P1.3 (ignición) | En ≤ 3 s el ventilador arranca al **100 %**, aun frío | P6.2 ≈ 0 V · PA6 = 3.3 V DC plano (sin PWM en el osciloscopio) · TLM: `ign=1 fan_pwm=100` | | 4 | Mantener 5 min | Sigue al 100 % sin interrupciones; `fan_fault=0` | Sin parpadeos en P6.2 | | 5 | Quitar ignición (24 V y 5 V se quedan) | En ≤ 3 s el ventilador se apaga (modo batería, unidad fría) | P6.2 ≈ 5 V · `ign=0 fan_pwm=0` | | 6 | Sin ignición: calentar el sensor SHT40 (sonda P5) con aire caliente, gradual | Al llegar `tair` a **48 °C** el ventilador arranca al 100 % | TLM: `tair≥48 → fan_pwm=100`. **No** debe arrancar a 45–47 °C (histéresis) | | 7 | Retirar el calor y dejar enfriar | Sigue girando entre 45–47 °C; **se apaga solo por debajo de 45 °C** | `tair=46 → fan_pwm=100` · `tair=44 → fan_pwm=0` | | 8 | Reconectar ignición con la unidad aún tibia | 100 % inmediato sin importar la temperatura | `fan_pwm=100` | | 9 | (Opcional, con pack conectado) Quitar el 5 V de P2 dejando 24 V + ignición | El firmware pasa a modo batería (gate incompleto): manda termostato, no el 100 % fijo | `veh=0 → fan_pwm` según temperatura | !!! note "Sobre el paso 6" Apunte el aire caliente a la **sonda SHT40 (P5)**, no a la tarjeta completa — así el resultado es reproducible. No exceda ~65 °C: arriba de 45 °C en la celda el firmware además corta la carga (`Cell hot -> charge OFF` en el log); es comportamiento esperado, no una falla. ## 5. Criterios de aceptación La unidad PASA si: (1) `fw=3.0.3` en BOOT; (2) `fan_pwm` solo toma valores 0 y 100 durante toda la prueba; (3) con ignición + VEH5V el ventilador gira al 100 % en frío (paso 3 — este es el cambio de comportamiento clave vs. versiones anteriores); (4) la histéresis 48/45 °C del modo batería se cumple en ambos sentidos (pasos 6–7); (5) PA6 es DC plano en ON (sin portadora de 25 kHz); (6) `fan_fault=0` al final. Cualquier desviación: capture el log serie completo (es append-only, basta guardar la sesión de terminal) y repórtelo con el número de paso. ## 6. Registro | Unidad | Fecha | Ingeniero | P3 (100 % frío) | P6/P7 (histéresis) | fan_fault | PASA/FALLA | |---|---|---|---|---|---|---| | H____ | | | | | | | Detalle de la política en el firmware: [manual V3](../manuales/manual-tarjeta-V3.md) · [manual V4](../manuales/manual-tarjeta-V4.md). Binarios: [Descargas](../descargas/index.md). ## Historial de revisiones | Versión | Fecha | Cambios | |---|---|---| | 1.0 | 2026-08-18 | Primera versión. | | 1.1 | 2026-09-29 | Encabezado uniforme, avisos en formato del sitio y enlaces a manuales y descargas. |