DMX512

Тема в разделе "Arduino & Shields", создана пользователем DKo, 20 авг 2016.

  1. DKo

    DKo Нерд

    Всем Добрый день!

    Столкнулся со странной проблемой: собираю сеть из устройств на протоколе dmx512, в качестве физического интерфейса используется RS-485 (использую микросхему MAX485). Для управления установлена библиотека Conveptinetics ( http://dmxshield.blogspot.ru/2013/04/conceptinetics-dmx-library-for-arduino.html ). Пока в сети два устройства: УНО и Мини, в каждой находится стандартный код из примеров (Master и Slave). Так вот, проблема в том, что Уно может корректно работать как Приемник так и как передатчик, а Мини только как передатчик и при попытке поменять их местами пакеты с Уно идут, но не принимаются (дома три Iskra Mini и одна Уно, хочется Уно использовать в качестве передатчика), хотя вроде кристалл один и тот же (на Меге, например, вообще не запускается скетчи с этой библиотекой).

    Связь по RS-485 есть в обе стороны (проверял через примеры с SoftwareSerial), направление прием/передача на MAX485 выбрано также проверено.

    МБ кто-нибудь сталкивался с подобной проблемой?
    Заранее спасибо!
     
  2. ostrov

    ostrov Гуру

    Организаввть свой протокол и не мучиться. Благо это проще чем разбираться и использовать чужие.
     
  3. DKo

    DKo Нерд

    Возможно, Вы правы, но если мне скажут "организуй управление по DMX", то будет некуда деваться, поэтому я хочу изучить данный распространенный протокол...... а вся информация по его реализации без ассемблера, что я находил, сводиться к использованию прерываний аппаратного UART, только по-другому используется флаг ошибки... и другое я, скорее всего, не придумаю.
    Мне кажется, что тут прикол весь в каком-то различии Uno и Mini, компенсировав которое будет Счастье.
     
  4. Onkel

    Onkel Гуру

    dmx больше пары- тройки команд писать можно только на асме (по крайней мере фрагмент посылки), выключая во время посылки все прерывания. На 2-3 можно на честном С, ток что будьте готовы- написать дрова dmx самому можно, но не на arduino ide.
    терминаторы стоят? для дмх - должны!
    ну мало ли зачем человеку нужно? Одно дело когда в cv написано "знаток своего протокола" и другое " специалист по dmx".
     
    DKo нравится это.
  5. Tomasina

    Tomasina Сушитель лампочек Модератор

    Терминаторы только на концах линии стоят?
     
  6. DKo

    DKo Нерд

    Прошу прощения, не очень понял насчет "2-3 команд на ассемблере" ?
    Сейчас борюсь с двумя библиотеками для DMX, они написаны на Си и к ардуино имеют не очень тесное отношение. Если что получится, отпишусь, я думаю будет полезно.
     
  7. DKo

    DKo Нерд

    Вот это я не очень понимаю. По идее они только на концах нужны для поглощения отраженной мощности, но как быть уверенным, что конкретное устройство будет последним? Поэтому я думаю сделать некое подобие "заглушки", как согласованная нагрузка для коаксиальной линии.
     
  8. Onkel

    Onkel Гуру

    ну вообще-то у меня написано
    а не на ассемблере. Это означает, что если команд в dmx посылке будет больше 2-3, то atmega328 даже на С (не говоря уже о arduino ide) не успеет послать команды в нужном формате.
     
  9. Юраняк

    Юраняк Нуб

    help my!
    Есть такая беда Led system controller CLK-GK-CF-32 с
    управляющими элементами GLK-RECV-DMX-18 КИТАЙСКОГО ПРОИЗВОДСТВА
    http://www.glds.cn/
    http://www.globalmarket.com/product...-dmx-512-with-led-control-system-4526008.html
    На корпусе отсутствует входное гнездо, т.е. управление идет только с SD карты
    Перепробовал кучу программ и управляющих файлов - бес толку.
    Подключал к управляющим элементам контроллер Kommandor 4 mk2 и еще один в магазине -не помню название- бес толку.
    Может у кого - нибудь есть описание, а еще лучше управляющий файл для SD карты, Может кто знает какой программой
    записать этот файл. Готов купить информацию
     
  10. Unixon

    Unixon Оракул Модератор

    Проблемы с заполнением буфера аппаратного UART-а ?