MCU se congela cuando se desconecta la alimentación de la HMI conectada

0

Tengo un Arduino (Pro Mini) conectado a una pantalla HMI con una interfaz en serie. Cuando el usuario presiona un botón en la pantalla HMI, activa un relé conectado a uno de los pines digitales en el Arduino.

Por razones de seguridad, si el Arduino pierde la comunicación con el HMI, quiero que desactive el relé. Por lo tanto, cuando se presiona el botón, se activa una secuencia de sondeo para verificar que el botón todavía se está presionando (no confío en el evento de liberación del botón, nuevamente por seguridad). Esencialmente, el Arduino consulta al HIM por un valor. Si no se devuelve ninguno dentro de 100 ms, el código expira y mata el relé. Como dije, el código funciona si extraigo las conexiones RX, TX o de tierra del HIM, el código mata el relé y todo sigue funcionando bien. Sin embargo, tire del Bcc de la pantalla y extienda el congelador con el relé activado.

Algunas notas:

  • El Arduino y el HMI comparten un suministro común de 5V, pero el HMI no consume energía del Arduino
  • Es una conexión serie TTL, no RS-232
  • No creo que importe, pero Arduino está usando el software en serie en los pines GPIO, no el UART incorporado.
  • La conexión en serie se está ejecutando en 19.2K

Mi mejor suposición, y es una suposición, es que la pantalla HMI intenta momentáneamente extraer la corriente o volcar una carga a través de las líneas de E / S cuando pierde su fuente de alimentación. Esto parece ser suficiente para que la MCU se congele, no estoy seguro de por qué.

¿Alguna sugerencia? ¿Debo tener algo en paralelo con las líneas de datos para proteger la MCU?

¿Qué podría estar causando esto y qué puedo hacer para superar el problema?

    
pregunta Prdufresne

1 respuesta

0

Es necesario evaluar cuidadosamente cómo está conectado el relé. Hay dos grandes problemas con el relé que definitivamente pueden hacer que el software de una MCU salga a la maleza. Esto proviene de la perturbación interna de la ejecución de la MCU debido a líneas de suministro fuera de especificaciones o por voltajes de especificaciones presentes en los pines GPIO.

La bobina de relé

Las bobinas de relé son cargas inductivas y pueden causar picos, especialmente cuando la bobina de relé se desactiva. Pero las sobretensiones y picos de suministro y GND también pueden ocurrir cuando el relé se energiza, porque en algunos casos el cambio del flujo de corriente que ocurre al momento del encendido puede ser significativo con una bobina de relé de baja resistencia.

Algunas cosas para tratar y considerar:

  1. Asegúrese de que haya un diodo de sujeción de retorno en la bobina del relé.
  2. Considere operar el relé en un riel de alimentación independiente que la MCU y luego coloque el controlador en la bobina del relé a través de un transistor de búfer que aísla la corriente de la bobina del relé de la MCU.
  3. Si hay un riel de voltaje completamente separado con GND aislado, considere apagar la bobina del relé y aísle entre la MCU y el relé con un optoacoplador.
  4. Verifique que tenga suficientes condensadores de filtrado en el riel de suministro de MCU.
  5. Asegúrese de que haya una capacitancia de bypass de alta frecuencia adecuada a través de los pines MCU PWR / GND.
  6. Asegúrese de que no haya un diseño de circuito defectuoso en el GPIO que controla el relé que impone un impuesto a las capacidades de la unidad de pines más allá de las clasificaciones de especificaciones.
  7. Observe cuidadosamente cómo se hacen las conexiones reales a la bobina del relé. Asegúrese de que no haya cables largos descuidados que puedan, por sí mismos, crear un acoplamiento de ruido al resto del circuito.

Los contactos de retransmisión

Los contactos de retransmisión pueden ser una pesadilla en la cantidad de ruido generado. Esto es especialmente cierto cuando se conmutan corrientes altas o altas. Estas son algunas de las cosas que debe considerar al echar un vistazo:

  1. Asegúrese de que todo el cableado asociado con los contactos del relé se encuentre alejado del resto de los circuitos de la MCU.
  2. A veces es necesario agregar componentes del circuito de amortiguación a través de los contactos del interruptor de relé para reducir la cantidad de ruido generado cuando los contactos se abren y se cierran.
  3. Se sabe que los contactos de relé rebotan y causan múltiples aperturas y cierres de la conmutación de carga. En algunos casos, puede ser posible seleccionar un tipo diferente de relé para reducir este efecto y así reducir el ruido generado.
respondido por el Michael Karas

Lea otras preguntas en las etiquetas