rryybb 0 12 января, 2007 Опубликовано 12 января, 2007 · Жалоба приветствую всех. извиняюсь за долгое отсутствие не было инета. Свой вариант приема постораюсь опубликовать на следующей недели. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 12 января, 2007 Опубликовано 12 января, 2007 · Жалоба Это запись одной команды с пульта управления ТВ. Кто может сказать где какой бит? Вроде должен быть RC5, но по моему что-то здесь не так... http://rem-blog.net/tmp/rc5.gif Если все еще интересно то это код 011000010000 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReM37 0 12 января, 2007 Опубликовано 12 января, 2007 · Жалоба Если все еще интересно то это код 011000010000 Возможно. Т.е. короткий импульс = 0, длинный = 1. Просто и не хуже Манчестера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 12 января, 2007 Опубликовано 12 января, 2007 · Жалоба Если все еще интересно то это код 011000010000 Возможно. Т.е. короткий импульс = 0, длинный = 1. Просто и не хуже Манчестера. ну во первых не возможно, а так оно и есть если у Вас таки SONY 1T отрицательный импульс = 0 2T отрицательный импульс = 1 3T отрицательный импульс = стартовый бит (насчет точно 3T не могу сейчас сказать точно) T=550мкс кажись повтор при нажатой кнопке кажеться через 20-30 мс Ну или опишите поподробнее в чем конкретно Ваша задача и тогда можно будет рассчитывать на более точный ответ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvm11111111 0 13 января, 2007 Опубликовано 13 января, 2007 · Жалоба Если все еще интересно то это код 011000010000 Возможно. Т.е. короткий импульс = 0, длинный = 1. Просто и не хуже Манчестера. Для передачи 2-х байт на прямой видимости по IR, возможно и проще. А для передачи 120 байт по RF не покатит однозначно. Да кстати в современных пультах для помехозащизенности введен инверсный избыточный код, тоесть посылка в 2 раза больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReM37 0 13 января, 2007 Опубликовано 13 января, 2007 (изменено) · Жалоба Для передачи 2-х байт на прямой видимости по IR, возможно и проще. А для передачи 120 байт по RF не покатит однозначно. Можно узнать почему? Я нашел один пульт, который передает точно RC5. Для экпериментов сойдет. Все же цель у меня перадать не меньше 32 байт по радио каналу (433 Mhz). Изменено 13 января, 2007 пользователем ReM37 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 15 января, 2007 Опубликовано 15 января, 2007 · Жалоба Для передачи 2-х байт на прямой видимости по IR, возможно и проще. А для передачи 120 байт по RF не покатит однозначно. Можно узнать почему? Я нашел один пульт, который передает точно RC5. Для экпериментов сойдет. Все же цель у меня перадать не меньше 32 байт по радио каналу (433 Mhz). Потому что уровень помех в RF (особенно 433 Mhz) очень высокий. Передать то 32 байта вы сможете без проблем, а вот с получением этих 32-х байт придется повозиться. По крайней мере вам понадобится точный контроль длительности стартового бита c точностью примерно 0,2%. Ну или (что вероятно проще в данном случае, учитывая длинну передачи ) некий адаптивный контроль длительности каждого бита с например 10% точностью. ЗЫ. Подключите модуль приемника и посмотрите на осциле что у него творится на выходе. Многое сразу же станет понятно. ЗЫЫ. RC5 вполне подходит для передачи по RF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 15 января, 2007 Опубликовано 15 января, 2007 · Жалоба Для передачи 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 больше периода сигнала, выход используете, как обычно. Схема хорошо подавляет именно импульсные помехи меньшие половины периода сигнала. При желании счетчик можно легко реализовать программно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
muravei 3 15 января, 2007 Опубликовано 15 января, 2007 · Жалоба уровень помех в RF (особенно 433 Mhz) очень высокий. Используйте ЧМ(FM) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 15 января, 2007 Опубликовано 15 января, 2007 · Жалоба Давно, года 4 назад, покупал для клиентов пульт ДУ ИК+RF433 и приемник к нему. в приемнике 433 превращалось в ИК и подавалось на светодиод. Пульт был многосистемный программируемый. Покупалось все это в www.conrad.spb.ru, на сайте я сейчас этого пульта не нашел, но он был в бумажном каталоге на немецком языке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReM37 0 15 января, 2007 Опубликовано 15 января, 2007 · Жалоба Передать то 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. :) Сделал чтобы можно было видеть длительность импульсов в LCD. Оказалось, что насчитывает бред какой то. В чем причина пока не понял. :( Что творится на выходе модуля приемника я смотрел. Когда передатчик ничего не передает - ужас. Но когда передает - все очень четко. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 16 января, 2007 Опубликовано 16 января, 2007 · Жалоба Я попробовал так: имеем внешнее прерывание по любому изменению в прерывании смотрим чего насчитал таймер... Пока ловим стартовый бит настраиваем внешнее прерывание только на переход 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 тактов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReM37 0 28 января, 2007 Опубликовано 28 января, 2007 · Жалоба Все же не могу разобраться почему в 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. В чем может быть дело? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться