Пошаговая инструкция по доступной для каждого адаптации
Варианты адаптации
- Немецкий: подключение квадратурных выходов сенсора к порту Амиги напрямую. Автор MastaTabs, апрель 2014
- Русский: подключение квадратурных выходов сенсора через буферные инверторы. Автор StarCat, февраль 2014
- Чешский: изготовление собственной печатной платы методом ЛУТ. Автор EXA, март 2014
Как можно видеть, идея родилась впервые у Жиржи Резека из домашнего чешского сервис-центра Servis EXA, а затем была творчески переосмыслена в России (AiC), и наконец Германии (a1k.org). На изначального автора никто конечно не ссылался (первый ссылаюсь) или всех осенило одновременно (весна же). К вопросу о том откуда что берётся. =)
Наглядно покажу чем отличаются практические реализации, а Вы уже выберите по вкусу. Я буду описывать дальше свою (русскую) реализацию - те кому она не подходит (привет, Useless ;) могут дальше не читать.
Немецкая | Русская | Чешская |
Чисто немецкая педантичность | Мышь на |
Кнедлики |
Схема подключения
StarCat был немногословен в своём сообщении, поэтому пришлось хорошо изучить вопрос. Схемы рисовать не мастак, чисто по-менеджерски нарисовал схемку в LibreOffice Draw (кликабельно). Можно опять же брать и делать. Ошибки распайки в исходной картинке StarCat были проверены на практике и исправлены, в остальном те же яйца - вид сбоку.
Для тех кто хочет указать свой копирайт (в фантазии не ограничиваю) - исходный файл.
Шаг 1 - Покупаем необходимое
Если что-то из нижеперечисленного у Вас уже есть, себестоимость будет ещё ниже. Цены приведены по состоянию на май 2015 г.
Материал | Стоимость |
---|---|
Оптическая мышь (PS/2 или PS/2+USB) |
от 100 р. |
Мягкий патч-корд 1,5-2 м (или любой тонкий кабель на 8-10 solid-жил) |
до 250 р. |
Микросхема К561ЛН2 (аналог CD4049AE) |
29 р. |
DIP-панель SCS-16 | 8 р |
Гнездо DIN DB-9F | 13 р. |
Корпус DP-9C | 21 р. |
ИТОГО: 421 р. |
Необходима оптическая мышка построенная на сенсоре обладающем квадратурными выходами (Xa, Xb, Ya, Yb). Мне известны 10 таких сенсоров: ADNS-2001, ADNS-2051, ADNS-2030, PAN3201DH (1,8V!), PAN3601DH, PAN3601DH-NF, PAW3602DH, PAW3602DH-NF, PAW3603DH, GL603USB-B. Из них наиболее предпочтительны рассчитанные на напряжение 5В. Микросхема К561ЛН2 имеет рабочий диапазон от 3 до 15 В и обеспечивает согласование уровней (за что её собственно и любят). Полный аналог К561ЛН2 - микросхема CD4049AE имеет другую распиновку, причём встречается как в корпусе DIP-14, так и DIP-16. Она также подойдёт, стоит дороже.
Идеально подходят мышки Logitech M-BJ58 и M-BJ69. Если верить Google должны подойти также Logitech M-BD69, A4Tech BW-26, Oklick 710L, 725L, Cherry M-BD70, двухсенсорная мышка Logitech Mouseman Dual Optical, уникальный манипулятор RTR-720 Mark II, элитарные трекболы Kensington серии Optical Expert Mouse. Самые буйные могут попытаться сделать из беспроводных Apacer M811 и M821 проводные оптические для Амиги (это без меня).
Косвенным показателем подходящей мышки является указание производителем PS/2+USB, что требует дополнительной интерфейсной микросхемы т.к. в большинстве мышек сегодня поддержка USB интегрирована в сам сенсор, а его корпус на выводах усох до минимума необходимого USB (D+, D-, земля и питание). Стоят универсальные мышки дороже, а квадратурные сенсоры для них продолжают изготавливать и в Китае, и на Тайване.
Большой проблемой является кабель. Минимально нам необходимо 8 жил, если хотим добавить 3-ю кнопку - 9 жил. Можно использовать мягкий патч-корд UTP Cat 5e отрезав ~ 1,5 м. Его мягкости не вполне хватает хотя он и лучше шлейфа. Гениальные идеи насчёт кабелей ШТЛП-8 и КСПВ-10 посещали меня и моих друзей. Это ещё хуже. Часто используют промышленный кабель от амижной мышки, но это даёт нам только 2 кнопки и потерю родной ретро-мыши. Встречается гибкий монтажный кабель на 9 жил и я даже нашёл себе такой, но марку не знаю. Ищущий - да обрящет.
Внимание на панельку. Лучше использовать SCS-16, хотя у микросхемы всего 14 ног. Во-первых, CD4049(AE) чаще встречается всё-таки в корпусе DIP-16 (если не найдётся К561ЛН2 в DIP-14). Во-вторых, нам необходимы вырез между контактными группами и вырезы по бокам панельки со стороны платы. Последнее встречается по моим наблюдениям начиная с SCS-16.

Шаг 2 - Выпаиваем интерфейсную микросхему
Разбираем нашу мышку (у меня Logitech M-BJ58).
Достаём плату и смотрим на неё спереди (снимаем скобу). Интерфейсный чип CP5928AM занимается согласованием для PS/2 + USB. Вся часть схемы касающаяся его подключения к сенсору нам не нужна и более того - м.б. вредна.
Переворачиваем плату. Нам предстоит взять паяльник, оловоотсос и отпаять интерфейсный чип. Он прекрасно отпаивается при температуре ~ 350 °C. Если из паяльников у Вас кочерга, а оловоотсоса вообще нет, прежде чем продолжать - купите. Паяльник с керамическим нагревателем и регулятором 30-50 Вт типа этого стоит 500-750 руб, тут говорить вообще не о чем. Оловоотсос для этой операции также абсолютно необходим. У меня Solomon SH-817B.
Да! Мы сделали это! =)
Шаг 2 - Разводим питание и кнопки
На краю платы любой мышки есть разъём на 4-5 pin к которому подключается мышиный кабель. 5 pin в Logitech M-BJ58 как раз хватает для подключения +5В, GND и 3 кнопок мыши. Используем существующую распайку по GND и +5В, а pin относящиеся к +Data, -Data и Shield аккуратно отделим от дорожек скальпелем - к ним мы позже припаяем перемычки. Распайка разъёма:
Сигнал | Цвет |
---|---|
+Data | зелёный |
-Data | белый |
+5V | красный |
Shield | чёрный |
GND | чёрный |
Подключаем GND и +5V - светодиод не загорается. Питание зависимо от интерфейсного чипа который мы выпаяли. Заводить питание через дорожки этого чипа не будем, чуть позже мы их вообще уничтожим. Гарантировано +5В доходит до штатной перемычки W1 с которой удобно бросить свою перемычку на 13-ю ногу сенсора A2051.

Аналогичным образом перемычками заводим левую, правую и среднюю (нажимаемую колёсиком) кнопки на этот разъём. Если у нас будет всего 2 кнопки - бросаем перемычку между левой и средней, они удобно находятся рядом. У Вас будет два способа нажать левую кнопку когда микрик на левой раздолбается. =)
Шаг 3 - Разделываем кабель
Сейчас мы можем разделать кабель и подключить к мышиному порту Амиги чтобы посмотреть что у нас уже получается. Для этого нам необходима программа Advanced Amiga Analyzer by Wilcom ходящая по народу под названием Full Test (скачать). Она позволяет визуализировать обращения к портам, нас пока интересуют кнопки. Поскольку мы используем витую пару будет удобным расписать по цветам сигналы, чтобы подключая к мышиной плате знать куда какой идёт. Я сделал это так:
Pin | Сигнал | Цвет |
---|---|---|
1 | Vp | синий |
2 | Hp | бело/синий |
3 | VQp | зелёный |
4 | HQp | бело/зелёный |
5 | M btn | - |
6 | L btn | бело/оранжевый |
7 | +5V | оранжевый |
8 | GND | коричневый |
9 | R btn | бело/коричневый |
Со стороны порта (лучше использовать кембрики, а не как на фотографии).
Со стороны платы. У нас выделились две линии: 1) питание, земля и кнопки и 2) квадратуры которые пойдут отдельно.
Смотрим что получается в тесте - нажимаем кнопки. Имеем ввиду что после запуска теста курсор находится в верхнем левом углу и нажатие левой кнопки закроет окно. Я не сразу понял почему программа закрывается. Лучше предварительно отогнать куда-нибудь курсор старой мышкой, по горячему.. =)
Шаг 4 - Подключаем согласование
Микросхему будем ставить на панельку SCS-16 и подключать согласно схеме в начале статьи. Все дорожки на плате касающиеся интерфейсного чипа нам не нужны. Поэтому обводим скальпелем все его контакты на обратной стороне платы. Также нам не нужны все SMD-компоненты которые там напаяны. Грубо говоря, сенсор будет "висеть в воздухе", получать свои +5В и GND, управлять светодиодом и отдавать нам квадратуры.
Будем аккуратны и не повредим дорожки необходимые для управления светодиодом. К светодиоду подключаются 6-я нога (XY_LED - управление светодиодом) и 14-я нога (R_BIN - текущий резистор) сенсора A2051. Для изменения яркости свечения светодиода он просто запитывается через разные сопротивления. На 13-ю ногу (Vdd) сенсора A2051 подаётся +5V, а на 12-ю и 10-ю ноги (GND) - земля. Вот дорожки с этих ног/выводов - жалеем. Всё остальное уничтожается. Затем запаиваем панельку.
Прошу не падать со стула: нам понадобится шуроповёрт и острое тонкое сверло. Запаяв панельку надо высверлить всё что находится в пространстве между контактными группами панельки действуя с верхней стороны платы. Стенки запаянной панельки удобно ограничивают движение сверла: не надо ничего рассчитывать и размечать. Операция необходима для того чтобы вывести провода с квадратурами на лицевую часть платы.
Удобно использовать разноцветные провода от той же витой пары для обозначения сигналов. Они достаточно жесткие (и здесь это - плюс), чтобы сохранять свою форму будучи выгнутыми. Также их толщина не нарушит клиренс сенсора равный 2,1 мм. При его нарушении сенсор просто не будет работать. Вот как выглядит клиренс с запаянными проводами. Также здесь хорошо видно как из под панельки через отсверленную прорезь выведены квадратуры с обратной стороны платы.
Помним что панелька у нас 16-ти ногая, интерфейсный чип был вообще 18-ти ногий, а наша микросхема имеет 14-ть ног и не ошибаемся в распайке! Проще всего припаять выводы со 2-й (V) и 4-й (H) ног к одной витой паре (синий и бело/синий) и выводы с 6-й (VQ) и 8-й (HQ) ног - ко второй витой паре (зелёный и зелёно/белый). После этого нам останется самая малость.
Припаиваем 4 перемычки между микросхемой К561ЛН2 и нашим сенсором (распайка для A2051). Всё очень удобно находится рядом.
К561ЛН2 | <- сигнал -> | ADNS-2051 |
---|---|---|
1 | Ya | 5 |
3 | Xb | 4 |
5 | Yb | 3 |
9 | Xa | 2 |
Самые внимательные заметят здесь ошибку: Xb и Yb поменялись местами. Но иначе нам пришлось бы бросать перемычку поверх перемычки что недопустимо. Проще поменять их обратно при подключении выведенных ранее квадратур.
Теперь запитаем нашу микросхему от сенсора. С 13-й ноги сенсора на 14-ю ногу К561ЛН2 бросим перемычку +5V (красный). С 10-й ноги сенсора на 7-ю ногу К561ЛН2 бросим GND (коричневый). Прикладываем площадку с линзами HDNS-2100 и убеждаемся что никакие перемычки не мешают ей стоять как положено. С схемой закончили, должно получиться что-то вроде этого:
Шаг 4 - Подключаем плату
Переворачиваем плату и вставляем микросхему К561ЛН2 в предназначенную для неё панельку. Питание и кнопки у нас уже подключены, осталось разобраться с квадратурами. Помним что на предыдущем шаге пришлось устроить реверс сигналам, поэтому чтобы не компостировать никому мозги напишу подключение платы к кабелю просто по цветам:
Кабель | <- сигнал -> | Плата |
---|---|---|
синий | Ya | бело/зелёный |
бело/синий | Xb | бело/синий |
зелёный | Yb | зелёный |
бело/зелёный | Xa | синий |
Если Вы в точности следовали инструкциям после подключения светодиод загорится и тест покажет перемещение курсора с зажигающимися контактами на мышином порту. Если нет - смотрите где ошиблись при подключении платы. Косвенную информацию может дать перемещение курсора только по горизонтали или только по вертикали. Если курсор кружит и елозит на одном месте - все сигналы на плате подключены неверно. Ничего страшного: отпаиваем по одному (отключая мышь) и смотрим на результат, комбинаций не так много (подключение по цветам выше - верное). LEFT/RIGHT/UP/DOWN на рисунке разъёма в тесте ничего не значат (и распайка эта неверна), направления верны только для джойстика. Но пары сигналов H и HQ, также как V и VQ отвечают за горизонтальное и вертикальное перемещение соответственно.
Шаг 5 - Собираем мышку
После того как Вы добились работающей мышки (800 dpi !) осталось только подкоротить и уложить провода. Рекомендую пользоваться кембриками. На фотографии ниже мышка у меня подключена уже не по витой паре, а по 9-ти жильному монтажному кабелю (подключена и 3-я кнопка). Фотографию платы с уложенной витой парой своевременно не сделал, извиняюсь. =)
И небольшой ролик демонстрирующий работу адаптированной для Амиги оптической мыши Logitech M-BJ58:
Надеюсь что доставил Вам интересное хобби выходного дня. ;)