Un error común de los novatos en diseño de PCBs es creer que la Tierra (GND) es un "sumidero mágico" donde la corriente desaparece. La realidad física es que toda la corriente que sale de una fuente, debe regresar a ella. En circuitos de alta velocidad, la corriente de retorno viaja exactamente por debajo de la pista de señal, buscando el camino de menor impedancia.
Si la agresiva corriente de retorno de tu controlador PWM (Válvula) atraviesa la misma lámina de cobre por donde regresa la delicada corriente de tu sensor PT100 analógico, los milivoltios de diferencia crearán un "ruido de modo común". Tu microcontrolador leerá saltos térmicos absurdos.
Para proteger a la electrónica analógica sensible, debemos crear un "Foso" (Moat). Cortamos el plano de cobre del GND físico en dos islas separadas:
Pero ambas tierras deben tener exactamente el mismo potencial de $0\text{V}$, así que no pueden estar desconectadas. Las unimos en un Único Punto Estrella (usualmente debajo del chip conversor ADC o cerca del regulador de voltaje principal) utilizando un componente especial de KiCad llamado Net Tie.
Paso a Paso en KiCad 8:
Net Tie (Búscalo en la biblioteca Device). Conecta AGND a un pin y DGND al otro. Esto le dice a KiCad que son dos redes lógicas distintas que se tocarán en un solo punto físico.AGND y otra a DGND. Dibuja sus contornos asegurando que dejen una brecha (Foso) de 1 o 2 mm entre ellas.El Impacto en el Firmware (Monitor de Ruido Bare-Metal):
Podemos escribir una función que evalúe la varianza matemática (ruido) del ADC para demostrar que nuestro rediseño de PCB funcionó, incluso sin filtros de software.
/**
* @file adc_noise_profiler.c
* @brief Evaluador de Varianza de Ruido del Hardware ADC (Prueba de Integridad de PCB)
*/
#include "stm32f401xe.h"
#include <stdint.h>
// Cantidad de muestras para el análisis estadístico
#define SAMPLES_COUNT 100
// Dependencia de lectura
extern uint16_t adc_leer_canal_sencillo(uint8_t canal);
/**
* @brief Mide la inestabilidad eléctrica (Ruido Peak-to-Peak) del plano analógico.
* Ideal para calibrar y certificar una nueva revisión de placa de circuito.
*/
uint16_t Hardware_Evaluar_Ruido_AGND(uint8_t canal_adc) {
uint16_t max_val = 0;
uint16_t min_val = 4095;
// 1. Apagamos todas las Interrupciones para evitar que el
// procesador genere consumo de corriente errático y nos ensucie la prueba.
__disable_irq();
// 2. Tomar una ráfaga de muestras crudas a máxima velocidad
for(int i = 0; i < SAMPLES_COUNT; i++) {
uint16_t lectura = adc_leer_canal_sencillo(canal_adc);
if (lectura > max_val) max_val = lectura;
if (lectura < min_val) min_val = lectura;
// Pequeño retardo para permitir que el ADC recargue su capacitor de retención
for(volatile int j = 0; j < 50; j++);
}
__enable_irq();
// 3. Devolver la diferencia (Peak-to-Peak Noise)
// En una PCB de una sola tierra (Sucia), este delta puede ser de 80 a 150 unidades.
// En una PCB con Split AGND/DGND correcto, el delta bajará a 2 o 3 unidades.
return (max_val - min_val);
}
int main(void) {
// ...
// Diagnóstico en Modo Laboratorio
// uint16_t ruido = Hardware_Evaluar_Ruido_AGND(CANAL_PT100);
// printf("Ruido Hardware: +/- %d LSB\n", ruido);
// ...
}
Objetivo del día: Certificación de Metrología (Ruido Eléctrico Nulo).
En el Día 157 programamos la Tabla de Calibración API para compensar la densidad del gas según su temperatura. El problema es que el sensor de temperatura (PT100) envía señales diminutas (milivoltios). En tu primer prototipo de PCB (usando un solo plano de tierra masivo), cada vez que el Transceptor RS485 transmitía un paquete Modbus, su violenta corriente de retorno cruzaba por debajo del amplificador del PT100. Esto causaba que la lectura "saltara" de 25°C a 29°C instantáneamente, y tu algoritmo compensaba mal la venta de gas, perdiendo dinero.
Al rediseñar la placa con **Split Planes (AGND / DGND) y un Net Tie** en KiCad, has desterrado físicamente el ruido. Las violentas corrientes digitales de las válvulas PWM y de la red RS485 ahora circulan obligatoriamente por la isla DGND, regresando a la fuente de poder sin contaminar jamás la isla analógica. La temperatura se mantiene perfectamente estable en tu ADC. Tu algoritmo de software (Día 156) ya no tiene que luchar contra el hardware; ahora trabajan en armonía electromagnética perfecta.
AGND y DGND en un punto único y controlado, evitando los "Bucles de Tierra" (Ground Loops).