|
Доработка проекта USB - InfroRed (IgorPlug2).
Рис. 1 IgorPlug2 в прозрачном корпусе.
»Щелкните по этому тексту, чтобы развернуть пояснения«

Ещё со времён первых IgorPlug официальным сборщиком в России зарегистрирован портал
www.msevm.com (о чём официально указано на
сайте
Igor Cescko - разработчика первого IgorPlug). Ну и по многолетней
традиции портал www.msevm.com помогает пользователям
в повторении девайсов с радиотехнических сайтов, размещённых у него на сервере
(в данном случае помощь выражается в продаже печатных плат и наборов
IgorPlug2 для самостоятельного
применения). В разработке и создании плат и наборов для
IgorPlug2 задействованы
специалисты сайта www.redray.ru по прямой просьбе
администратора портала www.msevm.com господина John.
PS: Команда разработчиков сайта www.mindrunway.ru занимается
только БЕЗВОЗМЕЗДНОЙ разработкой и поддержкой проекта IgorPlug2.
И данное сообщение размещено тут только для тех пользователей, которые из-за отсутствия
у них соответствующего опыта не могут собрать устройство самостоятельно (общие условия,
прошивки, схемы и дизайн печатных плат находятся на этом сайте в свободном доступе).
План.
1) Вступление.
2) Исходный вариант IgorPlug.
3) Модернизация. Создание IgorPlug2.
4) Технические характеристики результата.
5) Особенности схемотехники IgorPlug2.
6) Дизайн печатных плат, прошивки и драйвера.
Внимание!!!
В связи с добавлением поддержки Win7 и переходом на HID версию описание проекта
обновляется, и новый вариант описания развивается
ОТДЕЛЬНО - с самостоятельным оформлением
(это этот же сайт, но убрано все лишнее кроме описания HID версии проекта), а не обновленные ссылки
временно свернуты в "пояснения":
»Щелкните по этому тексту, чтобы развернуть пояснения«
AA) Быстрый старт проекта IgorPlug2 -
тут.
A) Прошивки и драйвера -
тут.
Б) Библиотека для стыковки IgorPlug2 и SlyControl -
тут.
В) Программный
Осциллограф
для экспериментов -
тут.
Г) Стандартная реализация IgorPlug2 - Эта страница.
Д) Управляемое реле на основе IgorPlug2 -
тут.
Е) Технические характеристики ПТК -
тут.
Ж) Методика выбора пульта ДУ для IgorPlug -
тут.
З) Виды кодировок ПДУ -
тут.
И) Варианты дизайна печатных плат -
тут.
К) USB Key на основе IgorPlug2 -
тут.
Л) Список часто задаваемых вопросов FAQ -
тут
М) Драйвер для IgorPlug2
доработанный пользователями -
тут.
X) Обратная связь -
тут.
Так всё начиналось...
Дальнейшее развитие темы с исправлением недостатков, доделкой и добавлением новых функций -
"Управляемое реле на основе IgorPlug2"
размещено - тут.
Если требуется пошаговая инструкция...
То прочтите раздел Быстрый старт проекта IgorPlug2.
Эта же страница, но без "воды", вступления и т.д. лежит -
тут.
Вступление.
После покупки DVB платы
SkyStar2
я с удивлением обнаружил, что она комплектуется не USB HID
устройством управления, а морально устаревшей версией DCD адаптера на порт RS-232 (в народе
COM порт), который в моей машине занят под программатор и модем...
»Щелкните по этому тексту, чтобы развернуть пояснения«

И к тому же DCD адаптер на порт RS-232 вообще-то примитивное устройство, состоящее из
стандартного монолитного IR приёмника и нескольких деталей обвязки, собранных в корпусе вилки DB9M
(стандартная вилка для порта RS-232). При применении DCD вся оцифровка сигнала происходит в реальном времени
средствами центрального процессора компьютера. Одним из многих недостатков плагина, обслуживающего DCD со
стороны компьютера, является необходимость работы в реальном времени, т.е. программа обработки переключает на
себя большую часть ресурсов компьютера, что приводит к сильным тормозам при обработке сигнала...
Схему и описание DCD можно взять
тут, но по функциональности DCD
сильно уступает разработанным устройствам, которые обрабатывают принятый сигнал средствами встроенного
микропроцессора. Что позволяет передавать в компьютер готовые результаты измерений, а не вычислять их
в реальном времени за счёт быстродействия других программ...
Конечно существуют USB <=> RS232 переходники, но запустить прилагаемый к
SkyStar2
DCD адаптер через
переходник у меня не вышло, т.к. в силу своей природы DCD адаптер для IR требует обработку
принятых сигналов от пульта в реальном времени для замера их продолжительности, а при
использовании USB <=> RS232 переходника, работа в реальном времени становится невозможной...
Исходный вариант IgorPlug.
После поисков в Интернете была найдена ссылка на интересное устройство IgorPlug, которое
обрабатывало принятый с монолитного IR приёмника сигнал средствами встроенного микропроцессора, преобразовывало его
и передавало отцифрованный результат измерений длительности фронтов сигнала по окончании принимаемой посылки в
буфер своего драйвера по интерфейсу USB.
Устройство IgorPlug может работать практически с любыми пультами от бытовой техники. А также,
что очень приятно, многие производители программ управления компьютером с пульта дистанционного
управления имеют штатные плагины для работы с ним...
Но с первой же минуты я натолкнулся на проблему - родной
сайт
разработчика прекратил своё существование. Но в связи с тем, что устройство распространённое,
плотно засев за поиск, мне удалось собрать с разных сайтов полный комплект для его сборки
(см. страницу прошивки и драйвера).
Первоначальная версия IgorPlug.
Открыть с моего сайта.
Сайт разработчика (недоступен)
Были найдены схема, драйвер (с демо-версией DDL файла), прошивка и
исходник к прошивке на АСМе. Параллельно на одном из сайтов была найдена не очень лестная
характеристика данного устройства:
A) Нельзя подключить больше 1 устройства к компьютеру.
B) Отсутствуют официальные драйвера для Windows Vista и x64.
Нет возможности установить устройство без прав администратора
C) Схема не поддерживает современные материнские платы
с портами USB 2.0 (девайс на них не определяется).
D) Не работает на большинстве материнских платах от АТИ и Нвидеа.
E) Не работает на 50% дорогих USB хабов. И на 90% дешевых.
F) Из-за небольшой памяти микросхемы* устройство не воспринимает
кодировки с длинными посылками (кнопки определяются одинаково).
* - Имелось в виду малое количество ОЗУ микропроцессора.
Ну как всегда придётся браться за напильник и доделывать до нормального вида самому...
»Щелкните по этому тексту, чтобы развернуть пояснения«

Для меня пункт "А" не критичен - мне нужен один, а не в каждой комнате
по одному (при необходимости могу подправить исходник - прикрутить другой индификатор
и проблемы из хардварных перейдут в проблемы Softa).
И есть HID модификация. При большом желании можно использовать два (штатный и HID вариант).
Пункт "B" пока не критичен - в ближайшее время с XP никуда
переходить не собираюсь, а исходника драйверов IgorPlug в интернет
автор не выкладывал... В интернете выложен исходник под проект AVR309,
в основе которого лежит IgorPlug, но в аппаратной версии из этого
проекта исключено всё кроме RS-232 и портов ввода - вывода...
(подробнее ниже).
Но опять же есть HID модификация, для которой СТОРОННИЙ драйвер не нужен СОВСЕМ. Прикидывается обычным
HID джойстиком. Так что железо будет работать на ЛЮБОЙ современной ОС, понимающей джойстики на юсб.
Причём для установки HID устройства на встроенный драйвер ПРАВА АДМИНИСТРАТОРА НЕ НУЖНЫ!!!
Подробнее о джойстиках и их настройках написано тут,
а о HID клавиатуро-мышах тут.
И по не проверенным сообщениям на форумах можно использовать Win x64 драйвер от программатора,
который имеет СДК первоначального драйвера IgorPlug... Подробнее об этом -
тут.
Про пункт "C". Схемотехника данного устройства оказалась недоделанной. Странно, что данная
схема ВООБЩЕ работала хотя бы с USB1 - в ней вместо уровней в 3,3V используются 5V уровни.
А при экспериментах с пятью вольтами на USB естественно выбивало защиту и устройство не
опознавалось... Доработав схемотехнику устройства, без труда удалось добиться устойчивой
работы как с USB ver1, так и с USB ver2.
По пункту "D" и "E". Новые платы от ATI и Nvidea более требовательны к ПРАВИЛЬНЫМ ответам на USB шине,
а исходный вариант был сильно урезан - до минимума. В результате до добавления функционала работать на
материнских платах от ATI или от Nvidea или через китайский USB Hub было практически невозможно.
Наблюдались проблемы с опознаванием устройства на мат платах и вылеты виндовса при использовании USB Hub.
Мы исправили эти проблемы в HID версиях прошивок, а так же в 6 и 9мини версиях прошивки. Подробнее об этом
на странице Прошивки и драйвера.
По пункту "F". В связи с желанием автора минимизировать размеры устройства и вписаться в
скромные возможности AT90S2313 и AT90S2323, ему пришлось сильно урезать
управляющую программу МК, отключив в ней даже элементарные защиты, а
всю свободную памать устройства отвести под мизерный стек приёмника,
всего в 36 байт...
Имея исходник и МК из намного более мощной серии ATMega8 или серии ATMega48-88,
превосходящие используемые автором оригинальной конструкции AT90S2313 и AT90S2323
по всем параметрам в несколько раз, можно было приступать к модернизации...
Для тех кому лень читать подробне, сообщаю, что все проблемы были устранены, включая
добавление работы без драйверов (HID версия
клавиатуро-мышки).
То есть, работает где угодно, где работает HID мышка или HID клавиатура - DOS/Linux/MacOS/Bios/ALL Win и т.д.)
Модернизация. Создание IgorPlug2.
Рис. 2 Внешний вид универсального сэмпла.
Увеличить
Недолго думая, я открыл прошивку и начал её изучать. С первого взгляда
выяснилось, что прошивка очень сырая, с многочисленными ляпами и багами.
После нескольких вечеров исправления багов, удалось привести исходник к
нормальному виду с возможностью перевода на современную платформу.
После перевода на новую платформу без труда удалось:
A) Добавить инициализацию устройства.
B) Минимальные защиты от сбоев.
C) Увеличить размер буфера более чем в 3 раза,
(в первой версии был 105 байт, в более поздних версиях 197 байт).
D) Расширить функциональность *.
E) Сделать конструкцию более стабильной **.
* - сделать псевдо 2х байтовую посылку с интеллектуальным сжатием данных, что позволило
отказаться от несовершенной системы переменного масштабирования (в оригинале первые 7 байт
[с 4 по 10 т.к. 1-3 служебные] были с В ДВА РАЗА МЕНЬШИМ масштабом по сравнению с последующими
байтами). А теперь, если значение байта больше 0x0F8, то это старший байт числа, вычисляемый как: Число-0x0F8,
следом за которым идёт младший байт числа. То есть, результат получается так: (Старш.bayt-0x0F8)*0x0F8 + Младш.bayt
* - автор заложил в конструкцию, работающую на 12МГ микропроцессор, штатно не рассчитанный на работу на
частотах выше 10МГ (это максимально допустимая частота для этого типа МК), что отрицательно
сказалось на стабильности и надёжности устройства.
Рис. 3 На макетных платах.
Технические характеристики результата.
Проект IgorPlug2 относится к разряду программных продуктов класса DonationWare
(см сноску 1 ниже) и предназначается для управления компьютером с одного или нескольких (практически любых)
пультов (от бытовой техники) пользователя. Поддерживает автономную работу, т.е.
включение компьютера и/или другой бытовой техники с ПДУ пользователя (до 3х реле
на базовом модуле, при необходимости расширяется до 128 реле на дополнительных модулях).
В отличие от других модификаций IR систем данная система позволяет обновлять микро
код устройства через штатный USB интерфейс, без применения внешнего программатора,
что теоретически позволяет дистанционно дорабатывать штатные прошивки устройства
под индивидуальные требования пользователя (пересылая файлы прошивок по эл.почте).
При подключении дополнительных внешних модулей (кубиков =
GraniCubicle
) на SPI, I2C и RS232 интерфейсы центрального модуля система наращивается до
управления аудио-видео коммутаторами, контролирования состояние до 128 внешних
цифровых входов и управления с компьютера или автономно (с пульта) до 128 выходами.
Так же можно, через дополнительный модуль, генерировать ИР посылки ПДУ пользователя
и многие, многое другое.
сноска 1 - Что такое DonationWare?
DonationWare (donation(англ.) = дар, пожертвование) — это такое программное обеспечение,
цену за которое устанавливаете Вы сами. То есть Вы помогаете автору проекта на столько, на сколько он,
по Вашему мнению заслужил, создав данный программный продукт. Т.е. если понравилось - то помогаете
(отблагодарить за разработку или нет решаете только вы).
Вы можете сказать: "Понятно. Ну и с чего же тогда я стану платить?"
Я укажу Вам на несколько причин, но Вы можете найти и другие:
- Вы хотите что бы данный проект развивался и помогаете оплатить хостинг.
- Вы хотите поощрить меня, как автора. Иногда я просто не понимаю, ради чего я трачу уйму времени на
то, чтобы создать прошивку с теми функциями, которыми я сам никогда пользоваться не буду.
- Вы понимаете, что я несу некоторые затраты (порой весьма существенные) на разработку
и обкатку новых сэмплов железа, трафика на поиск оптимального варианта используемого железа,
покупку и тестирование новых ПДУ для добавления их поддержки в проекте (хотя меня и мой ЕДИНСТВЕННЫЙ
устраивает).
Ну что же, справедливо. А как заплатить-то?
Я рад, что Вы все-таки нашли в себе силы дочитать до этого места :) Самый простой способ использовать сервис
SMS.копилка. Отправьте на особый номер
смс-ку со специальным кодом и Вашим сообщением (запиской), тем самым разрешив оператору Вашей сотовой
сети снять выбранную Вами сумму (монетку) со счета Вашего мобильника. Кликните по симпатичной свинке
с притороченным счетчиком монеток и Вам откроется страница с записками, уже принятыми моей смс-копилкой
(немного похоже на гостевую книгу).
После отправки SMS Ваша записка добавится к общему списку, а монетка попадет в sms.копилку.
Особенности схемотехники IgorPlug2.
В качестве замены был выбран более мощный процессор ATMega8, который на данный момент намного
дешевле и доступнее раритетных AT90S2313 и AT90S2323.
Светодиоды были перенесены на порт "C", а два не поместившихся старших бита - на порт "D".
При необходимости расширения, можно без серьёзных изменений исходника перейти на более
полнофункциональные чипы ATMega16, ATMega32, ATMega64, обладающие намного большей функциональностью
(на данный момент доступны прошивки под ATMega8 и ATMega88).
Или перепрофилировать устройство на выполнение других функций, не меняя драйвер или переделать
на работу со стандартным сервисом HID совместимых устройств.
Рис. 4 Внешний вид миниатюрного варианта.
Увеличить
Прислал FALCON (AKA Андрей г.Хмельницкий).
Миниатюрный вариант cхемы IgorPlug2 под ATMega8/88/48.
с возможностью самообновления прошивок через USB лежит -
тут.
Использовать только в случае SMD компонентов.
А тут
показано как к нему добавить оптопару для включения ПК с ПДУ.
Упрощённый вериант cхемы IgorPlug2 под ATMega8/88/48.
Это минимальный плюс защита от помех. Лежит -
тут.
Лишних деталей и лишних ёмкостей в ней нет.
Базовый вариант cхемы IgorPlug2 под ATMega8/88/48.
Это упрощённый плюс одна внешняя нагрузка. Лежит -
тут.
Лишних деталей и лишних ёмкостей в ней нет.
Универсальный вариант - перевёртыш.
для просмотра.
для печати.
Рис. 5 Внешний вид минимального варианта.
Увеличить
Прислал FALCON (AKA Андрей г.Хмельницкий).
В универсальном варианте представлен один центральный модуль (см. рис.2) и несколько вариантов
ведомых модулей для расширения функционала.
»Щелкните по этому тексту, чтобы развернуть пояснения«

При использовании специализированной прошивки
(например тут,
показана стыковка с PS/2 клавиатурой).
А упрощённая версия cхемы представляет из себя урезанный до минимума вариант центрального
модуля, в котором убрали всё кроме IR - USB части (см. рис. 3 левая плата).
Если вам не требуется полное отображение состояния параллельного порта (всех 8
светодиодов), то светодиоды можно не устанавливать вообще или оставить 3 светодиода на младших
битах для отображения работы программ контроля пульта, имеющих специализированный модуль для
работы с инфракрасным приёмником данного типа (например,
SlyControl ) или других...
Или для индикации работы аппаратного декодирования в спец модулях(
USB HID джойстик,
USB HID HID клавиатуро-мышка,
PS/2 система,
PS/2 часть проекта
GraniCubicle и т.д.).
Если девайс делать самим на макетке, то по габаритам он идеально подходит к корпусу
от отработанного HP картриджа, что и отображено на -
фото.
Если у вас уже есть программатор или один девайс IgorPlug с пропаян- ным внутрисхемным программатором, то
пропаивать пины внутрисхемного программатора не обязательно (как отображено на рис. 3 центральная и правая
платы). В этом случае в девайс вставляют заранее запрограм- мированный микропроцессор.
Инфракрасный светодиод излучателя установлен для будущих разработок (планируется перенаправить запись с епром
на буфер передатчика), но на данный момент это не реализовано в программе
SlyControl (веду активную переписку с автором программы...)
На рис.3 левая и правая модификации устройства имеют USB розетки типа "B" под стандартный соединительный
кабель, а на центральной модификации использован повреждённый USB кабель (с оторванной вилкой типа "B"),
т.е. провода соединительного кабеля запаяны напрямик на плату устройства...
Многие спрашивают: "Почему в качестве софта используется именно
SlyControl"?
Поясняю - эта программа удобнее других программ этого класса, имеет очень большие возможности,
модуль для работы с IgorPlug, и имеет очень полезную функцию эмуляции сервера WinLirc
(для связи со всеми программами, имеющими в своём составе клиента WinLirc), а также, что для
меня очень важно, бесплатна для пользователей из СНГ.
Но ещё раз хочу напомнить - если залить обученную прошивку, то данный девайс будет свободно
работать с любой PgorPlug совместимой программой, а в случае прошивки
HID клавиатуро-мышки
- с любой программой, позволяющей работать с клавиатурой или мышкой.
Рис. 6 Минимальный вариант на фоне USB Flash драйва.
Прислал FALCON (AKA Андрей г.Хмельницкий).
А в случае необходимости управлять любым разумным количеством внешних нагрузок (в примере
штатно заложен верхний предел в 128 штук, но возможно расширение). Более подробно
подключение и управление нагрузками с пульта описано
тут.
Ну раз мы вспомнили про внешние нагрузки, то дополнение по применению цветомузыки
с WinAmp (выводимой на 8 светодиодов данного проекта) можно найти -
В архиве.
А более подробное описание установки и использования библиотеки цветомузыки описано в подразделе
"Другие USB прошивки и программы для управления", который
обитает - тут.
Рис. 7 Сравнение SMD варианта и DIP варианта.
Прислал FALCON (AKA Андрей г.Хмельницкий).
Дизайн печатных плат, прошивки и драйвера.
Варианты дизайна печатных плат вынесены на отдельную страницу.
Прошивки HID версии и драйвера (в современных Windows системах ставить не надо - встроен, в Linux отдельный) к ним вынесены в
САМОСТОЯТЕЛЬНЫЙ вариант - с самостоятельным оформлением
который находится тут.
Классификация прошивок старой версии использующей драйвер в Win лежит -
тут,
а сами прошивки и драйвера, как и раньше лежат -
тут.
Ограничения.
Устройство разработано по принципу КАК ЕСТЬ и автор не несёт ответственности за явный (или не явный) ущерб,
причинённый в результате повторения.
То есть все эксперименты вы делаете на свой страх и риск.
Список часто задаваемых вопросов читайте в FAQ.
Если у вас возникли вопросы и предложения - пишите мне по адресу внизу страницы
Если вы нашли на моём сайте что-либо интересное или полезное для себя и хотите видеть
на этом сайте новые интересные проекты, а также поддержку, доработки существующих проектов,
то все желающие могут поддержать данный проект, частично покрыть оплату хостинга,
затраты на разработку и переделку проектов.
Кошелёк для оплаты накладных расходов на сайт
Z158779319858 в системе WebMoney.
Принимаю только
безвозмездную помощь :)
Все статьи, опубликованные на этом сайте защищены
Частью 4 Гражданского Кодекса Российской Федерации.
Запрещено полное или частичное копирование материалов без согласия их авторов.
Незаконное использование материалов сайта влечет за собой административную ответственность в виде
компенсации в размере от 10.000 рублей до 5.000.000 рублей [Ст.
1301,
1250,
1252,
1253 ГК РФ].
При согласованном использовании материалов сайта обязательна активная ссылка на
www.mindrunway.ru и указание авторства.

|
Copyright© 2007-2012 QuickWitted
|
Почта
grani
СОБАКА
mindrunway
РУ
|
|
|