DMX en Arduino con RS485

Estoy implementando DMX en Arduino. DMX utiliza el estándar RS485 para comunicarse.

En las especificaciones de RS485 se nota que hay una línea positiva, una línea negativa y una línea de tierra. Si la línea positiva tiene un potencial más alto que la línea negativa, se asigna un 1. Viceversa para un 0. Ahora, aparentemente, el protocolo no mide la diferencia entre cada línea y la tierra, sino solo la diferencia de potencial entre la línea positiva y negativa (que debe ser de al menos 200 mV).

Esto me hace suponer que sería posible manejar fácilmente DMX directamente desde Arduino, poniendo una línea alta (5V) y otra baja. Sin embargo, al mirar el sitio web de Arduino con información sobre las implementaciones de DMX, toda la información que puedo encontrar es usar algún escudo sobre el Arduino.

¿Es necesario usar un escudo o también funcionará una conexión directa? Actualmente aún no tengo ningún componente DMX, así que no puedo probarlo de inmediato.

Respuestas (1)

Chips de controlador y terminación de bus DMX

Al buscar en Internet, puede ver que se utilizan varios chips para impulsar una comunicación DMX. Todos están hechos para convertir señales de nivel lógico (BAJO y ALTO) a los niveles de señal diferencial EIA-485 en el cable de par trenzado.

Muy comunes son los chips de MAXIM que también uso para mi implementación. El que prefiero es el MAX485 o MAX481 que son idénticos con la excepción de un modo de apagado de baja potencia en MAX481 que no necesitamos en el escenario DMX. MAX481 y MAX485 de MAXIM

Otros chips que se utilizan a menudo son los transceptores de bus diferencial 75176b de Texas Instruments.

Un esquema típico que usa MAX481 para un controlador DMX es:

Un esquema típico usando MAX481 para un controlador DMX

Aislamiento

Para una configuración sencilla, es posible conectar el chip del controlador directamente a los pines de Arduino, pero si necesita un sistema robusto, especialmente en un entorno de escenario, tendrá que agregar algunos componentes electrónicos más para evitar daños eléctricos por equipos defectuosos o circunstancias accidentales.

El potencial eléctrico del lado DMX de la implementación debe aislarse del procesador. Hay 2 tipos de chips que implementan todo lo que necesitas:

Un convertidor CC/CC de 5 voltios a 5 voltios con desacoplamiento galvánico. Hay soluciones completas en un solo componente disponibles como NME0505SC o AM1S-0505SZ que se pueden usar para generar una fuente de alimentación de 5V con aislamiento galvánico de hasta 1000V. Por lo tanto, incluso si hay un alto voltaje conectado al bus DMX, existe la posibilidad de que no se produzca ningún daño o que sea bajo. Optoacopladores compatibles con TTL de alta velocidad Estos chips utilizan un LED y un transistor sensible a la luz para aislar el bus DMX de los pines de datos de Arduino. Hay optoacopladores compatibles con TTL estándar disponibles como el 6N137 de MOTOROLA.

Hay 3 señales de datos del arduino que deben llevarse del lado del arduino al lado del DMX: transmitir, recibir y la dirección de datos:

MAX481 con tres optoacopladores 6N137 y 5V DC aislado

Fuente

Por lo tanto, necesita al menos un chip controlador y, para estar seguro, es mejor que haga un aislamiento con algunos optoacopladores. Una solución mínima con solo:

  • 1x NS 75176

  • 1x 100 ohmios 1%

pero no hay aislamiento!

Circuito Arduino DMX SN75176

He visto circuitos DMX y RS485 en particular. Para el desarrollo en el banquillo todo vale. Pero para los productos finales sobre cables externos, el aislamiento salvará los circuitos principales de picos y fallas. (Los picos pueden ser eléctricos, pero los tacones de aguja de las damas pueden dañar la mayoría de los cables no blindados en el suelo...) :-)
" Un esquema típico que usa MAX481 para un controlador DMX es: "... la entrada/salida no inversora A debe conectarse a la polarización positiva, la entrada/salida inversora debe conectarse a la polarización negativa o de tierra.
Sin embargo, una sobretensión aún podría freír el extremo externo de los optoacopladores, ¿verdad? Supongo que depende del equipo, pero si solo tiene un microcontrolador en el otro extremo y están, digamos, en la misma placa, ¿tal vez no siempre valga la pena?