DMX на Arduino с RS485

Я реализую DMX на Arduino. DMX использует для связи стандарт RS485.

В спецификациях RS485 отмечается наличие положительной линии, отрицательной линии и линии заземления. Если положительная линия имеет более высокий потенциал, чем отрицательная линия, дается 1. И наоборот для 0. Очевидно, протокол не измеряет разницу между каждой линией и землей, а измеряет только разницу потенциалов между положительной и отрицательной линией (которая должна быть не менее 200 мВ).

Это заставляет меня предположить, что можно было бы легко управлять DMX напрямую с Arduino, установив одну линию на высокий уровень (5 В) и одну на низкий уровень. Однако, глядя на веб-сайт Arduino с некоторой информацией о реализации DMX, вся информация, которую я могу найти, касается использования некоторого щита над Arduino.

Обязательно ли использовать щит или прямое подключение тоже подойдет? В настоящее время у меня еще нет компонентов DMX, поэтому я не могу проверить это прямо сейчас.

Ответы (1)

Чипы драйверов и терминация шины DMX

При поиске в Интернете вы можете увидеть несколько микросхем, используемых для управления связью DMX. Все они предназначены для преобразования сигналов логического уровня (LOW и HIGH) в уровни дифференциальных сигналов EIA-485 на витой паре.

Очень распространены микросхемы от MAXIM, которые я тоже использую для своей реализации. Я предпочитаю MAX485 или MAX481, которые идентичны, за исключением режима отключения с низким энергопотреблением в MAX481, который нам не нужен в сценарии DMX. MAX481 и MAX485 от MAXIM

Другими часто используемыми микросхемами являются приемопередатчики дифференциальной шины 75176b от Texas Instruments.

Типичная схема с использованием MAX481 для контроллера DMX:

Типичная схема с использованием MAX481 для контроллера DMX

Изоляция

Для простой настройки можно подключить микросхему драйвера напрямую к контактам Arduino, но если вам нужна надежная система, особенно на сцене, вам придется добавить еще немного электроники, чтобы избежать электрического повреждения из-за неисправного оборудования или случайных обстоятельств.

Электрический потенциал стороны реализации DMX должен быть изолирован от процессора. Есть 2 типа чипов, которые реализуют все, что вам нужно:

Преобразователь постоянного тока 5 вольт в 5 вольт с гальванической развязкой. Доступны комплексные решения в одном компоненте, такие как NME0505SC или AM1S-0505SZ, которые можно использовать для создания источника питания 5 В с гальванической развязкой до 1000 В. Таким образом, даже если к шине DMX подключено высокое напряжение, существует вероятность отсутствия или незначительного повреждения. Высокоскоростные оптопары, совместимые с TTL В этих микросхемах используется светодиод и светочувствительный транзистор для изоляции шины DMX от выводов данных Arduino. Существуют стандартные TTL-совместимые оптопары, такие как 6N137 от MOTOROLA.

Есть 3 сигнала данных от Arduino, которые должны быть переданы со стороны Arduino на сторону DMX: передача, прием и направление данных:

MAX481 с тремя оптопарами 6N137 и изолированным питанием 5В постоянного тока

Источник

Таким образом, вам нужен хотя бы один чип драйвера, и на всякий случай лучше сделать изоляцию с помощью оптронов. Минимальное решение, состоящее только из:

  • 1 серийный номер 75176

  • 1x 100 Ом 1%

а изоляции нет!

Схема SN75176 Arduino DMX

В частности, я видел схемы DMX и RS485. Для разработки на скамейке все пойдет. А вот для конечных изделий по внешним проводам изоляция убережет главные цепи от всплесков и замыканий. (Шипы могут быть электрическими, но женские туфли на шпильках с шипами могут повредить большинство небронированных кабелей на земле...) :-)
Типичная схема с использованием MAX481 для контроллера DMX: «... неинвертирующий вход/выход A должен быть подключен к положительному смещению, инвертирующий вход/выход должен быть подключен к отрицательному или заземленному смещению.
Однако перенапряжение все еще может поджарить внешний конец оптопары, верно? Я полагаю, это зависит от оборудования, но если у вас есть только микроконтроллер на другом конце, и они, скажем, на одной плате, может быть, это не всегда будет стоить того?