Перевел на Мегу8.
Есть проблема. После нескольких нажатий комп иногда уходит в ступор или выдает "СТОП". Пока не могу определить проблему, то ли я накосячил с прошивкой, то ли комп глючит (случайно дотронулся рукой к одной из РУ6 -по экрану пошел мусор, заменил, возможно есть еще глючные, надо проверять). Поэтому выкладываю для повтора и теста полный комплект. Если у кого есть возможность и желание - повторите. Пока не реализовал кнопку "СТОП", сигнал не используется. Устройство подключается к внешнему разъему. Все сигналы стандартные, дополнительно вывел на А6 сигнал nCSI - вход nCS (выв.30) от ВП1-14, А7 сигнал nCSO - выход nBS (выв.38) от ВП1-37, А8 - выход/вход RP1 (выв. 20) от ВП1-14. Необходимо впаять резистор 1кОм в сигнал nCS между ВП1-37 и ВП1-14, сделать это удобней с обратной стороны платы под ВП1-37 - разрезать дорожку и припаять резистор (фото ниже). Со стороны контроллера, на разъеме между выв. А4 и А6 подпаиваем резистор на 1-10кОм (на схеме нет), это будет блокировать ВП1-14 при подключении контроллера. Если использовать ТМ5 (7477) серии 155, т.е. к155тм5, то незадействованные входы можно оставить "висеть" в воздухе. ТМ5 используется для "защелки" бита nAD1 по активации nCS. Вместо ТМ5 можно использовать ТМ9, в общем нужен триггер или регист, способный запоминать по отрицательному фронту или по "0" на управляющем выводе. Мега, без ТМ5, не успевает считать этот бит и определить к какому регистру идет обращение. Мега работает на 16МГц (пробовал и на 20МГц), конденсаторы 22пФ.
По коду. Процедура работы с клавиатурой PS/2 взята из Интернета, там ничего сложного. Обработка клавиш подправлена под собственные нужды. Переключение РУС-ЛАТ - правый и левый АЛТ, по аналогии с клавиатурой БКшки, так же и по F1-F9 - от ПОВТ до СБР. Настройку раскладки можно сделать через таблицу vk_code в scancodes.h. Таблица представляет из себя перекодировку из кода нажатой клавиши в код в таблице кодировки БК bk_code. Обратной связи с клавиатурой не делал, т.е. индикаторами не мигает. Автоповтор пока убрал до выяснения сбоев в работе.
![]()
Полній комплект (проект для WinAVR, схема в формате Eagle):
https://drive.google.com/drive/folde...C-?usp=sharing








Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

