rryybb 0 7 ноября, 2006 Опубликовано 7 ноября, 2006 · Жалоба Всем добрый день. Вопрос, следующий кто небудь может поделиться исходником приема Манчестерского кода для AVR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexperm72 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба Посмотри апнот AVR410 на их сайте - это манчестер применённый к стандарту RC5 (на асме) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rryybb 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба Пишу сам. Тема закрыта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvm11111111 0 27 декабря, 2006 Опубликовано 27 декабря, 2006 · Жалоба Пишу сам. Тема закрыта. Если не жалко, сообщи о результатах, тоже интересует данная тема, вот только с самосинхронизацией загвоздка, как ее реализовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 27 декабря, 2006 Опубликовано 27 декабря, 2006 · Жалоба Пишу сам. Тема закрыта. Если не жалко, сообщи о результатах, тоже интересует данная тема, вот только с самосинхронизацией загвоздка, как ее реализовать. Манчестер - самосинхронизированный код. Вгрубе алгоритм такой 1) Ждёте перепада 0-1 или 1-0 в середине бита (вот вам и синхронизация), 2) Определяете какой бит пришел и запоминаете его (вдвигаете в регистр), 3) Пропускаете 3/4 периода и переходите к пункту 1. В начале сообщения должно быть кодовое слово, по которому вы синхронизируете первый бит. Вот и всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvm11111111 0 27 декабря, 2006 Опубликовано 27 декабря, 2006 (изменено) · Жалоба а не слишком ли навороченно получается? да кстати нашел вот такую весчь, только все ника побороть немогу. AN_008_Oversampling_1_0.rar Изменено 27 декабря, 2006 пользователем dvm11111111 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 27 декабря, 2006 Опубликовано 27 декабря, 2006 · Жалоба а не слишком ли навороченно получается? да кстати нашел вот такую весчь, только все ника побороть немогу. Если искать простые пути, то можно посмотреть сдесь www.atmel.com/dyn/resources/prod_documents/doc3a78163c4000a.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pokos 0 27 декабря, 2006 Опубликовано 27 декабря, 2006 · Жалоба а не слишком ли навороченно получается? Наворочено - это когда ФАПЧа для строба и адаптивный порог для импульса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvm11111111 0 28 декабря, 2006 Опубликовано 28 декабря, 2006 · Жалоба а не слишком ли навороченно получается? да кстати нашел вот такую весчь, только все ника побороть немогу. Если искать простые пути, то можно посмотреть сдесь www.atmel.com/dyn/resources/prod_documents/doc3a78163c4000a.pdf Про использование INT0 и таймера эт я знаю, только это подходит для приема RC5 с его 12 битами, а вот если принимать таким способом 112 бит, то выяснилось, что расчетные значения задержек несовсем подходят. Сбой считываемых значений начинается гдето на 8-10 байте, что несовсем подходит. Сейчас и передатчи и приемник работают от кварцев, а планируется использовать передатчик от внутреннего RC (да еще и несколько передатчиков, соответственно уход длительности импульсов будет и в плюс, и в минус), а так ввообще получится плюс-минус пол километра. Вот меня и интересует алгоритм с синхронизацией. а не слишком ли навороченно получается? Наворочено - это когда ФАПЧа для строба и адаптивный порог для импульса. а по подробней, с исходником на С? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 28 декабря, 2006 Опубликовано 28 декабря, 2006 · Жалоба Про использование INT0 и таймера эт я знаю, только это подходит для приема RC5 с его 12 битами, а вот если принимать таким способом 112 бит, то выяснилось, что расчетные значения задержек несовсем подходят. Сбой считываемых значений начинается гдето на 8-10 байте, что несовсем подходит. Сейчас и передатчи и приемник работают от кварцев, а планируется использовать передатчик от внутреннего RC (да еще и несколько передатчиков, соответственно уход длительности импульсов будет и в плюс, и в минус), а так ввообще получится плюс-минус пол километра. Вот меня и интересует алгоритм с синхронизацией. насколько я помню там нет упоминания об INT и TMR, просто описан алгоритм приема манчестера, с синхронизацией по длинному импульсу (это когда импульсы идут потоком и нужно выловить пакет определенной длительности) что же касается сбоев то во первых для таких вещей обычно пользуют Capture (ICR1), а во вторых точка привязки (или точка отсчета) должна быть не в начале приема, а перемещаться после каждого фронта (или периода синхросигнала), тогда точность будет определять погрешность в пределах 1-го периода синхронизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BALDA 0 28 декабря, 2006 Опубликовано 28 декабря, 2006 · Жалоба А что если сделать вот так... имеем внешнее прерывание по любому изменению в прерывании смотрим чего насчитал таймер... и обнуляем счетчик таймера для след изменеия по входу 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% сори если гдето накасячил - но смысл такой... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReM37 0 29 декабря, 2006 Опубликовано 29 декабря, 2006 · Жалоба А если через UART, но с манчестером? Т.е. из одного байта получаем два. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 29 декабря, 2006 Опубликовано 29 декабря, 2006 · Жалоба А если через UART, но с манчестером? Т.е. из одного байта получаем два. Скорее, из двух - один. А вообще, смысла использовать уарт с манчестером не было и нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nanobyte 0 29 декабря, 2006 Опубликовано 29 декабря, 2006 · Жалоба В журнале "Радио" за 1983 год было описание первого самодельного компютера "МИКРО-80". В одном из номеров был описан блок чтения/записи на магнитную ленту и очень подробно расписан процесс приёма и передачи байтов манчестерским кодом. Процессор 8080 прекрасно справлялся, ну а уж AVR-ка запросто должна его одной левой... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BALDA 0 29 декабря, 2006 Опубликовано 29 декабря, 2006 · Жалоба да! как давно это было..... синхробайт E6 итд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться