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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Манчестер для 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
#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

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:59
Рейтинг@Mail.ru


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