Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача DMX512 на atmega8 без USART
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
MaxiGroup
Есть задача сделать мастер DMX512 который будет управлять DMX девайсами, а принимать команды по USART.
Так как в недорогих контроллерах как правило один USART, то получается нужно делать программную передачу на скорости 250к

Посоветуйте как быть, и может быть у кого-то завалялись куски кода для этого?

Спасибо!
Andrey Vasilyev
Можно выбрать контроллер за $4, а не за $2, и у него будет 2 или больше UART-ов.

А можно действительно сделать программную передачу. В этом совершенно нет ничего сложного.
Почитать спецификацию DMX-512, и тупо дрыгая ногой выдавать все нужные последовательности нужной длины, а также отбарабанивать побитно старт-биты, биты данных и стоп-биты. 4 мкс на бит - это не так уж быстро, на частоте 8 МГц это 32 такта на бит.

Разумеется, придется на время передачи байта запрещать прерывания. Это может влиять на работу связи с хостом по аппаратному USART-у, поэтому нужно, чтобы длительность запрещения прерываний была гарантированно меньше, чем длительность передачи байта по аппаратному USART-у. Проще всего этого добиться, запрещая прерывания для передачи только одного байта по DMX-выходу, и разрешая прерывания на пару тактов между передаваемыми по DMX байтами.
MaxiGroup
Дак вот думаю что будет либо нестабильно работать, либо пропускать команды, которые будут приходить по USART. Поэтому наверное всеже лучше взять с 2мя USART контроллер.
В данный момент интересуют факты тех кто уже пробовал так делать
нечитатель
Дак зачем гадать, когда посчитать можно? Или даже нарисовать.

За время передачи байта + обработки предыдущего принятого байта изделие никак не смогло принять более чем один байт, потому что соотношение скорости передачи, скорости приёма и времени на подумать.
Так этот принятый байт в аппаратном буфере и лежит, никуда не делся. А по стандарту DMX между окончанием передачи предыдущего байта и началом передачи следующего байта у мастера свободного времени сколько.

Цитата
куски кода для этого
Для чего "этого"? Если нужно готовое устройство или программа, то хитрый план такой хитрый.
Цитата
лучше взять с 2мя
а если в следующий раз понадобится, например, управлять фонариком RGB - тогда лучше искать микросхему с тремя аппаратными модулями PWM? а если десятью фонариками?
Цитата
интересуют факты
http://1001facts.info/

(когда/если имеется в виду [U]ниверсальный [S]инхронно-[A]синхронный [R]риёмо-[T]ередатчик, то это он не одновременно синхронный и асинхронный, а это его можно применять так или эдак)
MaxiGroup
Так и не понял, о чем предыдущий пост... Я вроде бы на форуме обмена опытом, а не на конкурсе выбражательства - кто лучше и красивее. Вы видимо ошиблись форумом.

Я задал вопрос не о предоставлении готовой прошивки, а о мнении разных людей, чтобы вынести объективное решение. А куски кода очень часто подтверждают ту или иную точку зрения.
А если нечего ответить, то лучше не писать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.