-
14.08.2005, 07:55 #1
- Регистрация
- 16.07.2005
- Адрес
- Омск
- Возраст
- 50
- Сообщений
- 34
- Поблагодарили
- 0
- Поблагодарил
- 0
Декодер RC-5 на PIC16F84
Приветствую участников!
Возникла задача написать программу декодирования протокола RC-5 для МК PIC16F84. Импульсы с фотоприемника ILMS 5360 подаются на вход RB0/INT МК, программа должна возвращать в определенной ячейке ОЗУ hex-код принятой команды, либо FF при некорректном приеме посылки. Алгоритм программы в общих чертах ясен, хотелось уточнить следующие моменты:
1. Инвертирует ли фотоприемник принимаемые импульсы? Иными словами, запуск программы декодирования должен происходить по фронту или по спаду импульса на RB0/INT?
2. Заполнены ли импульсы на выходе фотоприемника несущей частотой 36 кГц?
3. Есть ли у кого готовые процедуры решения такой задачи? В инете попадаются только программы конвертации сигналов RC-5 в RS-232.
Всем успехов!
-
14.08.2005, 08:50 #2
- Регистрация
- 09.07.2003
- Адрес
- Москва
- Возраст
- 55
- Сообщений
- 375
- Поблагодарили
- 13
- Поблагодарил
- 2
Отвечаю по пунктам.
1. На выходах фотоприемников TSOP, SFH503, MS5360 и им подобных в отсутствие приема высокий уровень, во время приема пачки ИК импульсов - низкий.
2. Эти фотоприемники содержат узкополосный фильтр, настроенный на частоту повторения импульсов (например, на 36 кГц), амплитудный детектор и последетекторный фильтр. Так что сигналов несущей частоты на выходе нет, а длительность выходного импульса с определенной точностью (она задана в спецификации фотоприемника) равна длительности принятой пачки импульсов.
3. Готовые процедуры есть. На сайте www.microchip.com лежит документ AN657 (00657.pdf) "Decoding Infrared Remote Controls Using a PIC16C5X Microcontroller". На сайте www.atmel.com есть DOC1473.pdf "RC5 IR Remote Control Receiver". Он, правда, ориентирован на AVR, но описанный алгоритм несложно реализовать и на PIC.
И еще почитайте статью С. Людского "Тестер для проверки пультов дистанционного управления RC5" (Радио, 2005, № 2, с. 53-55). Там есть полезные подробности. И все, что Вам нужно, уже сделано. Правда, на AT90S2313.
-
14.08.2005, 09:52 #3
- Регистрация
- 16.07.2005
- Адрес
- Омск
- Возраст
- 50
- Сообщений
- 34
- Поблагодарили
- 0
- Поблагодарил
- 0
То есть я правильно понимаю - при приеме, например, логической единицы на выходе фотоприемника должен быть переход с высокого уровня на низкий в середине тактового отрезка (1,8мс)?
-
14.08.2005, 22:14 #4
- Регистрация
- 09.07.2003
- Адрес
- Москва
- Возраст
- 55
- Сообщений
- 375
- Поблагодарили
- 13
- Поблагодарил
- 2
Да. А при приеме нуля - с низкого на высокий. Точная длительность передачи одного разряда - 64 периода частоты 36 кГц.
|
Социальные закладки