DÍA 080 DE 365

Fase 2: Fundamentos de Hardware y Electrónica

📖 Teoría a Estudiar

El Empaquetado TO-252 (DPAK) y el Cobre Térmico

El TO-252 es un empaquetado de Montaje Superficial (SMD) diseñado específicamente para componentes de potencia (MOSFETs y Reguladores de Voltaje). A diferencia de los chips normales que tienen patas delgadas de plástico, el TO-252 tiene una "Aleta" metálica gigante (Tab) en su parte trasera.

La Placa PCB como Disipador (Copper Pour)

En KiCad, cuando asignas la huella Package_TO_SOT_SMD:TO-252-2, verás que el Pad número 2 es descomunal. La regla de diseño industrial dicta que debes conectar este Pad a un enorme polígono de cobre (Copper Pour) en tu placa. El calor del silicio viaja a través de la aleta metálica directamente hacia el cobre del PCB, usando a la tarjeta entera como un radiador que disipa el calor hacia el aire ambiental.

GESTIÓN TÉRMICA SMD: EMPAQUETADO TO-252 (DPAK) COMPONENTE FÍSICO TAB (Metal) LDO 7805 TO-252 Pin 1 Pin 3 HUELLA EN PCB (KICAD) PAD 2 GIGANTE (TAB) Conectado a un Polígono de Cobre "Vías Térmicas" pasan el calor a la capa inferior Pad 1 Pad 3

Vías Térmicas (Thermal Vias)

Una sola capa de cobre arriba (Top Layer) a veces no es suficiente para enfriar el LDO o el MOSFET. En KiCad, el arquitecto de hardware dibuja otro polígono de cobre gigante en la capa inferior (Bottom Layer) y conecta ambos planos haciendo decenas de perforaciones diminutas llamadas Vías Térmicas. El cobre de las paredes de esos agujeros transfiere el calor a la parte trasera de la tarjeta, multiplicando por dos la capacidad de enfriamiento de la máquina.

⚙️ Ejercicios Prácticos

Ejercicio 1: El silicio tiene límites. Si dejas la máquina despachadora a pleno sol en verano (50°C ambiental) y el LDO en su TO-252 intenta disipar 2 Watts extra, su temperatura interna puede llegar a 150°C. Entrará en "Thermal Shutdown" (Apagado Térmico) cortando los 3.3V abruptamente. Programa una rutina en tu firmware para leer el sensor de temperatura interno del silicio del propio STM32 para lanzar una advertencia térmica antes de que el regulador principal colapse por calor.


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

// --- 1. CONSTANTES TÉRMICAS BARE-METAL (STM32) ---
// El STM32 tiene un termómetro interno conectado a un canal secreto del ADC
#define CANAL_ADC_TEMP_INTERNA 16 

// Límites comerciales e industriales
#define TEMP_CRITICA_SILICIO_C 85 
#define TEMP_COLAPSO_LDO_C    120

extern uint32_t leer_adc_hardware(uint8_t canal);
extern void ejecutar_paro_emergencia_fsm(void);
extern void lcd_imprimir(const char* msg);


// --- 2. DECODIFICADOR DE TERMÓMETRO INTERNO ---
// Basado en el Datasheet del STM32 (Punto Fijo O(1))
int32_t calcular_temp_nucleo_stm32(uint32_t adc_raw) {
    
    // Voltaje leído en milivoltios (V_SENSE)
    uint32_t vsense_mv = (adc_raw * 3300) / 4095;
    
    // Fórmula del fabricante STM32:
    // Temperatura = ((V_SENSE - V25) / Avg_Slope) + 25
    // V25 típico es 760 mV. Avg_Slope típico es 2.5 mV/°C.
    // En punto fijo (multiplicando pendiente por 10 para evitar floats):
    
    int32_t diferencia_mv = (int32_t)vsense_mv - 760;
    int32_t temp_c = ((diferencia_mv * 10) / 25) + 25;
    
    return temp_c;
}


// --- 3. GESTOR DE ESTRÉS TÉRMICO (Súper Bucle) ---
int main(void) {
    
    // (Arranque de hardware y POST)
    
    while(1) {
        
        // El calor se transfiere por el cobre. Si el LDO TO-252 está hirviendo 
        // a 120°C a solo 3 centímetros del STM32, el calor viajará por las pistas 
        // y el núcleo del STM32 se empezará a calentar peligrosamente.
        
        uint32_t adc_nucleo = leer_adc_hardware(CANAL_ADC_TEMP_INTERNA);
        int32_t temp_nucleo_c = calcular_temp_nucleo_stm32(adc_nucleo);
        
        if (temp_nucleo_c >= TEMP_CRITICA_SILICIO_C) {
            
            // ¡ALERTA TERMODINÁMICA!
            // La tarjeta entera está sufriendo un sobrecalentamiento masivo 
            // (Ya sea por el sol, o porque el LDO / MOSFET están disipando mucho calor).
            // Si seguimos operando, el LDO entrará en "Thermal Shutdown" apagando la MCU
            // y dejando las válvulas en un estado desconocido.
            
            // 1. Apagamos la carga fuerte (Bomba y válvulas)
            ejecutar_paro_emergencia_fsm();
            
            // 2. Al apagar los MOSFETs, la disipación del TO-252 cae a casi 0 Watts.
            // La placa empezará a enfriarse sola.
            
            lcd_imprimir("ERR: OVERHEAT PCB");
            
            // Bucle seguro de enfriamiento
            while(temp_nucleo_c > 60) {
                adc_nucleo = leer_adc_hardware(CANAL_ADC_TEMP_INTERNA);
                temp_nucleo_c = calcular_temp_nucleo_stm32(adc_nucleo);
                // watchdog_refrescar();
            }
        }
    }
    
    return 0;
}
        

🚀 Avance del Proyecto Tesis: Despachador de Gas LP

Hito Logrado: Modelado Termodinámico de Componentes de Potencia en KiCad.

Dibujar circuitos con Símbolos en Eeschema asegura que la máquina piense correctamente. Pero asignar huellas como el TO-252 para los LDOs y los MOSFETs de potencia asegura que la máquina sobreviva físicamente en el mundo real.

Al diseñar tu Placa de Circuito (PCB), el tamaño del cobre ya no es solo para pasar corriente, se convierte en tu disipador térmico (Heatsink). Y tu código Bare-Metal acaba de adquirir instintos de supervivencia: al monitorear la temperatura interna del núcleo del procesador, puede deducir la salud térmica de los chips TO-252 que están soldados a su lado. Tu Despachador de Gas ahora "suda" y se "detiene a tomar un respiro" si el sol del desierto (o una válvula forzada) calienta la tarjeta al límite, protegiendo miles de dólares en equipo con cero hardware extra.

📝 Resumen del Día

❓ Reflexión Final de la Decena

Si tuviéramos que elegir entre usar un LDO lineal TO-252 (SMD) o usar un Buck Converter (Día 69) para bajar 24V a 5V en la gasera, ¿por qué el tamaño del cobre en el TO-252 limita nuestra decisión?
Respuesta: Por la física del calor ($P = V \cdot I$). Si bajas 24V a 5V a 1 Amperio, disiparás 19 Watts de calor puro. ¡Un empaquetado TO-252 solo puede disipar unos 2 a 3 Watts de forma segura, incluso si le pones toda la placa de cobre como radiador! Si intentas disipar 19 Watts, el cobre de la tarjeta entera se calentará por encima de los 150°C, desoldando los componentes de la placa. La matemática térmica exige usar el Buck Converter para grandes saltos de voltaje, y dejar el TO-252 solo para saltos pequeños (ej. de 5V a 3.3V, disipando 0.8 Watts).