|
Манчестер для Avr |
|
|
|
Nov 7 2006, 11:33
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Всем добрый день. Вопрос, следующий кто небудь может поделиться исходником приема Манчестерского кода для AVR
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Nov 9 2006, 04:50
|
Группа: Новичок
Сообщений: 12
Регистрация: 30-09-06
Пользователь №: 20 840

|
Посмотри апнот AVR410 на их сайте - это манчестер применённый к стандарту RC5 (на асме)
|
|
|
|
|
Nov 9 2006, 07:11
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Пишу сам. Тема закрыта.
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Dec 27 2006, 03:29
|
Участник

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

|
Цитата(Семён @ Nov 9 2006, 07:11)  Пишу сам. Тема закрыта. Если не жалко, сообщи о результатах, тоже интересует данная тема, вот только с самосинхронизацией загвоздка, как ее реализовать.
|
|
|
|
|
Dec 27 2006, 03:43
|

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. В начале сообщения должно быть кодовое слово, по которому вы синхронизируете первый бит. Вот и всё.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Dec 27 2006, 08:05
|
Участник

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

|
а не слишком ли навороченно получается? да кстати нашел вот такую весчь, только все ника побороть немогу.
Сообщение отредактировал dvm11111111 - Dec 27 2006, 08:13
|
|
|
|
|
Dec 27 2006, 10:39
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Цитата(dvm11111111 @ Dec 27 2006, 09:05)  а не слишком ли навороченно получается? да кстати нашел вот такую весчь, только все ника побороть немогу. Если искать простые пути, то можно посмотреть сдесь www.atmel.com/dyn/resources/prod_documents/doc3a78163c4000a.pdf
|
|
|
|
|
Dec 27 2006, 16:08
|
Местный
  
Группа: Участник
Сообщений: 270
Регистрация: 29-06-06
Пользователь №: 18 445

|
Цитата(dvm11111111 @ Dec 27 2006, 08:05)  а не слишком ли навороченно получается? Наворочено - это когда ФАПЧа для строба и адаптивный порог для импульса.
|
|
|
|
|
Dec 28 2006, 02:40
|
Участник

Группа: Участник
Сообщений: 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)  а не слишком ли навороченно получается?
Наворочено - это когда ФАПЧа для строба и адаптивный порог для импульса. а по подробней, с исходником на С?
|
|
|
|
|
Dec 28 2006, 10:13
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

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

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

|
А если через UART, но с манчестером? Т.е. из одного байта получаем два.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|