Hola amigo, es totalmente normal encontrarse con problemas “místicos” como este al reproducir el clásico ejercicio de fuente de alimentación de la competición electrónica. Este problema fue en su día una gran trampa que atormentó a mucha gente. Al trabajar con la parte analógica de fuentes conmutadas, especialmente con corriente compartida en paralelo, el diseño del circuito impreso (layout), las rutas y las interferencias suelen ser mucho más críticas que el propio esquemático.
Analizando tu esquema, los fenómenos descritos y el cambio del microcontrolador principal, voy a desglosarlo punto por punto para ayudarte a aclarar las ideas:
1. Respecto a la duda sobre la “variación aleatoria” del factor de amplificación del INA199A1 y el valor de 0.2mV
Mencionas: corriente de 0.2A, caída de tensión de 0.2mV en la resistencia de muestreo, y un factor de amplificación fluctuante.
Aquí hay un claro conflicto con la ley de Ohm:
Según el esquemático, la resistencia de muestreo R3 y R12 es de 20mΩ (0.02Ω). Si la corriente real es de 0.2A, entonces la caída de tensión debería ser: 0.2A × 0.02Ω = 0.004V (es decir, 4mV).
Sin embargo, solo mediste 0.2mV con el multímetro, lo cual indica varias posibilidades:
- El multímetro está siendo interferido por ruido de alta frecuencia: El XL4015 funciona con una frecuencia de conmutación de unos 180kHz, generando ondulaciones altas. El filtro paso bajo en la entrada del INA199 (R1/R2/C1) tiene una frecuencia de corte demasiado alta (del orden de megahercios), insuficiente para eliminar el ruido de conmutación de 180kHz. Cuando se mide una tensión continua muy pequeña superpuesta con gran rizado alterno, la lectura del multímetro no es confiable.
- La corriente no circula completamente por la resistencia de muestreo: Revisa si hay planos de cobre o rutas que estén derivando parte de la corriente.
¿Por qué fluctúa el factor de amplificación? Casi con seguridad se debe a acoplamiento de ruido de conmutación + mala conexión a tierra. La “tensión de salida” que ve el multímetro es en realidad una señal saturada de picos de conmutación. Al dividir una salida inexacta entre una entrada inexacta, el resultado del ganancia calculado varía arbitrariamente entre 2 y 200.
Sugerencia: Consigue un osciloscopio y observa la patilla de salida del INA199. Es muy probable que veas una forma de onda llena de picos, nada parecida a una tensión continua suave.
2. Respecto a los datos absurdos mostrados en la OLED y a la corriente residual de 1A en estado OFF
- Consecuencia fatal de no usar conexión Kelvin: Tu resistencia de muestreo es de 20mΩ. En una PCB con cobre de 1 onza, incluso unas pocas milésimas de pulgada de pista pueden tener una resistencia de varios miliomhs. Si no usas el método Kelvin (es decir, sacar dos pistas finas directamente desde el interior de las soldaduras de la resistencia hacia el INA199, sin pasar corriente elevada), la caída de tensión en las soldaduras y pistas también será amplificada, provocando esa “corriente absurda de 1A”.
- “Corriente fantasma” de 1A en estado OFF:
- Desviación del punto cero del amplificador operacional: La patilla REF del INA199 está conectada a tierra. Con alimentación simple, la salida del amplificador no puede llegar exactamente a 0V (suele haber un límite inferior de decenas de milivoltios). Por ejemplo, si la salida se queda en 50mV, el ADC lo detecta, divide por 50 veces la ganancia, luego por 20mΩ, y el sistema interpreta erróneamente que hay una corriente base de 50mA.
- Rebote del nivel de tierra (Ground Bounce): Cuando apagas una salida (o está en vacío), si no se ha gestionado bien la diferencia de potencial entre AGND y PGND (tierra de potencia), una diferencia de apenas unos milivoltios en la tierra puede ser amplificada por el INA199.
- Diferencias entre ADC del STM32 y del Air32: Aunque cambiaste el microcontrolador, la precisión del voltaje de referencia interno del ADC, la impedancia de entrada y la configuración predeterminada pueden variar ligeramente. Tal vez el código original incluya una “anulación por software” o coeficientes de calibración ajustados al ruido de fondo de esa placa específica. Tras cambiar de MCU, el ruido base leído por el ADC cambia, y el código lo convierte directamente en una corriente falsa de 1A.
3. ¿Es viable esta solución? ¿Cómo debería ajustarse?
Conclusión: Sí, la solución es absolutamente viable. De hecho, es la solución clásica utilizada en aquella competición electrónica (fuente de voltaje constante como maestra, fuente de corriente como esclava, regulada mediante amplificador de error). Pero depende enormemente del diseño físico del PCB (Layout).
Dado que ya tienes la placa fabricada, te propongo un conjunto de pasos de depuración hardware basados en el método de variables controladas. No te apresures a modificar el código; primero asegúrate de que la cadena analógica funcione correctamente:
- Prueba estática por inyección (para excluir interferencias de conmutación):
Apaga la placa. Usa una fuente externa estable, configúrala en modo corriente constante (por ejemplo, salida fija de 1A), e inyecta forzosamente esos 1A directamente en tu resistencia de muestreo R3.
Luego, alimenta por separado el INA199 y el MCU con 3.3V/5V. Mide con el multímetro la patilla de salida del INA199. Si ahora la salida es estable en 1A \\times 0.02\\Omega \\times 50 = 1V, significa que el INA199 no está dañado, el modelo es correcto y funciona perfectamente con corriente continua pura. Entonces, el problema está 100% relacionado con el rizado de la fuente conmutada y el layout.
- Modificación con cables volantes (“pseudo-conexión Kelvin”):
Dado que el PCB no implementa Kelvin, modifícalo manualmente. Corta las conexiones de IN+ e IN- del INA199 desde las pistas de alta corriente, y usa dos hilos esmaltados muy finos para conectar directamente desde la base metálica misma de la resistencia de 20mΩ hasta el INA199. Esto mejorará enormemente el problema de medición excesiva de corriente.
- Suavizado por software y calibración (especialmente para STM32):
- Aumenta el tiempo de muestreo del ADC en el código.
- Implementa una calibración al encender: Cuando estés seguro de que la carga está desconectada (estado OFF), lee el valor actual del ADC y guárdalo como
Offset (desplazamiento del cero). Luego, modifica todas las fórmulas de cálculo de corriente: Corriente_Real = (Lectura_ADC - Offset) × Coeficiente. Esto eliminará directamente ese “fantasma de 1A” en estado OFF.
- Revisión de las conexiones a tierra (GND):
En el esquemático aparecen AGND y GND. ¿En qué punto se unen estas dos tierras? Si están conectadas de forma aleatoria, la corriente de retorno de alta potencia interferirá con la tierra analógica. Lo correcto es conectarlas en un único punto (single-point grounding), preferiblemente cerca del terminal negativo del condensador de entrada del XL4015.
Siguiente paso recomendado:
Si no tienes acceso a un osciloscopio, te recomiendo encarecidamente realizar primero los pasos 1 y 3 (especialmente programar una lógica de calibración inicial para eliminar el ruido base). Amigo, haz primero la prueba de “inyección estática” para verificar el INA199 y confirmar que la ganancia en corriente continua sea correcta. Una vez hecho esto, podemos seguir investigando juntos.