Если у вас сохранился старый компьютер, то проблема подключения к нему современной мыши может быть вам знакома. Механические мыши старого образца рано или поздно изнашиваются - перетирается провод, продавливается пластмасса у кнопок так, что они перестают нажиматься и т.д. Да и вообще, иметь дело с современным лазерным мышом, как правило, гораздо приятнее, чем с образцами прошлого века вроде такого (конечно, если постоянная чистка колёсика питомца от грязи и намотанных волос не доставляют вам большого удовольствия) .
Интерфейс PS/2 активно использовался в "фирменных" компьютерах начиная с 286 (IBM PS/2), но COM-порт ещё долго оставался стандартом для подключения мыши и активно применялся до начала 2000 годов (вплоть до "вторых пентиумов" включительно). Т.к. мыши для COM-порта уже давно не производят, то для компьтеров без PS/2 порта остаётся два варианта: приспособить PS/2 или USB мышь. С PS/2 всё намного проще - этот протокол можно реализовать практически на любом бюджетном микроконтроллере, например, на atmega8. В случае USB придётся использовать более серьёзные чипы с аппаратной поддержкой USB в режиме хоста. Да, рано или поздно PS/2 мыши отомрут, но посколько сейчас их ещё можно приобрести без проблем, то этот вариант видится наиболее оптимальным.
В сети попалось готовое решение адаптера (к сожалению, автор его уже удалил). Исходный код был переписан под компилятор AVR GCC и частично переработан, в схему и прошивку были внесены некоторые изменения, и исправлена ошибка в схеме (хоть и запозданием - уже после изготовления печатных плат), увеличена скорость опроса мыши и внесены мелкие улучшения.
Адаптер построен на микроконтроллере atmega8 и преобразователи уровней для COM-порта MAX232. Микроконтроллер принимает данные от PS/2 мыши и передаёт их через UART.
Схема адаптера:
Плату развёл так, чтобы на ней можно было установить как DB-9 вилку, позволяющую втыкать плату адаптера в компьютер вместо мыши, так и разъём IDC-10 для подключения шлейфом непосредственно к материнской плате или мультикарте. В последнем случае адаптер можно установить в корпус и вывести наружу PS/2 розетку.
Адаптер требует питания +5В для себя и подключаемой мыши. Увы, запитать его от COM-порта не представляется возможным, т.к. оптические мыши едят электричества больше, чем их механические соплеменники. Да и сам адаптер тоже надо чем-то питать, и нагрузочный способности выводов COM-порта для этого явно недостаточно. Отдельного разъёма питания на плате я делать не стал, питание подаётся на 6-выводный разъём программатора ISP, на плате эти выводы подписаны.
Кроме перечисленных разъёмов на плате присутствуют три джампера:
Светодиод D1 светится при получении данных от PS/2 мыши, т.е., при её перемещении, нажатии клавиш или вращении колёсика.
К сожалению, в печатную плату первой версии (зелёная паяльная маска) вкралась ошибка в подключении конденсатора C3. Если запаять его на обозначенное место, микросхема MAX232 будет сильно греться. Проблема исправляется малой кровью - конденсатор подпаивается только к одной площадке, а второй его вывод соединяется небольшой перемычкой к 16му выводу MAX232 (см. фотографию выше).
Ошибка была исправлена в плате v1.1 (синяя паяльная маска). Кроме того, на плате был разведён разъём для подключения внешней планки с PS/2 гнездом и второй светодиод (показывает, что компьютер включает мышь, подавая на неё питание).
Конфигурация фьюзов:
Исходники проекта на githubИзлишки плат и собранные устройства - в магазине