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

 
 
> Манчестер для Avr
Семён
сообщение Nov 7 2006, 11:33
Сообщение #1


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

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Всем добрый день. Вопрос, следующий кто небудь может поделиться исходником приема Манчестерского кода для AVR


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 42)
#alex_
сообщение Nov 9 2006, 04:50
Сообщение #2





Группа: Новичок
Сообщений: 12
Регистрация: 30-09-06
Пользователь №: 20 840



Посмотри апнот AVR410 на их сайте - это манчестер применённый к стандарту RC5 (на асме)
Go to the top of the page
 
+Quote Post
Семён
сообщение Nov 9 2006, 07:11
Сообщение #3


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

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Пишу сам. Тема закрыта.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
dvm11111111
сообщение Dec 27 2006, 03:29
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567



Цитата(Семён @ Nov 9 2006, 07:11) *
Пишу сам. Тема закрыта.



Если не жалко, сообщи о результатах, тоже интересует данная тема, вот только с самосинхронизацией загвоздка, как ее реализовать.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Dec 27 2006, 03:43
Сообщение #5


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(dvm11111111 @ Dec 27 2006, 00:29) *
Цитата(Семён @ Nov 9 2006, 07:11) *

Пишу сам. Тема закрыта.

Если не жалко, сообщи о результатах, тоже интересует данная тема, вот только с самосинхронизацией загвоздка, как ее реализовать.

Манчестер - самосинхронизированный код.

Вгрубе алгоритм такой

1) Ждёте перепада 0-1 или 1-0 в середине бита (вот вам и синхронизация),

2) Определяете какой бит пришел и запоминаете его (вдвигаете в регистр),

3) Пропускаете 3/4 периода и переходите к пункту 1.

В начале сообщения должно быть кодовое слово, по которому вы синхронизируете первый бит.
Вот и всё.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
dvm11111111
сообщение Dec 27 2006, 08:05
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567



а не слишком ли навороченно получается?
да кстати нашел вот такую весчь, только все ника побороть немогу.

Сообщение отредактировал dvm11111111 - Dec 27 2006, 08:13
Прикрепленные файлы
Прикрепленный файл  AN_008_Oversampling_1_0.rar ( 474.46 килобайт ) Кол-во скачиваний: 318
 
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Dec 27 2006, 10:39
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Цитата(dvm11111111 @ Dec 27 2006, 09:05) *
а не слишком ли навороченно получается?
да кстати нашел вот такую весчь, только все ника побороть немогу.


Если искать простые пути, то можно посмотреть сдесь
www.atmel.com/dyn/resources/prod_documents/doc3a78163c4000a.pdf
Go to the top of the page
 
+Quote Post
pokos
сообщение Dec 27 2006, 16:08
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 270
Регистрация: 29-06-06
Пользователь №: 18 445



Цитата(dvm11111111 @ Dec 27 2006, 08:05) *
а не слишком ли навороченно получается?

Наворочено - это когда ФАПЧа для строба и адаптивный порог для импульса.
Go to the top of the page
 
+Quote Post
dvm11111111
сообщение Dec 28 2006, 02:40
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567



Цитата(&-rey @ Dec 27 2006, 10:39) *
Цитата(dvm11111111 @ Dec 27 2006, 09:05) *

а не слишком ли навороченно получается?
да кстати нашел вот такую весчь, только все ника побороть немогу.


Если искать простые пути, то можно посмотреть сдесь
www.atmel.com/dyn/resources/prod_documents/doc3a78163c4000a.pdf


Про использование INT0 и таймера эт я знаю, только это подходит для приема RC5 с его 12 битами, а вот если принимать таким способом 112 бит, то выяснилось, что расчетные значения задержек несовсем подходят.
Сбой считываемых значений начинается гдето на 8-10 байте, что несовсем подходит.
Сейчас и передатчи и приемник работают от кварцев, а планируется использовать передатчик от внутреннего RC (да еще и несколько передатчиков, соответственно уход длительности импульсов будет и в плюс, и в минус), а так ввообще получится плюс-минус пол километра. Вот меня и интересует алгоритм с синхронизацией.


Цитата(pokos @ Dec 27 2006, 16:08) *
Цитата(dvm11111111 @ Dec 27 2006, 08:05) *

а не слишком ли навороченно получается?

Наворочено - это когда ФАПЧа для строба и адаптивный порог для импульса.


а по подробней, с исходником на С?
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Dec 28 2006, 10:13
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Цитата(dvm11111111 @ Dec 28 2006, 03:40) *
Про использование INT0 и таймера эт я знаю, только это подходит для приема RC5 с его 12 битами, а вот если принимать таким способом 112 бит, то выяснилось, что расчетные значения задержек несовсем подходят.
Сбой считываемых значений начинается гдето на 8-10 байте, что несовсем подходит.
Сейчас и передатчи и приемник работают от кварцев, а планируется использовать передатчик от внутреннего RC (да еще и несколько передатчиков, соответственно уход длительности импульсов будет и в плюс, и в минус), а так ввообще получится плюс-минус пол километра. Вот меня и интересует алгоритм с синхронизацией.


насколько я помню там нет упоминания об INT и TMR, просто описан алгоритм приема манчестера, с синхронизацией по длинному импульсу (это когда импульсы идут потоком и нужно выловить пакет определенной длительности)
что же касается сбоев то во первых для таких вещей обычно пользуют Capture (ICR1), а во вторых точка привязки (или точка отсчета) должна быть не в начале приема, а перемещаться после каждого фронта (или периода синхросигнала), тогда точность будет определять погрешность в пределах 1-го периода синхронизации.
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Dec 28 2006, 13:40
Сообщение #11


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



А что если сделать вот так...
имеем внешнее прерывание по любому изменению
в прерывании смотрим чего насчитал таймер...
и обнуляем счетчик таймера для след изменеия по входу ExtINT
(получается типа ICP только захват счетчика таймера по любому изменению уровня)
Определяем минимальную длит импульса =Tmin.
;----
далее, с каждым прерыванием по Ext INT, смотрим что натикало (пусть будет T)и сверяемся с таблицой истинности:
1) T=2Tmin & __--- => bit=1
2) T=2Tmin & --__ => bit=0
3) T=Tmin & --__ & lastbit=1 => skip
4) T=Tmin & --__ & lastbit=0 => bit=0
5) T=Tmin & __-- & lastbit=0 => skip
6) T=Tmin & __-- & lastbit=1 => bit=1
;----
переменную T min ОЦЕНИВАТЬ с каждым прерыванием EXTINT.
и пусть она будет +- 10%
сори если гдето накасячил - но смысл такой...


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
ReM37
сообщение Dec 29 2006, 17:34
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



А если через UART, но с манчестером? Т.е. из одного байта получаем два.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Dec 29 2006, 19:06
Сообщение #13


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(ReM37 @ Dec 29 2006, 14:34) *
А если через UART, но с манчестером? Т.е. из одного байта получаем два.

Скорее, из двух - один. А вообще, смысла использовать уарт с манчестером не было и нет.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 29 2006, 19:11
Сообщение #14


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



В журнале "Радио" за 1983 год было описание первого самодельного компютера "МИКРО-80". В одном из номеров был описан блок чтения/записи на магнитную ленту и очень подробно расписан процесс приёма и передачи байтов манчестерским кодом. Процессор 8080 прекрасно справлялся, ну а уж AVR-ка запросто должна его одной левой...


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Dec 29 2006, 19:14
Сообщение #15


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



да! как давно это было..... синхробайт E6 итд.


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
ReM37
сообщение Dec 29 2006, 21:54
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Цитата(Kovrov @ Dec 29 2006, 18:14) *
да! как давно это было..... синхробайт E6 итд.


E6 - 11100110. Почему именно E6?
Радио86РК - помню. МИКРО-80 нет... smile.gif
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 29 2006, 23:04
Сообщение #17


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Можно просто переписать программу на AVR, правда тогда процессор будет занят только приёмом кода. Но, ИМХО, вполне можно переписать программу с использованием прерываний, таймера и т.д.
Ну, а нужный номер журнала, наверное можно найти на CD или в Сети. smile.gif


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 30 2006, 10:31
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(ReM37 @ Dec 29 2006, 17:34) *
А если через UART, но с манчестером? Т.е. из одного байта получаем два.

И теряем одно из важных своиств- отсутствие пост. состовляющей
Цитата(Nanobyte @ Dec 29 2006, 19:11) *
очень подробно расписан процесс приёма и передачи байтов манчестерским кодом.

помоему , то называлось "Без возвращения к нулю"
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Dec 30 2006, 12:04
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Отсутствие постоянной составляющей можно получить как в AN43 от RFM - табличка оттуда
Nibble = 0 010101
Nibble = 1 110001
Nibble = 2 110010
Nibble = 3 100011
Nibble = 4 110100
Nibble = 5 100110
Nibble = 6 100110
Nibble = 7 010110
Nibble = 8 011010
Nibble = 9 101001
Nibble = 10 101010
Nibble = 11 001011
Nibble = 12 101100
Nibble = 13 001101
Nibble = 14 001110
Nibble = 15 011100


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
ReM37
сообщение Dec 30 2006, 14:25
Сообщение #20


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Цитата(sensor_ua @ Dec 30 2006, 11:04) *
Отсутствие постоянной составляющей можно получить как в AN43 от RFM - табличка оттуда


Значит один байт превращаеться в 12 бит. Но будет 3 одинаковых бита подряд. В манчестере не больше 2. Когда можно считать, что постоянной составляющей нет?
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 30 2006, 16:02
Сообщение #21


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(muravei @ Dec 30 2006, 10:31) *
... помоему , то называлось "Без возвращения к нулю"

Совершенно верно, но в ТЕ времена называть код манчестерским "не рекомендовалось" cool.gif . Но, тем не менее, вполне работоспособная схема и программа. И сейчас кассеты прекрасно считываются на той-же МИКРО-80.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
=GM=
сообщение Dec 31 2006, 02:50
Сообщение #22


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Nanobyte @ Dec 30 2006, 13:02) *
Совершенно верно, но в ТЕ времена называть код манчестерским "не рекомендовалось" cool.gif

Ну почему, был такой код, назывался манчестер-2, работал на скорости 1 мбод. Сообщения передавались 20-битными словами. Выпускались даже приемник и передатчик в виде микросхем. Я сам проектировал систему управления на их основе.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 31 2006, 12:24
Сообщение #23


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(=GM= @ Dec 31 2006, 02:50) *
... Ну почему, был такой код, назывался манчестер-2, работал на скорости 1 мбод.

Ну да, код-то был (как в том анекдоте про Вовочку - предмет есть, а слова нет smile.gif ) а вот в документации всё должно быть отечественным !!!


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
muravei
сообщение Jan 3 2007, 20:23
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(=GM= @ Dec 31 2006, 02:50) *
Выпускались даже приемник и передатчик в виде микросхем.

И сейчас выпускаются:К1889ВА1Ф
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jan 5 2007, 01:45
Сообщение #25


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(muravei @ Jan 3 2007, 17:23) *
Цитата(=GM= @ Dec 31 2006, 02:50) *

Выпускались даже приемник и передатчик в виде микросхем.

И сейчас выпускаются:К1889ВА1Ф

А раньше была такая серия 588. 588ВГ6 - передатчик, 588ВА3 - усилитель-ограничитель, вроде та же светлана выпускала.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 5 2007, 04:14
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Отсутствие постоянной составляющей выполняется простой операцией, аналогичной формированию CRC. Называется скрэмблирование. Это скремблирование + 11 протоколов типа манчестер находятся в главе два той книги по модемам которую я выкладывал на FTP. В частности есть даже ISDN.
Прикрепленные файлы
Прикрепленный файл  27.zip ( 116.97 килобайт ) Кол-во скачиваний: 3176
 
Go to the top of the page
 
+Quote Post
ReM37
сообщение Jan 11 2007, 23:51
Сообщение #27


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Это запись одной команды с пульта управления ТВ. Кто может сказать где какой бит? Вроде должен быть RC5, но по моему что-то здесь не так...

http://rem-blog.net/tmp/rc5.gif
Go to the top of the page
 
+Quote Post
dvm11111111
сообщение Jan 12 2007, 02:14
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567



Цитата(ReM37 @ Jan 11 2007, 23:51) *
Это запись одной команды с пульта управления ТВ. Кто может сказать где какой бит? Вроде должен быть RC5, но по моему что-то здесь не так...

http://rem-blog.net/tmp/rc5.gif


Эт ШИМ в чистом виде.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 12 2007, 03:14
Сообщение #29


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(ReM37 @ Jan 11 2007, 23:51) *
Это запись одной команды с пульта управления ТВ. Кто может сказать где какой бит? Вроде должен быть RC5, но по моему что-то здесь не так...

http://rem-blog.net/tmp/rc5.gif


да это не похоже на RC5
вот такого П__П__П куска в RC5 ИМХО быть не должно
посмотрите в сторону кодов когда 1= П__ а 0= П_
ну или как-то наоборот
похожие коды у Panasonic, но там вроде П___ и П_

Цитата(dvm11111111 @ Jan 12 2007, 02:14) *
Цитата(ReM37 @ Jan 11 2007, 23:51) *

Это запись одной команды с пульта управления ТВ. Кто может сказать где какой бит? Вроде должен быть RC5, но по моему что-то здесь не так...

http://rem-blog.net/tmp/rc5.gif


Эт ШИМ в чистом виде.

Конечно это ШИМ.
Более того если посмотреть на временную диаграму движения Вашей вилки к Вашему рту
в процессе еды, от состояния сильного голода к состоянию полного обжорства
то Вы с удивлением обнаружите что это ТОЖЕ ШИМ, причем с полными признаками
плавного регулирования smile.gif
Go to the top of the page
 
+Quote Post
ReM37
сообщение Jan 12 2007, 11:38
Сообщение #30


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Цитата(singlskv @ Jan 12 2007, 02:14) *
Цитата
да это не похоже на RC5
вот такого П__П__П куска в RC5 ИМХО быть не должно


По моему такого точно не должно быть. Потому и просил разобрать по битам. Мне не получилось. Это не Манчестер.
Попробовал все пульты, которые у меня есть. RC5 не нашел. smile.gif


Цитата
Эт ШИМ в чистом виде.



smile.gif TV управляеться ШИМ? Это SONY.
Go to the top of the page
 
+Quote Post
Семён
сообщение Jan 12 2007, 12:21
Сообщение #31


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

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



приветствую всех. извиняюсь за долгое отсутствие не было инета. Свой вариант приема постораюсь опубликовать на следующей недели.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 12 2007, 16:58
Сообщение #32


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(ReM37 @ Jan 11 2007, 23:51) *
Это запись одной команды с пульта управления ТВ. Кто может сказать где какой бит? Вроде должен быть RC5, но по моему что-то здесь не так...

http://rem-blog.net/tmp/rc5.gif


Если все еще интересно то это код 011000010000
Go to the top of the page
 
+Quote Post
ReM37
сообщение Jan 12 2007, 20:22
Сообщение #33


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Цитата(singlskv @ Jan 12 2007, 15:58) *
Если все еще интересно то это код 011000010000


Возможно. Т.е. короткий импульс = 0, длинный = 1. Просто и не хуже Манчестера.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 12 2007, 23:03
Сообщение #34


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(ReM37 @ Jan 12 2007, 20:22) *
Цитата(singlskv @ Jan 12 2007, 15:58) *


Если все еще интересно то это код 011000010000


Возможно. Т.е. короткий импульс = 0, длинный = 1. Просто и не хуже Манчестера.

ну во первых не возможно, а так оно и есть если у Вас таки SONY
1T отрицательный импульс = 0
2T отрицательный импульс = 1
3T отрицательный импульс = стартовый бит (насчет точно 3T не могу сейчас сказать точно)
T=550мкс кажись
повтор при нажатой кнопке кажеться через 20-30 мс

Ну или опишите поподробнее в чем конкретно Ваша задача и тогда можно
будет рассчитывать на более точный ответ
Go to the top of the page
 
+Quote Post
dvm11111111
сообщение Jan 13 2007, 03:24
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567



Цитата(ReM37 @ Jan 12 2007, 20:22) *
Цитата(singlskv @ Jan 12 2007, 15:58) *


Если все еще интересно то это код 011000010000


Возможно. Т.е. короткий импульс = 0, длинный = 1. Просто и не хуже Манчестера.


Для передачи 2-х байт на прямой видимости по IR, возможно и проще. А для передачи 120 байт по RF не покатит однозначно.

Да кстати в современных пультах для помехозащизенности введен инверсный избыточный код, тоесть посылка в 2 раза больше.
Go to the top of the page
 
+Quote Post
ReM37
сообщение Jan 13 2007, 13:52
Сообщение #36


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Цитата(dvm11111111 @ Jan 13 2007, 02:24) *
Для передачи 2-х байт на прямой видимости по IR, возможно и проще. А для передачи 120 байт по RF не покатит однозначно.


Можно узнать почему?
Я нашел один пульт, который передает точно RC5. Для экпериментов сойдет. Все же цель у меня перадать не меньше 32 байт по радио каналу (433 Mhz).

Сообщение отредактировал ReM37 - Jan 13 2007, 13:53
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 15 2007, 01:24
Сообщение #37


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(ReM37 @ Jan 13 2007, 13:52) *
Цитата(dvm11111111 @ Jan 13 2007, 02:24) *

Для передачи 2-х байт на прямой видимости по IR, возможно и проще. А для передачи 120 байт по RF не покатит однозначно.

Можно узнать почему?
Я нашел один пульт, который передает точно RC5. Для экпериментов сойдет. Все же цель у меня перадать не меньше 32 байт по радио каналу (433 Mhz).
Потому что уровень помех в RF (особенно 433 Mhz) очень высокий.
Передать то 32 байта вы сможете без проблем, а вот с получением этих 32-х байт придется
повозиться. По крайней мере вам понадобится точный контроль длительности стартового бита
c точностью примерно 0,2%. Ну или (что вероятно проще в данном случае, учитывая
длинну передачи ) некий адаптивный контроль длительности каждого бита с
например 10% точностью.

ЗЫ. Подключите модуль приемника и посмотрите на осциле что у него творится на выходе.
Многое сразу же станет понятно.

ЗЫЫ. RC5 вполне подходит для передачи по RF.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jan 15 2007, 14:19
Сообщение #38


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(singlskv @ Jan 14 2007, 22:24) *
Цитата(ReM37 @ Jan 13 2007, 13:52) *

Цитата(dvm11111111 @ Jan 13 2007, 02:24) *

Для передачи 2-х байт на прямой видимости по IR, возможно и проще. А для передачи 120 байт по RF не покатит однозначно.

Можно узнать почему?
Я нашел один пульт, который передает точно RC5. Для экпериментов сойдет. Все же цель у меня перадать не меньше 32 байт по радио каналу (433 Mhz).
Потому что уровень помех в RF (особенно 433 Mhz) очень высокий.
Передать то 32 байта вы сможете без проблем, а вот с получением этих 32-х байт придется
повозиться. По крайней мере вам понадобится точный контроль длительности стартового бита
c точностью примерно 0,2%. Ну или (что вероятно проще в данном случае, учитывая
длинну передачи ) некий адаптивный контроль длительности каждого бита с
например 10% точностью.

ЗЫ. Подключите модуль приемника и посмотрите на осциле что у него творится на выходе.
Многое сразу же станет понятно.

ЗЫЫ. RC5 вполне подходит для передачи по RF.

При передаче по радиоканалу возникают такие специфические импульсные помехи, как врезки(иголки) и вырезки, которые возникают вследствие работы ару/ограничителей. Борьба с ними достаточно проста, до определенного предела, разумеется. Ставите на выходе радиоканала счетчик на 16-32-64...с залипанием на макс/мин, сигнал подаете на D-вход, на счетный вход подаете меандр с периодом в 16-32-64 больше периода сигнала, выход используете, как обычно. Схема хорошо подавляет именно импульсные помехи меньшие половины периода сигнала. При желании счетчик можно легко реализовать программно.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
muravei
сообщение Jan 15 2007, 15:19
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(singlskv @ Jan 15 2007, 01:24) *
уровень помех в RF (особенно 433 Mhz) очень высокий.

Используйте ЧМ(FM)
Go to the top of the page
 
+Quote Post
GDI
сообщение Jan 15 2007, 15:37
Сообщение #40


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Давно, года 4 назад, покупал для клиентов пульт ДУ ИК+RF433 и приемник к нему. в приемнике 433 превращалось в ИК и подавалось на светодиод. Пульт был многосистемный программируемый. Покупалось все это в www.conrad.spb.ru, на сайте я сейчас этого пульта не нашел, но он был в бумажном каталоге на немецком языке.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
ReM37
сообщение Jan 15 2007, 22:05
Сообщение #41


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Цитата(singlskv @ Jan 15 2007, 00:24) *
Передать то 32 байта вы сможете без проблем, а вот с получением этих 32-х байт придется
повозиться. По крайней мере вам понадобится точный контроль длительности стартового бита
c точностью примерно 0,2%. Ну или (что вероятно проще в данном случае, учитывая
длинну передачи ) некий адаптивный контроль длительности каждого бита с
например 10% точностью.

ЗЫ. Подключите модуль приемника и посмотрите на осциле что у него творится на выходе.
Многое сразу же станет понятно.

ЗЫЫ. RC5 вполне подходит для передачи по RF.


Я попробовал так:

Цитата
имеем внешнее прерывание по любому изменению
в прерывании смотрим чего насчитал таймер...
и обнуляем счетчик таймера для след изменеия по входу ExtINT
(получается типа ICP только захват счетчика таймера по любому изменению уровня)
Определяем минимальную длит импульса =Tmin.
;----
далее, с каждым прерыванием по Ext INT, смотрим что натикало (пусть будет T)и сверяемся с таблицой истинности:
1) T=2Tmin & __--- => bit=1
2) T=2Tmin & --__ => bit=0
3) T=Tmin & --__ & lastbit=1 => skip
4) T=Tmin & --__ & lastbit=0 => bit=0
5) T=Tmin & __-- & lastbit=0 => skip
6) T=Tmin & __-- & lastbit=1 => bit=1
;----


В Proteus все работает без проблем. Но реально неработает. Кстати, впервые неработает то, что работает в Proteus. smile.gif
Сделал чтобы можно было видеть длительность импульсов в LCD. Оказалось, что насчитывает бред какой то. В чем причина пока не понял. sad.gif
Что творится на выходе модуля приемника я смотрел. Когда передатчик ничего не передает - ужас. biggrin.gif Но когда передает - все очень четко.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 16 2007, 02:06
Сообщение #42


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата
Я попробовал так:

имеем внешнее прерывание по любому изменению
в прерывании смотрим чего насчитал таймер...

Пока ловим стартовый бит настраиваем внешнее прерывание только на переход 0->1

запускаем таймер с прерыванием на время 3/8 длинны стартового бита
если раньше произошло новое внешнее прерывание то сбрасываем таймер и
продолжаем считать

если оказались в прерывании таймера,
перестраиваем внешнее прерывание на ловлю любого перехода,
перестраиваем прерывание таймера на 1/4 длительности бита (не выключая таймер)

при первом переходе 1->0 после срабатывания прерывания таймера запоминаем значение
длительности стартовой единички T=3/8(базовой длинны бита)+TCNT
сбрасываем TCNT
перестраиваем таймер на 5/8T

далее просто ловим переходы, при каждом переходе считываем значение TCNT
сравниваем с 3/8 необходимой длительности бита
если TCNT < 3/8 , ошибка, начинаем все с начала
если оказались в прерывании таймера то проверяем на соответствие RC5 (четный нечетный бит)
если ошибка начинаем все с начала
если все в порядке перестраиваем таймер на 1/2 бита
если все в порядке, сбрасываем TCNT и продолжаем ловить новые битики

ну и конечно по ходу не забываем записывать что же мы там напринимали

P.S. Может чего и накосячил но вроде примерно так
ЗЫЫ 3/8 и 5/8 желательно брать не точные значения а что-то типа 3/8+20тактов ЦП и
5/8- 20 тактов
Go to the top of the page
 
+Quote Post
ReM37
сообщение Jan 28 2007, 18:00
Сообщение #43


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Все же не могу разобраться почему в Proteus работает а реально нет.

Упрощенный код:

interrupt [TIM1_CAPT] void timer1_capt_isr(void)
{
tmp=ICR1;

if (CAPTURE_FRONT) {
TCCR1B = 0b10000101; //switch to falling edge
CAPTURE_FRONT = 0;
} //if

else {
TCCR1B = 0b11000101; //switch to rising edge
CAPTURE_FRONT = 1;
} // else

При каждом прерываний смотрю чему равно tmp. Proteus показывает, что увеличиваеться на ~1800 (самый короткий импульс в RC5). Посмотрел что насчитывает реально. Оказываеться, что увеличиваеться только на 7. Тактовая частота 8 MHz.
В чем может быть дело?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:10
Рейтинг@Mail.ru


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