Tengo un circuito que contiene un circuito SMPS de conmutación fuera de línea (basado en viper22a) que convierte 220 V a 5 V regulado hasta 3,3 V usando un regulador lineal IC. Esto enciende un módulo wifi ESP y un chip Atmega328p. El microcontrolador se utiliza para controlar aparatos de corriente alterna como lámparas, bombillas, ventiladores, etc. (usando triacs aislados ópticamente). El circuito va detrás del tablero de distribución, muy cerca del cable de alimentación de CA.
Todo funciona bien, excepto una o dos veces por semana cuando mi atmega se congela y los pines GPIO se enganchan en un estado aleatorio : alto, bajo o mixto (pocos pines altos, pocos pines bajos). Dado que el circuito está dentro del tablero de interruptores, la única forma de devolverlo a la operación normal es cortando la energía a ese tablero de interruptores.
Después de leer un poco, concluí que podría deberse a transitorios en la línea de CA (generados por el cambio de cargas inductivas/capacitivas como CA, refrigerador, etc.) que de alguna manera llegan al microcontrolador. ¿Estoy en lo correcto?
Encontré dos posibles soluciones:
(1) Implementar el temporizador de vigilancia en el lado del código (sí, no lo hice antes)
(2) Usar algún hardware de supresión de transitorios como MOV o diodos TVS
(1) ha sido atendido. Para (2), necesito ayuda.
Estoy planeando poner un diodo TVS para la línea de 3.3V que va al Atmega328. He seleccionado algunos que tienen un voltaje de ruptura en el rango de 4,1 a 6,8 V.
Además de esto, planeo colocar otra capa de protección justo en el punto de entrada de CA (en el circuito de suministro de energía).
Fuera del diodo TVS y MOV, ¿cuál será una mejor opción? ¿O debo agregar ambos en paralelo?
Me inclino más por los diodos TVS porque son más confiables y tienen una larga vida útil.
¿Qué será más adecuado para este propósito? ¿Hay algo más que pueda hacer para mejorar el rendimiento de mi circuito?
Gracias
EDITAR: Agregar el esquema de la fuente de alimentación
Como se sospecha, está utilizando una sola fuente para alimentar la MCU y la entrada que están optoaisladas. Ahora, ¿cuál es el punto de usar opto si todo es el mismo Vcc? 2. ¿Qué hace un diodo zener en la entrada opto? ¿Por qué no es suficiente una simple resistencia? Tienes más posibilidades:
1. Hacer un segundo devanado secundario y una nueva fuente de alimentación para alimentar las entradas (la mejor)
2. Instalar un estrangulador de modo común, condensadores (filtro PI) y TVS para alimentar las entradas
3. punto 2. + quitar opto's e instale RC + TVS, ya que los optos no sirven si usa la misma fuente.
¿Qué está pasando? Su cable de 5V que va alrededor de su casa es una antena que capta el ruido y lo transfiere a la fuente de alimentación de MCU. Su fuente de alimentación adicional carece del estrangulador de modo común en la entrada. Ver ejemplo: http://www.st.com/web/en/resource/technical/document/data_brief/CD00177969.pdf
Marko Bursic
whiskyjack
Marko Bursic