¿Cómo evitar que un microcontrolador se reinicie debido a las fluctuaciones de Vcc?

0

Caso n. ° 1: Tengo una estación de bombeo con un motor de bomba autónomo de 240 V conmutado por un interruptor de presión de 240 V, que alimenta un tanque de presión a un máximo. presión. Después de dicho tanque hay cuatro válvulas solenoides de 24 V (250 mA de entrada, 180 mA de retención), controladas por una placa de relés alimentada por 5 V (Sainsmart). Esta placa de relé está conectada a las salidas del microcontrolador (Arduino UNO) a través del optocoppler.

Los relés se activan | APAGAN en serie. Una vez que se apaga el último, el motor de la bomba aún funciona debido a que la presión de apagado y apagado todavía no se ha alcanzado. Unos segundos más tarde, la presión aumenta, la bomba se apaga, y aquí surge el problema: el microcontrolador se reinicia (cuando el motor se apaga).

Hay un suministro monofásico de 240 V para todo. Las válvulas de solenoide obtienen su energía de un transformador de núcleo anular de 50VA. El microcontrolador tiene una fuente de alimentación enchufable conmutada de 240V / 5V con 2A (< 200mA requerido).

Caso n. ° 2: otro escenario: el microcontrolador conectado a 240V / 5V controla un pequeño relé (5A), que conmuta a 240V (con amortiguador) para un relé (contactor) de 25A montado en DIN más grande, que conmuta un elemento de calentamiento resistivo de 3kW Para un sistema de agua caliente. En ocasiones, el microcontrolador se reinicia cuando enciende la carga.

Veo el mismo problema en ambos casos. Pero, ¿cuál podría ser el problema / solución?

¿100uF con 0.1uF en paralelo a 5V Vcc / GND?

Caso # 1: los juicios ...
1. use un 4k7 y un paralelo de 100nF desde + 5V Vcc a RESET. No hay cambio.
2. use un capacitor de 1,000uF paralelo a + 5V Vcc y GND. Sin cambios.

Caso # 1: la solución ...
3. agregue un amortiguador (104 en serie con 100R) paralelo a los contactos del relé.
¡No más problemas de reinicio! :)

Gracias por toda la entrada; desencadenó una gran cantidad de investigación y validación, lo que resultó en algo de aprendizaje ... más aún para crear circuitos más robustos, cuando se trata de entradas en dispositivos de Estados Unidos.

    
pregunta MaxG

4 respuestas

1

Usando Q = C * V, y tomando el derivado, obtenemos

dQ / dt = dC / dT * V + C * dV / dT

Ahora mantenemos el condensador constante, dejando dQ / dT = C * dV / dT

Reemplace dQ / dT con I, y tenemos el útil I = C * dV / dT

Ahora suponga que I = 0.2 amperios, dV = 0.5 voltios, dT = 5 segundos, y vuelva a organizar para encontrar C.

C = I / (dV / dT) = I * dT / dV = 0.2 * 5 / 0.5 = 2 Faradios de capacidad.

¿Ha considerado un supercondensador, aislado por un diodo schottky del pin VDD de la MCU? con 100 ohmios en el diodo para mantener cargada la supercapa?

=========================================

Permite tomar un botín (conjetura científica) en los cálculos de problemas de campo magnético en PCB. Usa la fórmula

Vinduce = MUo * MUr * Área / Distancia * dI / dT.

Nuestro primer supuesto es el dI / dT: asumamos sus 10 amperios en 100 nanosegundos, con los 100 nanosegundos definidos por capacitancia parásita en los bobinados del motor de la bomba. De nuevo esto es un SWAG.

Suponga que el PCB, en el pin de restablecimiento de MCU, tiene un área de 1 cm por 1 cm. O si la traza de reinicio se ejecuta en todo el lugar, suponga 1 cm por 10 cm. Y suponga que el cableado de la bomba / relé está a 1 cm de este bucle de reinicio.

¿Qué voltaje inducido podemos predecir, usando nuestros supuestos? La primera tarea es insertar valores para MUo (4 * pi * 1e-7) y MUr (1, para aire, vacío, cobre, FR-4, etc.) y la ecuación se convierte en

Vinduce = 2e-7 * Área / Distancia * dT / dT

Vinduce = 2e-7 * 0.01meter * 0.01meter / 0.01meter * 10 amps / 100nanoSec

Vinduce = [aquí ponemos un número que indica que existe un gran problema: 1volt; y nosotros     de acuerdo si nuestras matemáticas predicen que 1v es probable, entonces es probable que tengamos un problema]

Vinduce = 2e-7 * 0.01 * 10amp * 1e + 7

Vinduce = 2e ^ (- 7 -2 +1 +7) = 2e ^ (- 1) = 0.2 voltios.

OK, podemos o no tener un problema de EMI. Examine el área del bucle en el pin de reinicio. Tal vez haga que la gente de StackExchange entre en el pensamiento, publicando esa parte del diseño de la PCB (las capas y la capa de componentes).

Ha habido al menos 3 buenas respuestas en EMI. Una vez que encuentre el área de bucle en el pin Restablecer, haga un bucle de ese tamaño, en un cable aislado, y péguelo a la PCB para que sea monitoreado por una sonda de alcance; obtener una conexión GND de área cero a la sonda puede ser un desafío. Luego encienda y apague la bomba y vuelva a encenderla. Y por favor informe lo que encuentre.

    
respondido por el analogsystemsrf
2

Estoy de acuerdo con Lucky Bot en que el "remanente" de PSU no es un problema aquí, y estoy de acuerdo con Spehro Pefhany y Lucky Bot en que esto parece un problema de EMC.

Lo que sucede cuando el interruptor de presión se apaga es que una carga inductiva se apaga abruptamente. La "inercia magnética" de la inductancia intenta mantener el flujo de la corriente, pero ha impedido el paso por una resistencia muy alta ... lo que da como resultado un pico de voltaje poderoso inmediato a través de los terminales del inductor, que típicamente atrae un arco a través de la mecánica Interruptor de contactos, excitado por el bobinado del motor. El arco en sí es ruidoso, y el interruptor puede ser rebotado. Además del pico de voltaje, el breve pero poderoso dI / dT también produce un pulso EM que se propaga a través del "éter" desde el (los) inductor (es), posiblemente provocando algunas fallas / ruido en las distintas trazas de PCB alrededor de su Arduino.

Hay un problema similar con las bobinas de relé, por ejemplo, impulsado por un transistor. A medida que el transistor se abre en el circuito, su colector sufre un pico desde la bobina del relé, por lo que la transición siempre debe estar protegida por un "diodo de retorno de retorno" antiparalelo.

El bloqueo adecuado de la línea de alimentación a su Arduino MCU es una medida parcial. Desafortunadamente, la atención al diseño de PCB es otra. En el motor, puede intentar insertar un filtro EMC en el cableado de alimentación y / o colocar un cordón / anillo / manguito de ferrita sobre los cables, o algo parecido.

¿Tiene un 'alcance para observar algunos puntos interesantes en torno a la MCU? Por ejemplo, la entrada de la PSU y la entrada de reinicio?

Dicho esto, los circuitos digitales pueden ser difíciles de depurar en este síntoma, incluso con un alcance a la mano. Su ventaja es que el Arduino es un tablero simple y bien documentado. No he estudiado el PCB a mí mismo. En general, en las computadoras, la línea de reinicio no es una sola traza que va desde algún conmutador o encabezado hasta la MCU, puede ser una red más compleja en sí misma, con varias "fuentes" de la señal de reinicio. Un buen lugar (punto de inicio) para buscar fallos de restablecimiento es el pin de entrada RESET de la CPU. Y, puede enfrentar una incertidumbre interesante: las fallas que ve en un 'alcance', ¿provienen de la traza o "nodo" que está viendo, o son posiblemente inducidas al "bucle" entre la punta de la sonda y la correa de tierra de la sonda? A modo de comparación, intente acortar la punta de la sonda a la abrazadera de tierra de la sonda y genere la punta de EM, para estar casi seguro de lo que está viendo.

Es posible que la amplitud del pulso / pico EM sea algo aleatoria o muy aleatoria. Aparte de otras influencias aleatorias misc (como el patrón único y preciso del "rebote" de un contacto de relé mecánico), la forma sinusoidal de la corriente a través del motor también puede ser un factor en las cargas inductivas impulsadas por CA. Lo que es aleatorio aquí es el instante en el tiempo frente a la fase instantánea de la onda sinusoidal, donde se abren los contactos del relé. Algunos interruptores de estado sólido (basados en transistores, es decir, PhotoMOS o IGBT) también pueden causar EMI, por el mismo mecanismo. No exhiben "rebotes" mecánicos, pero el abrupto apagado (dI / dt) todavía está allí. Los interruptores de estado sólido basados en un triac o tiristor deben ser más corteses: se apagan durante una transición cero. Es por eso que solo funcionan para AC

En cuanto a algunas referencias ... hablando de bloquear la alimentación de los circuitos integrados por condensadores, intente leyendo este tema y siga los enlaces a Kemet KSIM y a la aplicación Murata C39E. Esas dos fuentes analizan la "elección de los condensadores de bloqueo" con meticuloso detalle :-) Y, quizás, eche un vistazo a este video puntas causadas por cargas inductivas en el apagado (y el propósito de los diodos de retorno, aunque un diodo de retorno solo protegerá el transistor de conmutación, y no evitará que el pulso EM se propague a través del éter). Parece que te gusta el bricolaje ... fundas de ferrita para obtener información sobre el filtrado de energía en desechar las fuentes de alimentación de la PC o varios cables e incluso cables de interconexión de datos. Un adecuado filtro de línea de alimentación para su motor (LC PI o lo que sea) puede fácilmente cuesta más que el Arduino, pero puede valer la pena la inversión.

Si prueba algunos manguitos o anillos de ferrita, puede poner varios en serie, o enrollar un par de vueltas alrededor de uno, puede hacer un choque de modo común insertando o enrollando el live y regresando uno junto al otro a través de un anillo compartido. .. Y ya sea que pruebe con manguitos / anillos de ferrita o un filtro LC (o ambos), puede hacer una diferencia si coloca el filtro cerca del motor en lugar del interruptor. Diría que cerca del motor sería mejor, ya que haría que la "antena parásita" sea más corta para la energía de RF irradiada ... nuevamente mi visión puede ser ingenua.

    
respondido por el frr
1

Parece que el problema es el EMI del cambio, y esta es una de las razones por las que los tableros hobbist como Arduino no se usan a menudo de forma industrial, y los PLC son relativamente caros.

La solución es un mejor diseño y diseño de EMC, o comprar un producto con esas características diseñadas desde el principio. Evitar los relés mecánicos ayuda, pero a menudo es menos apropiado.

    
respondido por el Spehro Pefhany
1

Lo que sea que sea la pequeña capacidad de entrada dentro del convertidor de modo de conmutación es probablemente suficiente para ejecutar la MCU a través de este evento, teniendo en cuenta que estos límites están cargados a la tensión total de la línea de CA. Es probable que Spehro esté en lo correcto y que el pin RESET en la MCU se esté cambiando de EMI. Intente conectar este pin directamente al suministro de MCU o coloque la tapa SMD más grande que encajará fácilmente en cualquier pin pequeño que se encuentre normalmente en esta pin.

    
respondido por el lucky bot