En la termodinámica electrónica, el calor fluye desde la "Unión" (Junction, dentro del chip de silicio) hacia el "Ambiente" (Ambient). Esto se modela usando Resistencias Térmicas ($\theta$) en grados Celsius por Watt ($^\circ\text{C/W}$). Si encierras la placa en un gabinete hermético, has insertado una resistencia térmica colosal (el aire estancado) entre el chip y el ambiente exterior.
La fórmula de la muerte térmica es: $T_{J} = T_{A} + P_{D} \times (\theta_{JC} + \theta_{CA})$. Donde $P_{D}$ es la potencia disipada. Si dejas que el calor intente escapar calentando el aire muerto dentro del gabinete, tu regulador de voltaje alcanzará los 125°C y entrará en Thermal Shutdown.
El aluminio del que está hecho el gabinete es un conductor térmico extraordinario ($k \approx 205 \text{ W/m}\cdot\text{K}$). Para enfriar la máquina sin perforarla, debemos anular el aire interno. Diseñamos la mecánica para que los componentes calientes (MOSFETs de válvulas, fuente conmutada LDO) estén atornillados físicamente o presionados contra la pared metálica interna del gabinete usando Thermal Pads (Almohadillas de silicona termoconductora). El gabinete entero se convierte en tu disipador.
Paso 1: Evitar el Efecto Invernadero.
Bajo ninguna circunstancia atornilles la placa base "flotando" en el centro de la caja. Los transistores de potencia deben quedar apuntando hacia el fondo de la carcasa de aluminio. La distancia entre el chip más alto y el metal del gabinete debe calcularse en el CAD mecánico (ej. SolidWorks) para que sea exactamente de 1 a 2 milímetros.
Paso 2: Compresión del Thermal Pad.
En ese hueco de 2 mm, se inserta una almohadilla térmica (Thermal Pad) de silicona de alta conductividad (ej. 5 W/mK). El Pad debe quedar comprimido mecánicamente al menos un 20% al apretar los tornillos de la placa. Esta compresión expulsa las micro-burbujas de aire (que actúan como aislante térmico) y establece el ansiado puente de conducción térmica pura.
Aunque el diseño mecánico sea perfecto, el operario podría dejar la máquina bajo el rayo directo del sol a 45°C. Nuestro firmware actuará como un vigilante activo: utilizaremos el ADC interno del STM32 para medir la temperatura del silicio. Si el disipador pasivo se satura y la placa alcanza los 75°C, ordenaremos un "Thermal Shutdown" por software para salvar la vida de la máquina y prevenir incendios.
/**
* @file hardware_thermal_shutdown.c
* @brief Auditoría Térmica Activa del Núcleo MCU y Protección contra Incendios
*/
#include "stm32f4xx_hal.h"
#include <stdio.h>
#include <stdbool.h>
// Límites Operativos del Sistema (Silicio)
#define THERMAL_WARNING_THRESHOLD_C 65.0f
#define THERMAL_CRITICAL_SHUTDOWN_C 75.0f
extern ADC_HandleTypeDef hadc1;
extern void System_Enter_Lockdown(const char* reason_code);
extern void Cloud_Telemetry_Log(const char* msg);
// =========================================================================
// SENSOR TÉRMICO INTERNO DEL STM32
// =========================================================================
/**
* @brief Lee el canal ADC dedicado a la temperatura del silicio.
* En el STM32F4, el sensor está internamente conectado al canal 18 (o 16 depende modelo).
*/
float ADC_Read_Internal_Temperature(void) {
uint32_t adc_val = 0;
// Iniciar conversión en el canal interno
HAL_ADC_Start(&hadc1);
if(HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK) {
adc_val = HAL_ADC_GetValue(&hadc1);
}
HAL_ADC_Stop(&hadc1);
// Fórmulas del Datasheet de STMicroelectronics
// Temperatura = ((V_sense - V_25) / Avg_Slope) + 25
// Valores típicos STM32F4: V_25 = 0.76V, Avg_Slope = 2.5 mV/°C
float v_sense = (adc_val * 3.3f) / 4095.0f;
float current_temp_C = ((v_sense - 0.76f) / 0.0025f) + 25.0f;
return current_temp_C;
}
// =========================================================================
// RUTINA DE DEFENSA (Se ejecuta periódicamente en el bucle / RTOS)
// =========================================================================
void Security_Thermal_Audit_Task(void) {
float core_temp = ADC_Read_Internal_Temperature();
if (core_temp >= THERMAL_CRITICAL_SHUTDOWN_C) {
// La placa está literalmente hirviendo.
// Si no la apagamos nosotros, se desoldarán los componentes o estallarán los capacitores.
printf("[CRIT] RUNAWAY TÉRMICO: %d C. Iniciando apagado de emergencia.\r\n", (int)core_temp);
Cloud_Telemetry_Log("FATAL: Overheating crítico (75C). Válvulas cortadas para prevenir fuego.");
System_Enter_Lockdown("E-97_THERMAL_RUNAWAY");
} else if (core_temp >= THERMAL_WARNING_THRESHOLD_C) {
// El gabinete se está saturando de calor.
// Alertamos al backend para mandar a un técnico a revisar si le pusieron
// algún trapo o caja bloqueando el aluminio del despachador.
printf("[WARN] Saturación térmica en gabinete: %d C\r\n", (int)core_temp);
Cloud_Telemetry_Log("WARN: Chasis perdiendo capacidad de disipación. T > 65C.");
}
}
Objetivo del día: Termodinámica de estado estacionario e Integridad Estructural (ATEX).
Muchos diseñadores electrónicos ignoran el gabinete hasta que la PCB está fabricada, tratando de "encajarla" en la caja que encuentren. Un Arquitecto diseña la PCB basándose en la topología de enfriamiento de la caja. En el manejo de hidrocarburos volátiles, un ventilador es ilegal porque succionaría fugas de gas LP hacia los relés de tu placa base, convirtiendo tu Despachador en un detonador.
Al dominar la **Disipación Pasiva por Conducción**, garantizamos que el calor mortífero fluya ordenadamente desde la frágil unión de silicio, a través de los **Thermal Pads**, hacia la masa gigante de aluminio del gabinete, el cual irradia el calor al ambiente de forma natural y segura. Para cerrar el ciclo, hemos programado el hardware del procesador para vigilar la temperatura de su propia sangre (el silicio). Si el calor ambiental exterior es tan extremo que invierte el flujo y la máquina está a punto de freírse, el algoritmo ejecutará un *Thermal Shutdown*, bloqueando las válvulas y protegiendo el negocio y la seguridad pública. Esta es la cúspide del Diseño para la Manufactura (DFM) y la Confiabilidad (DFR).