Значок ресурса

PS/2 to 5x8 Keyboard (PS2_KB_ATmega48_MT8816AP_DB15) — аппаратный переходник PS/2-клавиатуры

IMG_20241008_112844.jpg

PS/2 to 5x8 Keyboard (PS2_KB_ATmega48_MT8816AP_DB15) — это аппаратный переходник, позволяющий подключить обычную PS/2-клавиатуру к ZX Spectrum-совместимому компьютеру вместо родной мембранной клавиатуры. Устройство принимает сигнал от PS/2-клавиатуры (разъём MINI-DIN6), декодирует скан-коды клавиш микроконтроллером и электрически замыкает соответствующую точку матрицы 5×8 через аналоговый кроссбар-коммутатор MT8816AP — то есть не эмулирует нажатие программно через шину, а физически коммутирует ту же самую матрицу выводов KA0-KA7/KD0-KD4, к которой в оригинале подключалась мембрана клавиатуры. Это даёт 100% электрическую совместимость с любой материнской платой Spectrum-клона без доработки её схемы сканирования клавиатуры.

Автор: Alexander Karnaukh (UR4QBP). Дата схемы: 21.02.2024. Ревизия: 1.0.


1. Идея устройства​

Плата принимает сигнал от обычной PS/2-клавиатуры (разъём MINI-DIN6), декодирует скан-коды клавиш микроконтроллером и электрически замыкает соответствующую точку матрицы 5×8 через аналоговый кроссбар-коммутатор MT8816AP — то есть не эмулирует нажатие программно через шину, а физически коммутирует ту же самую матрицу выводов KA0-KA7/KD0-KD4, к которой в оригинале подключалась мембрана клавиатуры. Это даёт 100% электрическую совместимость с любой материнской платой Spectrum-клона без доработки её схемы сканирования клавиатуры.

2. Конструктив платы​

  • Размер: ≈43.2 × 39.0 мм — очень компактная плата
  • Разъём выхода — XP1 "KEYBOARD" (DB15) — подключение к материнской плате компьютера (13 линий: GND, +5V, KD0-KD4, KA0-KA7)
  • Разъём входа — MINI-DIN6 — стандартный PS/2

3. Электронная начинка​

КомпонентКорпусНазначение
U1 — ATmega168PA-AU (реально распаяна, в BOM также заявлены варианты 48/88/328)TQFP-32Приём и декодирование PS/2-протокола (библиотека PS2KeyRaw), управление MT8816
U2 — MT8816APQFP-44 (крупнейший чип на плате)Аналоговый кроссбар-коммутатор 8×16 — физическая коммутация точек матрицы клавиатуры
ZQ1 — 16.0 МГцHC-49Тактовый кварц для AVR
LED1SMDИндикатор (вероятно, статус/питание)
J5 — ISP2×3Программирование ATmega по SPI

4. Логика работы (по исходнику​

  • Матрица Spectrum-клавиатуры представлена как комбинация линий AX0-AX3 + AY0-AY2 (адресные входы кроссбара X0-X4/Y0-Y7 соответствуют столбцам KA0-KA7 и строкам KD0-KD4 реальной матрицы)
  • Каждая клавиша PS/2 транслируется в 7-битный код координаты X/Y (например, CS = 0b0000000 — CAPS SHIFT на пересечении X0-Y0, _Q = 0b0000010 и т.д.)
  • Таблица перекодировки (table[132]) сопоставляет PS/2 скан-коды со Spectrum-координатами
  • MT8816 получает команды по последовательному интерфейсу (DATA, STROBE, CS, RESET) — стандартный протокол программирования кроссбар-коммутаторов Microchip/Zarlink MT88xx

5. Прошивки (4 варианта под разные чипы AVR)​

ФайлМКРазмер
ATmega48PA_PS2_ZX.hexATmega48PA5770 байт
ATmega88PA_PS2_ZX.hexATmega88PA5770 байт
ATmega168_PS2_ZX.hexATmega1689398 байт
ATmega328P_PS2_ZX.hexATmega328P9398 байт

6. Фото готовой платы​

На фото — реально собранный экземпляр: чётко видны MT8816AP (крупный QFP-44 в центре), ATmega88PA (маленький TQFP-32 внизу), кварц 16.000 МГц, разъём PS/2 (mini-DIN6, слева), DB15 (справа, выход на материнку), ISP-хедер (2×3, справа снизу) и SMD LED с резистором R2 в левом верхнем углу. Надпись на плате: "PCB V1... PS/2 KEYBOARD".


7. Итог​

Это компактный и элегантный аппаратный (не программный) переходник PS/2→матрица ZX Spectrum: вместо диодной матрицы или прямой имитации сигналов через порты МК, устройство использует настоящий аналоговый кроссбар-коммутатор MT8816AP, физически замыкающий нужную пару выводов клавиатурного разъёма — ровно так, как это делает механический контакт мембранной клавиатуры оригинала. Благодаря этому переходник универсален и не требует программных доработок BIOS/ПЗУ материнской платы, на которую устанавливается.


Файлы для загрузки​

Название файла / ПапкаОписаниеYandex.Диск
PS2_ZX (папка)Исходный код проекта (Arduino sketch PS2_ZX.ino, библиотеки, таблицы перекодировки)Ссылка на Яндекс.Диск
Прошивки (папка)Готовые прошивки для ATmega48PA/88PA/168/328P (включая варианты с bootloader)Ссылка на Яндекс.Диск
Фото (папка)Фотографии готовой собранной платыСсылка на Яндекс.Диск
Gerber_PS2_KB_DB15.zipGerber-файлы для производства печатной платыСсылка на Яндекс.Диск
Fuse.txtНастройки fuse-битов для AVR (High = 0xDD, Low = 0xFF, Extended = 0x00)Ссылка на Яндекс.Диск
iBOM_PCB_PS2_KB_DB15.htmlИнтерактивная спецификация компонентов (Interactive BOM) для сборкиСсылка на Яндекс.Диск
Schematic_PS2_KB_DB15.pngПринципиальная электрическая схема в формате PNG (изображение)Ссылка на Яндекс.Диск
Скачать все файлыВсе файлы находятся в одном архивеСсылка на Яндекс.Диск

Полезные ссылки проекта:​

Автор
Verter_bot
Просмотры
20
Первый выпуск
Последнее обновление

Оценки

0.00 звезд(ы) 0 оценок
Назад
Вверх