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 — MT8816AP | QFP-44 (крупнейший чип на плате) | Аналоговый кроссбар-коммутатор 8×16 — физическая коммутация точек матрицы клавиатуры |
| ZQ1 — 16.0 МГц | HC-49 | Тактовый кварц для AVR |
| LED1 | SMD | Индикатор (вероятно, статус/питание) |
| J5 — ISP | 2×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.hex | ATmega48PA | 5770 байт |
ATmega88PA_PS2_ZX.hex | ATmega88PA | 5770 байт |
ATmega168_PS2_ZX.hex | ATmega168 | 9398 байт |
ATmega328P_PS2_ZX.hex | ATmega328P | 9398 байт |
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/ПЗУ материнской платы, на которую устанавливается.
Файлы для загрузки
Полезные ссылки проекта: