на главную
Карта сайта
English version
Вы читаете:

Дополнительный ПДУ для спутникового ресивера

Видеотехника
10 лет назад

Дополнительный ПДУ для спутникового ресивера


Автор решил проблему дистанционного управления спутниковым ресивером из двух разных помещений, разработав и изготовив дополнительный упрощённый ПДУ на микроконтроллере. Он пригоден для работы с аппаратами, оборудованными дистанционным ИК-управлением по протоколу NEC.

Проблема управления спутниковым ресивером с помощью одного ПДУ из двух разных помещений хорошо знакома тем, кто по разным причинам не стал тратиться на дополнительный ресивер. С этой проблемой столкнулся и я. Чтобы, находясь на кухне, включить ресивер или переключить канал, приходилось каждый раз идти в комнату, где он установлен.

После множества таких "походов" было решено сделать удлинитель, транслирующий ИК-команды из кухни в комнату. В различных изданиях не раз публиковались статьи о таких удлинителях, принимающих ИК-команды ПДУ в одном помещении и повторяющих их в другом. Но и тут выявилось неудобство: ПДУ всё равно приходилось носить с собой.

Чтобы устранить его, возникла идея разработать для управления ресивером из кухни самодельный упрощённый пульт, оснащённый лишь пятью кнопками, с помощью которых можно включать и выключать ресивер, а также последовательно перебирать каналы в одном и другом направлениях. Пульт постоянно находится на кухне, а его излучающий диод вынесен на проводах в помещение, где находится ресивер, который исполняет подаваемые команды.

Рис.1



Но прежде нужно было выяснить, по какому протоколу и какие коды команд передаёт основной ПДУ ресивера "HD IVR ready S-21". Для наблюдения формы сигналов подаваемых им команд я не стал делать какие-либо сложные приспособления, а воспользовался фототранзистором, подключённым по схеме, изображённой на рис. 1, к входу цифрового осциллографа. В качестве VT1 можно использовать не только фототранзистор указанного на схеме типа, но и любой другой. Я, например, с успехом применял сделанный из германиевого p-n-p транзистора МП14Б путём удаления крышки корпуса. Для этого она аккуратно сминалась бокорезами у основания, пока не отделялась полностью. Результат показан на рис. 2. ИК-луч направляют на кристалл вскрытого транзистора со стороны эмиттера. Вместо фототранзистора можно применить и фотодиод, например, ФД263.

Рис. 2



По снятым осциллограммам можно определить, к какому типу протоколов принадлежат записанные последовательности импульсов. Описание основных протоколов, используемых в системах дистанционного управления бытовой техникой, можно найти в статье А. Торреса "Инфракрасное дистанционное управление" http://altor1.narod. ru/Articles/IRC.pdf. Выяснилось, что ПДУ ресивера "HD IVR ready S-21" работает согласно протоколу NEC, поэтому программа микроконтроллера разрабатываемого пульта была написана под этот протокол.

Рис. 3



Схема дополнительного ПДУ изображена на рис. 3. Благодаря применению микроконтроллера ATtiny2313 (DD1) он получился очень простым. В исходном состоянии, когда ни одна из кнопок SB1-SB5 не нажата, микроконтроллер находится в спящем режиме. В этом состоянии пульт потребляет ток менее 1 мкА, что позволяет питать его от батареи GB1 без выключателя. При нажатии на любую из кнопок микроконтроллер переходит в рабочий режим и формирует серию импульсов, образующих передаваемый код. Он представляет собой посылку из длинного стартового импульса, восьмиразрядного адреса устройства, которому посылается команда, и собственно кода команды такой же разрядности. Адрес и команда передаются дважды - в прямом и проинвер-тированном виде (рис. 4). Это даёт возможность ресиверу проверить, не искажена ли принятая посылка, а также делает общую длительность передачи одинаковой при любых сочетаниях адреса и команды. В заключение сформированной последовательностью модулируют по амплитуде поднесущую - импульсы с частотой повторения 38 кГц.

Рис. 4



Для генерирования импульсов такой частоты в микроконтроллере использован таймер/счётчик Т0. Он ведёт счёт тактовых импульсов частотой 8 МГц в регистре TCNT0. Содержимое этого регистра сравнивается с числом, записанным в регистре совпадения OCR0A. В момент совпадения счётный регистр обнуляется, а состояние выхода OC0A (вывод 14 микроконтроллера) меняется на противоположное, это происходит каждые 13 мкс. Модуляция поднесущей кодовой последовательностью происходит путём программного включения и выключения таймера/счётчика Т0.

Для формирования кодовой последовательности предназначена функция Send_Com(adr, cmd), параметры которой - значения адреса и кода команды. Первый из них (adr) для управления спутниковым ресивером "HD IVR ready S-21" всегда задают равным 8, это адрес этого ресивера в его системе ДУ Адрес других ресиверов может быть иным, его необходимо выяснить при описанном выше исследовании передаваемых заменяемым ПДУ кодовых посылок. Второй параметр (cmd) - собственно код команды. В рассматриваемом случае при нажатиях на разные кнопки он задаётся в программе в соответствии с табл. 1.

Таблица 1

Кнопка

Команда

Код (HEX)

SB1

Выход

0хС4

SB2

Переключить канал вниз

0x22

SB3

Выбор

0x21

SB4

Переключить канал вверх

0x20

SB5

Вкл./Выкл.

ОхОС

Число команд, подаваемых рассматриваемым ПДУ, можно увеличить с пяти до восьми - именно столько выводов, по изменению уровня на которых микроконтроллер ATtiny2313 может выходить из спящего режима, имеет его порт В. Чтобы добавить команды, следует верхний (по схеме) вывод резистора R1 перенести c вывода 14 на вывод 9 (PD5) микроконтроллера и установить в устройство ещё три кнопки, подключив их к выводам 12-14 (PB0-PB2) и минусу напряжения питания.

Таблица 2

Строка

Заменить на

Примечание

PORTB=0xF8;

PORTB=0xFF;

Все линии порта В переключаем на ввод

DDRB=0x04;

DDRB=0x00;

 

PORTD=0x00;

Добавляем настройку линии PD5 на вывод

DDRD=0x20;

TCCR0A=0x00:

TCCR0A=0x12:

Инициализация таймера/счётчика Т0. Используем регистр OCR0B с выходом на вывод 9 (PD5)

TCCR0B=0x0a:

TCCR0B=0x01

TCNT0=0x00

He менять

OCROA=0x68;

OCR0B=0x68;

GIMSK=0x20

He менять

 

MCUCR=0x00;

He менять

PCMSK-0xF8;

PCMSK-0xFF

Изменение на любом входе порта В сформирует запрос прерывания

EIFR=0x20;

He менять

 

В файле nec_protoc.c нужно найти функцию main и внести изменения в её начальный фрагмент (раздел инициализации) в соответствии с табл. 2. В тело следующего за этим разделом бесконечного цикла while(1){} добавляют три условных оператора, подобных приведённому в табл. 3. Они различаются только тем, что в каждом из них вместо PINB.7 проверяется состояние одного из входов (PINB.0, PINB.1, PINB.2), к которым подключены дополнительные кнопки, а параметром cmd функции Send_Com служит код команды, подаваемый при нажатии на соответствующую кнопку.

 

 

Внеся все изменения, программу необходимо транслировать заново, а полученный HEX-файл загрузить в микроконтроллер. Если необходим пульт, способный подавать более восьми команд, придётся заменить микроконтроллер, например, на ATmega88.

По завершении передачи команды функция sleep_enable переводит микроконтроллер в режим power_down с очень маленьким током потребления, что важно для ПДУ с батарейным питанием. Из этого режима микроконтроллер выведет только следующее нажатие на любую кнопку.

При поступлении импульсов с вывода 14 микроконтроллера (или его вывода 9 в случае доработки программы) на базу транзистора VT1 импульсный ток течёт через излучающий диод VD1. Команда передаётся "в эфир". Сопротивление резистора R2 подбирают в зависимости от максимальной удалённости диода VD1 от фотоприёмника ресивера. Следует учитывать, что для излучающего диода указанного на схеме типа ток в импульсе длительностью не более 100 мкс не должен превышать 200 мА.

Рис. 5



Печатная плата ПДУ показана на рис. 5. На ней размещены все детали, за исключением диода VD1. Они смонтированы на той стороне, где печатных проводников больше. В переходные отверстия, показанные на чертеже залитыми, вставляют и пропаивают с двух сторон короткие отрезки лужёного провода. При желании печать можно сделать односторонней, заменив печатные проводники, соединяющие переходные отверстия с контактами кнопок, перемычками из изолированного провода.

В качестве VT1 может быть использован практически любой n-p-n транзистор с h21a > 100 и Iкmax >100мА. Излучающий диод TSAL6200 можно заменить отечественным, например, АЛ107А или АЛ107Б. Конденсаторы - любые малогабаритные ёмкостью 12...22 пФ. Резисторы - МЛТ или импортные.

Рис. 6



Готовый пульт изображён на рис. 6. Отсек с тремя гальваническими элементами или четырьмя аккумуляторами типоразмера AA, образующими батарею GB1, крепят к текстолитовой пластине, устанавливаемой над платой на металлических стойках. В таком виде пульт помещают в любое удобное и доступное для управления им место. Излучающий диод VD1 выносят на длинных проводах в комнату, где находится управляемый ресивер, и размещают так, чтобы между этим диодом и фотоприёмником ресивера была прямая видимость.

Программа загружается во FLASH-память микроконтроллера с помощью любого программатора, способного работать с микроконтроллерами семейства AVR. Она написана на языке С и откомпилирована в системе Code VisionAVR. В налаживании пульт не нуждается и при правильном монтаже начинает работать сразу.
 

Файл печатной платы в формате SprintLayout5.0 и программу микроконтроллера можно скачать здесь.

Автор: И. Чухарев, пос. Шатурторф Московской обл.

Electronic Components Distributor - HQonline Electronics