Контроллер RGB на базе STM32 для DMX512 и 2811(2812B) в наше время вещь довольно распространенная и подобное устройство можно приобрести сейчас фактически в любом магазине который хоть сколько, но немного связан с осветительным концертным оборудованием.
Конкретно в моем случае требовалось разработать кастомный продукт с некоторыми особенностями которых не встретишь в готовых решениях. Я не буду сильно разбирать в чем состояла уникальность данного контроллера, но покажу и проведу экскурс сквозь процесс его разработки.
Для начала требовалось разобраться что же это такое эти пресловутые обозначения, DMX, 2811 и 2812. Честно признаться я особо никогда не интересовался светодиодной RGB тематикой, мне хватало одноцветных обычных светодиодных решений для моих задач.
DMX512 — это стандарт цифровых сетей связи, которые обычно используются для управления освещением и эффектами(дымогенераторы, управление заслонками и т.д.). Первоначально он был задуман как стандартизированный метод управления диммерами сценического освещения, которые до DMX использовали различные несовместимые проприетарные протоколы. Он быстро стал основным методом подключения контроллеров (консоли освещения) к диммерам и устройствам со специальными эффектами, таким как генераторы дыма и интеллектуальные источники света.
DMX512, является общемировым золотым стандартом в концертом оборудовании и уже долгое время разъёмы подключения стали стандартизированы и это, как правило, 3х или 5пи штыревые подключения. Передача сигнала в DMX512 происходит посредством дифференциального сигнала, стандарта RS-485. Про данный стандарт вы можете найти уйму информацию в интернете, вот хотя бы ссылка на страницу описания протокола в Wikipedia.



Передача данных в DMX512 осуществляется в следующей последовательности:
1. MBB(mark before brake)
2. BREAK(пауза — может быть практически не ограничена по времени, хотя иногда встречается ограничение в размере одной секунды)
3. MAB(mark after break)
4. Start Code(я его называю dummy pixel)
5. CH1-CH512(данные с ограничением в 512 байт если не выходить за пределы стандарта протокола) — здесь битрейт всегда стандартный и не может меняться в пределах довольно узкого диапазона значений, поэтому рекомендую всегда устанавливать на МК внешние кварцевые резонаторы.

2811 — уже давно стал стандартом для светодиодных лент, это драйвер который устанавливается для контроля одного сегмента GRB и часто имеет питание 12В постоянного тока. Драйверы данного типа, как правило, устанавливаются отдельно от светодиодного кристала и более удобные в использовании для управления одиночных кисельных сегментов LED. В большинстве случаев данные чипы имеют три выхода(по одному для каждого цвета светодиода).

2812B — драйверы светодиодов, как правило, встроены в один корпус или даже кристал светодиодного элемента. Самое распространенное использование находит в корпусе стандарта 5050 — то есть 5 на 5мм. Запитываются данные элементы как правило напряжением 5В. Больше всего данное решение находит в светодиодных лентах. Так как 2812B занимает меньше места чем 2811 то и цена, как правило меньше — в пересчете стоимость на один пиксель.


Касательно протокола передачи данных для светодиодных лент стандарта 2811 и 2812B скажу в кратце что он исполнен как сдвиговые регистр, касательно данных методов передачи данных не вижу смысла писать здесь так как эта информация доступна практически на любом радиолюбительском стайте.
Закупив различные типы светодиодных лент, контроллеров и окончательно разобравшись в принципах их работы я начал проектировать свою первую схему и печатную плату.

Первые прототипы были изготовленные на скорую руку при помощи домашнего станка с ЧПУ.
Проделов достаточное количество экспериментов сделал вторую версию схемы и печатной платы которую на этот раз уже отправил в китай для производства тестовых образцов в количестве 10шт.
Допустив большое количество недочетов, что в принципе думаю видно из количества проводов и перемычек, — сделал вторую версию контроллера, но уже ЖК дисплеем вместо сегментных индикаторов, более мощным микроконтроллером STM32F030.
Уперевшись в лимиты, стал испытывать неудобства использования ЖК дисплей с двумя строчками поэтому решили перейти на что-то более гибкое, были выбраны старые добрые, проверенные временем чёрно-белые ЖК дисплеи от телефонов NOKIA. Также помимо замены дисплея было принято решение перейти на механический вращающийся энкодер. Соответственно была спроектирована и новая схема, а с ней и печатная плата, значит требовался очередной этап испытаний и отладки.

Заканчивалась эпопея с разработкой данного контроллера, признаться честно очень сильно я намучился с отладкой для него и капризным дисплеем. Иногда получалось так что резинка которая должна передавать сигналы на ЖК экран отходила, иногда одни дисплеи давали один уровень контрастности в то время как другие — сильно отличительный от предыдущих. Из-за наличия 8 независимых выходов пришлось изрядно намучатся с прерываниями, что бы все сигналы были четко синхронизированы и не происходило непредвиденных ситуаций. Не смотря ни на что проект был закончен, и он нашёл свое применение в этом мире. Это был фантастически интересный опыт о котором я никогда не забуду.


Таким образом я провел вам экскурс о том как проходит цикл разработки любого устройства, начиная от концепта и непрерывным доведением идеи до конечного пункта своего финального назначения — ПРОДУКТА.
Смотрите также другие наши работы в разделе — МАСТЕРСКАЯ, где можете найти возможно, что-то еще интересное для вас. Есть у нас небольшой и скромный канал YOUTUBE — будем также рады если вы его посетите и поддержите нас лайками и подписками.













