DÍA 069 DE 365

Fase 2: Fundamentos de Hardware y Electrónica

📖 Teoría a Estudiar

Convertidor DC-DC Buck (Fuente Conmutada)

A diferencia de un LDO que quema el voltaje excedente, un Buck Converter funciona "troceando" (conmutando) el voltaje de entrada usando un transistor a velocidades altísimas (entre 100 kHz y 2 MHz). Es el equivalente en hardware al PWM que hicimos por software en el Día 35.

La Transformación de la Energía

En un LDO, la corriente de entrada es igual a la corriente de salida. En un Buck Converter, la potencia se conserva ($P_{in} \approx P_{out}$). Esto crea un efecto mágico: al reducir el voltaje, ¡la corriente disponible aumenta!

Si introduces 24V a 0.5A (12 Watts), el Buck Converter puede entregarte 5V a 2.1A (10.5 Watts), logrando eficiencias superiores al 90%. El calor disipado es casi nulo.

TOPOLOGÍA DEL CONVERTIDOR BUCK (DC-DC STEP-DOWN) Vin (+24V) SW (MOSFET) 100kHz - 2MHz CHIP PWM Diodo Schottky Inductor (L) Capacitor (C) Vout (+5V) Rizado limpio GND COMÚN Ecuación de Salida Continua (CCM): Vout = Vin × Ciclo de Trabajo (D)

El Filtro LC (Inductor + Capacitor)

Cuando el interruptor se cierra, inyecta 24V hacia la bobina (Inductor). La bobina se resiste al cambio rápido de corriente, creando un campo magnético. Cuando el interruptor se abre (0V), el campo magnético colapsa, pero el Diodo Schottky actúa como un Flyback (Día 64) permitiendo que la corriente siga fluyendo hacia adelante.

El resultado es que el voltaje cuadrado (24V a 0V a 24V...) choca contra el Inductor y el Capacitor, quienes lo "aplastan" y promedian, convirtiéndolo en una línea plana y hermosa de 5V DC. El ciclo de trabajo (Duty Cycle) del PWM dicta el voltaje de salida.

⚙️ Ejercicios Prácticos

Ejercicio 1: Los chips reguladores Buck modernos (como el LM2596 o TPS54331) tienen un pin EN (Enable). Programa un Encendido Escalonado (Staggered Boot). Al arrancar la gasera, enciende solo el STM32 (metrología) y mantén apagado el monstruoso módulo Wi-Fi ESP32 para evitar una inyección masiva de corriente (Inrush) que colapse la fuente principal de la máquina.


#include <stdint.h>
#include <stdbool.h>

// --- 1. REGISTROS FÍSICOS (Pin ENABLE del Regulador BUCK) ---
volatile uint32_t *GPIOC_MODER = (volatile uint32_t *)0x40020800;
volatile uint32_t *GPIOC_ODR   = (volatile uint32_t *)0x40020814;

// Conectamos el pin 14 del STM32 al pin EN del Regulador Buck de 5V
const uint8_t PIN_BUCK_ENABLE = 14;

// Variable global de tiempo (Asumimos milisegundos desde el arranque)
extern volatile uint32_t milisegundos_globales;


// --- 2. GESTOR DE ENERGÍA (Power Manager) ---
void buck_converter_init(void) {
    // 1. Iniciar con el Buck APAGADO (0V al pin EN)
    // Esto mantiene al hambriento ESP32 y periféricos de 5V desenergizados
    *GPIOC_ODR &= ~(1 << PIN_BUCK_ENABLE);
    
    // 2. Configurar como salida Push-Pull
    *GPIOC_MODER &= ~(3 << (PIN_BUCK_ENABLE * 2));
    *GPIOC_MODER |= (1 << (PIN_BUCK_ENABLE * 2));
}

void buck_converter_encender(void) {
    // Mandar 3.3V al pin EN del chip regulador DC-DC
    *GPIOC_ODR |= (1 << PIN_BUCK_ENABLE);
}


// --- 3. SECUENCIA DE ARRANQUE ESCALONADO (STAGGERED BOOT) ---
int main(void) {
    
    // FASE A: Arranque de cerebro (Microamperios)
    // La fuente de 24V se enciende. El LDO del STM32 le da vida al procesador.
    hardware_init_basico();
    buck_converter_init(); 
    
    // Ejecutamos pruebas metrológicas pesadas (POST Día 56) sin que el Wi-Fi 
    // nos robe energía ni genere ruido electromagnético.
    ejecutar_post_sistema();
    
    // FASE B: Retraso Estabilizador
    // Esperamos 2 segundos completos para que los super-capacitores de 
    // la fuente de 24V se carguen al 100% y estabilicen su química.
    uint32_t tiempo_inicio = milisegundos_globales;
    while ((milisegundos_globales - tiempo_inicio) < 2000) {
        watchdog_refrescar(); // No olvidemos al perro guardián
    }
    
    // FASE C: Encendido de Carga Pesada (Heavy Load)
    // Despertamos al monstruo. El chip Buck empieza a conmutar y genera 5V limpios.
    // El ESP32 arranca y consume 500mA. Como la fuente de 24V ya estaba 
    // estabilizada, resiste el impacto sin sufrir un "Brown-out".
    buck_converter_encender();
    
    // Iniciar comunicaciones UART (Día 41)
    // wifi_init();
    
    while(1) {
        // FSM Principal del Despachador de Gas...
    }
    
    return 0;
}
        

🚀 Avance del Proyecto Tesis: Despachador de Gas LP

Objetivo del día: Arquitectura de Distribución de Energía (Power Tree) de Alta Eficiencia.

Las placas comerciales de Arduino/Raspberry se resetean solas en entornos industriales porque intentan arrancar todos sus periféricos (Wi-Fi, pantallas LCD, sensores, relés) exactamente en el mismo microsegundo en que se enchufan. La corriente demandada es tan masiva que el voltaje se "agacha" (Inrush Drop) y el procesador muere al instante.

Tu diseño electrónico (KiCad) ahora posee un Árbol de Poder (Power Tree) profesional: La entrada de 24V va directa a la válvula (Día 66). Esa misma línea pasa por un eficiente Convertidor Buck que baja a 5V para el módulo Wi-Fi ESP32. Finalmente, de esos 5V colgamos el LDO (Día 68) para filtrar perfectamente los 3.3V de tu CPU STM32. Y gracias al control del pin ENABLE por firmware, el STM32 domina el encendido de los circuitos pesados de forma inteligente y escalonada, garantizando un arranque de la gasera elegante, suave e infalible bajo cualquier condición.

📝 Resumen del Día

❓ Cuestionario de Autoevaluación

1. Si los Convertidores Buck son tan eficientes y fríos, ¿por qué seguimos usando Reguladores LDO (Día 68) para alimentar el núcleo (CPU) del STM32?
Respuesta: Por el Rizado (Ripple) y el Ruido. Como el Buck conmuta violentamente a 1 MHz, su voltaje de salida de 5V no es una línea perfectamente plana; tiene "olas" minúsculas de ruido electromagnético. Si le das eso directo a la CPU y al ADC (convertidor analógico a digital), tus lecturas de presión variarán erráticamente. La arquitectura perfecta (llamada LDO Post-Regulation) usa el Buck para hacer el "trabajo sucio y pesado" de bajar de 24V a 5V sin calor, y luego un pequeño LDO limpia esos 5V y los baja a 3.3V puros y absolutos como el cristal para el delicado silicio de la metrología.

2. ¿Qué desastre físico ocurriría en el circuito SVG si se rompiera o desoldara el Diodo Schottky?
Respuesta: Cuando el interruptor (MOSFET interno) se abra, el Inductor buscará desesperadamente por dónde descargar su campo magnético colapsado. Como ya no tiene el camino del diodo (la rueda libre hacia tierra), el latigazo inverso de miles de voltios perforaría y destruiría el costoso chip PWM/MOSFET, quemando la fuente por completo. ¡En los reguladores Buck, el diodo es igual de importante que el inductor!