Drogheda/06-Testing-Validation/2026-08-18_Drogheda_FW-v3.0.3_Fan-Policy_Bench-Test_v1.0.md

86 lines
6.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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: "Procedimiento de banco — Validación de la política de ventilador FW v3.0.3"
project: Project Drogheda
date: 2026-08-18
version: v1.0
audience: ingeniería (banco)
target: EinarBoard 1.0 / 2.0 (V4) + firmware blackpillrtkcode_v3 v3.0.3
tags: [project-drogheda, testing, ventilador, firmware, banco]
---
# Validación en banco — política de ventilador por potencia (FW v3.0.3)
## 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.
> ⚠️ **PELIGRO:** hay 24 V en P1. Verifique polaridad antes de energizar. No conecte ni desconecte el ventilador (P6) con la tarjeta energizada.
> 🛑 **ALTO:** en banco sin batería, el riel de 5 V debe estar en **≥ 5.2 V** o con el pack conectado (disparo PFI 4.60 V del LTC4040 bajo ráfaga LTE — nota 24-jul). Si la unidad se reinicia sola durante la prueba, revise 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 |
> ℹ️ **NOTA 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____ | | | | | | |