Страница 1 из 1

Использование простого радио-канала для передачи данных.

Добавлено: Ср июл 09, 2008 10:54:36
val2049
Добрый день, есть простой китайский передатчик (плата с антенной, VCC, TXD, GND).

Визуально у передатчика 2 индуктивности парочка кондеров 4 транзистора (2 побольше, 2 SMD) и 1 резонатор на 433 МГц.

При замыкании TXD на VCC, передатчик потребляет константный ток, около 120 мА, при этом, приемник (плата с VCC, RXD, GND) на RXD выдает _очень_ не постоянный сигнал, даже если приемник и передатчик рядом (если подключить светодиод то, такое впечатление, что яркость его свечения - синусоида). Не могу понять, почему так. Возможно передатчик не может работать в постоянном режиме?

Если передатчик не может работать в постоянном режиме - можно ли на TXD подключить обыкновенный TX UART, или необходимо что нибудь закодированное манчестером?

Как лучше реализовать Манчестер на ATMega16? Пока в голову приходит только специальная подготовка данных перед отправкой их в UART, либо просто бит-стаффинг вместо манчестера.

(В приложении - дока на этот передатчик, но с энкодером, у меня версия - без него)

Добавлено: Ср июл 09, 2008 12:14:05
abc
Напрямую USART подключить не получится. Нужен манчестер. И небольшой хедер непосредственно перед посылкой данных.

Добавлено: Ср июл 09, 2008 12:22:13
val2049
abc
Понятно, а подскажите, как реализовать это кодирование на мк?
Есть ли готовые решения или все придется делать софтварно?

Можно ли просто "закодировать" посылку UART так чтобы она была похожа на манчестер (01 эквивалент 1, а 10 эквивалент 0) например?

Добавлено: Ср июл 09, 2008 12:29:51
val2049
Нагуглил: псевдо-манчестер через UART
http://www.frozeneskimo.com/electronics ... g/#more-63

Добавлено: Ср июл 09, 2008 16:31:47
abc
Да, чаще применяется именно софтовое кодирование.
Но есть и железки с манчестером на борту ( http://www.gaw.ru/html.cgi/txt/ic/Atmel ... 745-46.htm ),
Можно ли просто "закодировать" посылку UART так чтобы она была похожа на манчестер (01 эквивалент 1, а 10 эквивалент 0) например?
Так, по сути, это он и есть.

Добавлено: Ср июл 09, 2008 16:48:48
val2049
abc
Хм, если использовать "UART Манчестер"
то суть в двойной избыточности или в сохранении балланса 0 и 1 в коротком промежутке времени?

Есть ли смысл передавать байт затем его инверсию (вместо "бит затем его инверсию")? (Для экономии тактов процессора)

Добавлено: Ср июл 09, 2008 22:33:41
abc
В сохранении баланса. Дело в том, что в тракте приемника сигнал на выходной компаратор идет через конденсатор и поэтому "длинные" 0 и 1 просто не будут корректно приниматься.
Кстати, классический пример - SAA3010, используется в ИК-управлении, но выдаваемый ею код (RC5) легко передается и по радиоканалу. Можно просто использовать RC5-кодировку (в вашей программе) или "адаптировать" микруху под свои нужды.