Tengo una aplicación MCU donde la MCU se enciende / apaga y supervisa las diferentes fuentes de alimentación de la placa (3.3V, 1.8V, 1.0V, etc.). Cuando se detecta un voltaje insuficiente o excesivo, debe activarse una alarma en el sistema.
Hasta ahora, la implementación era un poco simplista: solo tomaba una muestra cada 5 ms y si estaba por encima o por debajo del umbral relevante, por sobretensión / subtensión respectivamente, se activó la alarma.
Eso llevó al problema de que en una placa, donde el diseño del convertidor dc / dc no era óptimo y estaban presentes pulsos cortos de sobretensión, se lanzaron las alarmas. Por supuesto, tal comportamiento no es deseado.
Ahora estoy tratando de optimizar el código c de la MCU para hacer frente al problema. Sé que, idealmente, esto debería resolverse en su origen (corrija el diseño de HW o implemente un filtro LP analógico), pero supongamos que esto no es posible por el momento.
Mi primera idea fue requerir que más de una muestra consecutiva estuviera fuera de los límites antes de que se active una alarma. Pero de alguna manera llegué a este pensamiento: ¿qué sucede si tomo muestras exactamente cuando se producen las muestras de sobretensión? No estoy seguro de si son periódicos en absoluto, pero también puede ser el caso. No puedo excluirlo. En tal caso, tal implementación también fallaría; Se activaría una falsa alarma. ¿Qué piensas? ¿Tiene sentido este pensamiento?
Y luego mi próxima idea es implementar un filtro de paso bajo digital. Probablemente un filtro recursivo IIR. Pero aquí las preguntas son aún más. ¿Esto realmente resolvería mis preocupaciones? Quiero decir, si las muestras se toman exactamente cuando llegan los pulsos periódicos, entonces la solución del filtro también falla. ¿Tienes algo más que proponer? ¿Crees que el filtro LP digital es una buena idea? En caso afirmativo, supongo que debería establecer la frecuencia 3dB del filtro cerca de DC. ¿Es eso de todos modos posible?