En las fábricas, las placas que salen del horno de reflujo entran a una máquina de Inspección Óptica Automatizada (AOI). Esta máquina toma fotografías de alta resolución con iluminación multi-ángulo y compara la reflexión de la soldadura contra la de una "placa dorada" (Golden Board) perfecta. En el laboratorio, tus ojos bajo un microscopio estereoscópico o una lupa de joyero serán el sistema AOI.
Paso 1: La Prueba Humana del Multímetro (Cold Test).
Antes de siquiera pensar en conectar la batería de 24V, coloca tu multímetro en modo "Continuidad" (Bip). Pon una punta en el pin `GND` de la bornera principal y la otra en el pin de `3.3V` del procesador. Si el multímetro pita, tienes un puente de soldadura fatal debajo de un capacitor o del procesador. Tienes que encontrarlo y limpiarlo con malla desoldadora (Rework) antes de encender.
Paso 2: El Rework (Malla y Flux).
Si encuentras un puente visible en el STM32, no intentes "rasparlo" con la punta del cautín en seco; destruirás los frágiles pines. Añade una gota de Flux en gel sobre el puente. Coloca un trozo de Malla Desoldadora (Desoldering Braid) sobre el estaño. Presiona el cautín sobre la malla. El calor fundirá el estaño y la malla de cobre lo absorberá como una esponja por acción capilar. Los pines quedarán separados y limpios.
Paso 3: POST (Power-On Self-Test) en Firmware.
La inspección visual no detecta puentes escondidos *debajo* del chip. Por lo tanto, escribimos una rutina en C que se ejecuta en los primeros microsegundos tras encender el chip, donde el hardware se "auto-diagnostica" forzando estados en los pines de las Válvulas y verificando si otro pin cambia inesperadamente por culpa de un cortocircuito.
/**
* @file hw_selftest.c
* @brief Rutina POST (Power-On Self-Test) para detección de cortocircuitos en PCBA
*/
#include "stm32f401xe.h"
#include <stdint.h>
#include <stdbool.h>
// Mapeo hipotético: Válvula 1 en PA1, Válvula 2 en PA2 (Pines adyacentes físicamente)
#define VALVE_PORT GPIOA
#define VALVE_1_PIN GPIO_PIN_1
#define VALVE_2_PIN GPIO_PIN_2
/**
* @brief Evalúa si existe un puente de soldadura físico entre dos pines adyacentes.
* @retval bool: TRUE si el hardware está libre de cortos, FALSE si hay un puente.
*/
bool SelfTest_Check_GPIO_Shorts(void) {
bool hardware_ok = true;
// 1. Configurar pines adyacentes como Entradas con Pull-Down (Seguridad inicial)
// En GPIO_Init, PA1 y PA2 se configuran internamente con resistores hacia GND.
// 2. Configurar temporalmente la Válvula 1 (PA1) como SALIDA
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = VALVE_1_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(VALVE_PORT, &GPIO_InitStruct);
// Mantenemos Válvula 2 (PA2) como ENTRADA leyendo el bus.
// 3. LA PRUEBA DE CORTO (Stimulus & Response)
// Ponemos ALTO el PA1.
HAL_GPIO_WritePin(VALVE_PORT, VALVE_1_PIN, GPIO_PIN_SET);
// Un pequeño retardo para estabilización eléctrica
__asm("nop"); __asm("nop"); __asm("nop"); __asm("nop");
// 4. LECTURA DIAGNÓSTICA
// Si PA2 (Entrada) lee un '1' lógico cuando debería estar en '0' por su Pull-Down,
// significa que la corriente está "cruzando" físicamente por un puente de estaño
// desde el PA1 hacia el PA2.
if (HAL_GPIO_ReadPin(VALVE_PORT, VALVE_2_PIN) == GPIO_PIN_SET) {
// Cortocircuito detectado entre Valve 1 y Valve 2.
hardware_ok = false;
}
// 5. RESTAURAR ESTADO SEGURO
HAL_GPIO_WritePin(VALVE_PORT, VALVE_1_PIN, GPIO_PIN_RESET);
// Regresar PA1 a su configuración operativa normal...
// Si hay un error, el sistema debe bloquearse en un estado seguro (Failsafe)
// y emitir un código de parpadeo de LED de diagnóstico de hardware.
return hardware_ok;
}
Objetivo del día: Validación de Manufactura (PCBA) y Aseguramiento de Calidad (QA).
El puente de soldadura es el asesino silencioso de la automatización industrial. Supongamos que en tu Despachador de Gas LP, los pines de control del microcontrolador que activan la "Válvula de Llenado Rápido" y la "Válvula de Cierre Lento" están ruteados en pines adyacentes. Durante el reflujo SMD, un minúsculo hilo de estaño une ambos pines. Físicamente, has creado una compuerta OR inmutable.
Cuando tu algoritmo de metrología intente cerrar la válvula rápida para hacer un ajuste final (Fine Dispensing), la señal de control de la válvula lenta se propagará a través del cortocircuito, manteniendo la válvula rápida abierta. El gas seguirá fluyendo a máxima presión, derramándose sobre el cliente o llenando el tanque más allá de su capacidad de ruptura del 80%. Este no es un error de software; es un error metalúrgico. Al combinar la **Inspección Visual Meticulosa (AOI/Microscopio)** con una agresiva **Rutina POST en Firmware** que inyecta señales eléctricas cruzadas para detectar cortocircuitos antes de habilitar el flujo de gas, has diseñado un hardware auto-consciente. Tu despachador es capaz de negarse a operar y encender una alarma si detecta que sus propios nervios de cobre están comprometidos, cumpliendo el estándar más alto de protección humana e industrial.