реклама на сайте
подробности

 
 
> Передача DMX512 на atmega8 без USART
MaxiGroup
сообщение Aug 8 2011, 11:41
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 28-04-05
Из: Russia, Moscow
Пользователь №: 4 581



Есть задача сделать мастер DMX512 который будет управлять DMX девайсами, а принимать команды по USART.
Так как в недорогих контроллерах как правило один USART, то получается нужно делать программную передачу на скорости 250к

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

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andrey Vasilyev
сообщение Aug 8 2011, 12:20
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 5-12-08
Из: Санкт-Петербург
Пользователь №: 42 220



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

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

Разумеется, придется на время передачи байта запрещать прерывания. Это может влиять на работу связи с хостом по аппаратному USART-у, поэтому нужно, чтобы длительность запрещения прерываний была гарантированно меньше, чем длительность передачи байта по аппаратному USART-у. Проще всего этого добиться, запрещая прерывания для передачи только одного байта по DMX-выходу, и разрешая прерывания на пару тактов между передаваемыми по DMX байтами.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st September 2025 - 03:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016