074-Преобразователь IR-to-UART на ATtiny2313.

Автор: | 31.05.2011

Несколько статей назад я описывал конструкцию преобразователя IR-to-UART на универсальной плате для IR устройств.  Универсальная плата драйвера получилась компактной и удобной. Я уверен — на ней мы соберем еще много интересных устройств!

В этой статье я покажу как сделать такое-же устройство, но на микроконтроллере ATtiny2313 и с применением  платы для сенсорных устройств. Я и дальше буду дублировать устройства на разных микроконтроллерах, так как часто для сборки устройства не находиться нужного микроконтроллера или применение его не целесообразно.

Как работает устройство, я повторно описывать не буду — читайте статью преобразователя IR-to-UART на ATtiny13, там все расписано. Отличий в работе нет — устройство принимает команду от бытового IR пульта и после обработки выдает ее код по UART.

Сборка преобразователя.
Как я уже писал, преобразователь будет собран на платы для сенсорных устройств. Необходима лишь небольшая доделка:

Схема преобразователя IR-to-UART
074-Tiny2313-IR-to-UART-schem.spl7 - Схема преобразователя IR-to-UART на ATtiny2313

Как видно из схемы нужно, всего лишь, добавить TSOP . TSOP может быть любым на 36 или 38 кГц. Главное не перепутайте вывода — они у всех расположены по разному (читайте даташит на свой TSOP!).  IR-светодиод пока не нужен, я его нарисовал для следующих устройств.
Как Вы понимаете, устройство можно собрать и на своей плате — развести ее не составит труда.

Параметры UART:
— скорость 9600;
— размер посылки 8бит;
— 1 стоп бит;
— без бита четности.

Как и в варианте на ATtiny13, я сделал два варианта прошивки.
Первый вариант – простой. По UART выдается код нажатой клавиши пульта в виде одного байта. В виду того, что нажатой клавише соответствует только один байт, на принимающей стороне (Ваш электронный проект) очень легко будет обрабатывать посылки. Но с другой стороны при однобайтном отображении нажатой клавиши пульта возможны ситуации, когда две разные клавиши пульта (или разных пультов) выдадут одинаковой код.

Для устранения этого недостатка я сделал второй вариант прошивки — она выдает на каждую нажатую клавишу двух байтовый код (слово). Причем, перед каждым кодом посылается символ «*» — это должно помочь при приеме сообщения на принимающей стороне. Общий вид сообщения передаваемого по UART при приеме очередного кода будет следующим: «*хх», где хх-двухбайтовый код нажатой клавиши.

Обе прошивки при подаче питания на устройство выдают по UART строку «OK!» и издают звук (или мерцают светодиодом, в зависимости что Вы там установили) . При приеме IR сигнала (любого) схема реагирует звуком (светом).

Простой вариант прошивки — однобайтовый:
074-T2313-IR-to-UART-1B.hex - Прошивка IR-to-UART на ATtiny2313 (1 байт)
074-T2313-IR-to-UART-FuseBits.png - Фьюзбиты для IR-to-UART на ATtiny2313
Как правильно прошить AVR фьюзы

Расширенный вариант прошивки – трехбайтовый(«*хх»):
074-T2313-IR-to-UART-3B.hex - Прошивка IR-to-UART на ATtiny2313 (3 байта)
074-T2313-IR-to-UART-FuseBits.png - Фьюзбиты для IR-to-UART на ATtiny2313
Как правильно прошить AVR фьюзы


Файлы:
074-source-T2313-IR-to-UART-1B.zip - Исходник IR-to-UART на ATtiny2313 (1 байт)
074-source-T2313-IR-to-UART-3B.zip - Исходник IR-to-UART на ATtiny2313 (3 байта)

Ссылки:
060-Драйвер сенсорной клавиатуры «Touch Me» на ATtiny2313.

 


(Visited 1 453 times, 1 visits today)

074-Преобразователь IR-to-UART на ATtiny2313.: 53 комментария

  1. mallsa

    А как ножками контролера подрыгать с пульта,подскажите. А?

  2. GetChiper Автор записи

    Конечно подскажу! Скоро выложу статью с таким устройством (устройство уже готово и работает).

  3. mallsa

    Ждёмс, с нетерпением. Сам ковыряю контролеры уже давно, а писать прог для них только начинаю

  4. ec

    гонял тини45 на отладочной плате, с подключенным к порту TSOP напрямую без токоограничителя. На другом порту кнопка делает тоже самое. На выходе на двух портах светодиодики — перемигиваются при каждом последующем нажитии либо при посылке с пульта. Прошивка личного исполнения. Порт замыкаешь на короткое время на корпус — работает с пульта, нажмешь на кнопку — от пульта перестает, пока не замкнешь. Но почему-то умерла тинька. Может ли, из-за того, что без токоограничителя замыкал на корпус? Порт то на вход.

  5. Andrey

    Здравствуйте. а можно совместить uart и эту схему, чтобы не изпользовать два устройства, а сразу в usb порт?

  6. GetChiper Автор записи

    Можно, конечно, но это себя не оправдает. Есть для таких вещей IgorPlug — лучше просто не сделаешь.

  7. Andrey

    У меня есть пульт usb специальный. Можно ли использовать его а то там только определённые функции, а хочется выбора. Если надо могу выложить фото.

  8. Andrey

    Или применить от него только приёмник usb, а пульт использовать свой.

  9. Andrey

    GetChiper :
    Можно, конечно, но это себя не оправдает. Есть для таких вещей IgorPlug – лучше просто не сделаешь.

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

  10. GetChiper Автор записи

    Скорей всего Ваш приемник USB имеет привязку к конкретному пульту, кроме того имеет свой интерфейс общения с управляющей программой в компе. Поэтому единственный вариант — это использовать мое устройство и Ваш пульт. Наоборот не получиться.
    Мост USB-UART пока не планирую встраивать, тому есть ряд причин — большой размер в кристалле, большое потребление микроконтроллерного времени, ну и еще ряд причин.

  11. Andrey

    А отвязать его не получиться?

  12. Andrey

    И кстати этот пульт работает без дров и программы

  13. Andrey

    Объясните мне 13-ти летнему тупому мальчику если я чего то не понимаю

  14. Andrey

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

  15. GetChiper Автор записи

    Только так как я описал — иначе никак.

  16. yuzd

    Подскажите, а если не нужно столько каналов на кнопки, то что сделать с ненужными входами контроллера, посадить их на плюс или на минус, или их обизательно надо все использовать?

  17. GetChiper Автор записи

    Ножки, если не используются, пусть болтаются в воздухе.

  18. yuzd

    GetChiper :
    Ножки, если не используются, пусть болтаются в воздухе.

    с резисторами или просто в воздухе?
    Может стоит сделать какуюто предустановку для универсальности, например в нулевую ячейку епрома при прошивке нужно вписать число, например если вписать туда 3, то будет использоватся только три входа для сенсора, 4 — 4входа и т.д.
    и еще такой вопрос, не хотите ли сделать вариант устройства с внешним кварцевым резонатором, когда проверял на разных контроллерах uart, на некоторых очень не стабильно работает, ввиду разброса внутренего RC генератора. нет ли у вас исходника в ассемблере? в авр студио понемногу разбираюсь

  19. GetChiper Автор записи

    Это устройство — заготовка. Оно принимает IR сигнал и выдает его по UART и ничего не делает с ногами. Сигналы на ноги нужно или приделать самому (исходники на алгоритм билдере внизу статьи), или дождаться пока я не выложу более расширенную версию (она почти готова) с задействованными ногами шимом и т.д.

  20. yuzd

    В таком виде устройство и интересно, т.е. и IR приемник и сенсорная клава, хочу сделать сенсорный выключатель с управлением с помощью пульта, встроить это в какой-то корпус, и по UART передавать сигнал, а в силовой части буду обрабатовать UART команды, сделал на тини2313 приемник UART, отлично работает, испытал на вашем «071-Преобразователь IR-сигналов от пультов в UART», мой вопрос заключается в том, что сенсорных кнопок мне надо будет 4-6шт, а в устройстве 12сенсоров. Так вот, как себя будет вести устройство, если я задейтвую 4 кнопки, а остальные ножки МК оставлю в воздухе, или их в воздухе оствлять с резисторами? Боюсь, что будет не надежно работать, или будет по UART сыпатся мусор от незадействованых кнопок, поскольку а вас реализована автокалибровка, то не подкалибруется ли оно под висящие в воздухе пины, и таким образом площадки с сенсорами будут работать не правильно?

    И вопрос по формату данных в трех байтовой прошивке, если нажать кнопку на пульте, то в UART пойдет: 42/xxx/xxx? А при нажатии сенсорной кнопки пойдет ххх(номер кнопки) правильно я понимаю?

  21. yuzd

    GetChiper :
    Это устройство – заготовка. .

    прошу прощения, сразу не вьехал, думал эта платка будет и сенсоры обрабатывать и IR, как раз думаю такое устройство будет самым оптимальным/универсальным. Обрабатывать IR и посылать в одном виде в UART , например 42/xxx или 42/xxx/xxx, а при обработке сенсоров, пихать только номер кнопки, такие данные довольно просто потом обработать.

  22. GetChiper Автор записи

    В однобайтовой прошивке просто код кнопки и шлется.
    Эти прошивки ничего не делают с сенсорными линиями, т.е. сенсоров тут нет. Если говорить о сенсорных линиях без сенсоров, то нужно программно их исключать, любой другой вариант (кроме сенсорной площадки) будет давать ошибки.

  23. yuzd

    GetChiper :
    Если говорить о сенсорных линиях без сенсоров, то нужно программно их исключать, любой другой вариант (кроме сенсорной площадки) будет давать ошибки.

    понял, спасибо. Не планируете прошивку, которая будет и сенсоры обрабатывать, и IR? чтоб данные гнать по одной линии UART?

  24. GetChiper Автор записи

    Обязательно такое сделаем.

  25. boggi

    собрал вроде работает.только скажите как посмотреть сигнал с пульта смотрю через терминал одна и та же кнопка все время разные крякозябры показывает

  26. GetChiper Автор записи

    Может скорость не та? Обе разновидности прошивки такое выдают?

  27. boggi

    поставил скорость 19200 теперь показывает нормально

  28. boggi

    переключил с ASCII на HEX и галки в Bin,Hex,Dec теперь ваще отлично

  29. GetChiper Автор записи

    boggi :

    поставил скорость 19200 теперь показывает нормально

    Странно… ну да ладно, если работает…

  30. miklmakl

    Подскажите,пожалуйста,можно в этом девайсе использовать ATTINY2313V-10PU?

  31. miklmakl

    что-то на мой вопрос ответа нет…

  32. GetChiper Автор записи

    Можно.

  33. miklmakl

    Спасибо,за ответ,уважаемый,а то-валяется без дела…

  34. pino24

    А сопротивлении на 1Мом обязательно если я хочу использовать, только IR ??

  35. GetChiper Автор записи

    Нет, оно там не нужно.

  36. SERGEY003

    вопрос если вместо IR радио модуль работать будет ?

  37. GetChiper Автор записи

    Если вместо TSOP поставить радиомодуль ничего не выйдет. Программа работает только с протоколом ИК-пультов

  38. ppwwdd

    Евгений, спаял IR to UART на AtTiny2313. Почему-то не работает. USB to UART проверено — работает. Эхо есть. Настройки такие как указано. Ставил уже два контроллера. Использовал обе прошивки. Фьюзы как указаны. Датчик TSOP 1736. Распаяно все верно. Зашел в тупик. При включении ОК не выходит. С пульта на ножку контроллера сигнал идет. Реакции никакой. Даже светодиод не моргнет. Светодиод-то должен засветится. TSOP проверен на проекте 085. Не могу справиться. По-мо-ги-и!!! Чем можешь.

  39. ppwwdd

    Евгений! Проверил устройство http://www.getchip.net/posts/099-rasshirennoe-upravlenie-nagruzkami-pri-pomoshhi-ik-pulta-na-attiny2313/ При вхождении в режим обучения держу более 10 сек, светодиод и не моргнет. Сетодиод целый, на выходе 9 контроллера лог 0. Менял TSOP на датчик с китайского RGB контроллера, то же самое. В трех соснах заблудился. Совсем уже ничего не пойму.

  40. ppwwdd

    Наконец-то разобрался. Недосмотрел. На 9 ножке-то IR светодиод. А я впаял туда обычный. Кстати, принимаемые коды меняются 1 на 3 во второй тетраде байта или наоборот 3 на 1.

  41. GetChiper Автор записи

    Чегото не понял вопроса… что там с тетрадами не так?

  42. ppwwdd

    Я имею ввиду, что принимаемые коды от одной и той же кнопки например; A1E3 A3E3 A1E1 A3E1. Один бит «гуляет» С чем это связано может быть?

  43. GetChiper Автор записи

    В некоторых протоколах четные и не четные посылки отличаются.

  44. xedory

    Здравствуйте гетчип! Собрал переобразователь, подключил в ком порту через макс 232 , как бы все работает, но :
    кнопка виключения пульта самсунг видает код 40 или 01000000 , как понять , ето РС-4 или НЕК протокол??
    Я делаю пульт на 4 кнопки http://radiohlam.ru/control/ikpult_ATtiny13.htm
    Там есть исходник на РС-5 http://radiohlam.ru/program/ikpult_tiny13_prg_rc5.htm
    И на НЕК протокол http://radiohlam.ru/program/ikpult_tiny13_prg_nec.htm
    Куда мне записать етот код для выключение ТЕЛЕВИЗОРА! ????

  45. GetChiper Автор записи

    По чужому устройству я не подскажу, что куда там писать. И еще, этот преобразователь не выдает посылку ИК-пульта как таковую. Преобразователь выдает некоторое значение, которое является упрощенным описанием принятой команды.

  46. xedory

    GetChiper :
    По чужому устройству я не подскажу, что куда там писать. И еще, этот преобразователь не выдает посылку ИК-пульта как таковую. Преобразователь выдает некоторое значение, которое является упрощенным описанием принятой команды.

    ТО есть єтотдевайсне поможет мне узнать код клавиши пульта!???
    Посоветуйте декодер или что-то ище, что сможет сказать мне код кнопки от самсунг!!! Может ссилку или совет!!!! Нужен маленький пульт на 4-команди для телика =))) Благодарю!!!!

  47. peits

    Всем привет.
    Я тут только одно не понял, как мне прочитать тот коды с uart ?

Добавить комментарий