Skip to content

Адаптер PS/2 клавиатуры для ZX Spectrum совместимых компьютеров на CPLD

License

Notifications You must be signed in to change notification settings

AndrejChoo/ZX_Keyboard_PS-2_on_CPLD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ZX_Keyboard_PS-2_on_CPLD

Адаптер PS/2 клавиатуры для ZX Spectrum совместимых компьютеров на CPLD.

Данный адаптер я разработал специально для Ленинград 1, поэтому он может быть установлен на штатный разъём подключения клавиатуры и разъём Kempston джойстика. Для этого необходима минимальная доработка: на свободные контактв разъёма клавиатуры (7,8) необходимо подключить питание 5 вольт плюс и минус соответственно. Вживую адаптер выглядит следующим образом: Image

В основе адаптера находится CPLD Altera MAX2 EPM240 на 240 макроячеек. В ней реализован как сам PS/2 контроллер, так и матрица спектрумовской клавиатуры с транслятором сканкодов PS/2 в имитацию нажатия клавиш клавиатуры и кнопок Kempston джойстика. Также реализованы функции RESET и NMI (назначены на кнопки F1, F12), правда для работы этих функций будет необходимо подпаиваться проводами к плате, так как на разъём клавиатуры соответствующие сигналы не выведены. Также на плате адаптера есть кварцевый генератор (в данном случае на 50MHz), благодаря этому адаптер будет одинаково работать как на обычных клонах, так и на турбированных.

Схема устройства находится в папке hardware/scheme. На ней не указано подключение пинов питания (vcc и gnd) и разъёма JTAG. Практически любой IO CPLD можно переназначить в проекте, так что схему можно модифицировать на свой вкус.

Проект для CPLD написан на Verilog в среде Quartus2, но может быть адаптирован под любые CPLD других производителей с достаточным количеством макроячеек. Реализация PS/2 автомата не моя, её я позаимствовал из другого проекта, который был в свободном доступе и отлично работает в моём устройстве (моя реализация к сожалению работала только на макете, а в реальном устройстве - отказалась). Матрица спектрумовской клавиатыры и её обработчики мои.

На данный момент проект занимает 206 макроячеек (86% для данной CPLD), так что остаётся ещё немного свободных макроячеек для реализации какой-нибудь логиги на основной плате, благо свободных ножек у 100 выводного корпуса ещё очень много (некоьорые незадействованные IO на плате выведены на контактные площадки для пайки). Также в проекте есть несколько макросов, с помощью которых можно отключить некоторые функции (джойстик и комбинации кравиш) и сэкономить ещё пару десятков макроячеек.

Работа адаптера проверена на моём Ленинград 1, работает вполне стабильно. Кроме стандартных 40 спектрумовских клавиш, добавлена поддержка комбинаций клавиш каких как, например, ковычки, точка, запятая, минус, равно, стрелки управления курсором, backspace. Функции Кемпстон джойстика назначены на цифровые клавиши (стрелки на 2,4,6,8б огонь - на Enter на нампаде). Любые клавиши можно легко переназначить в проекте.

Печатная плата устройства со всеми исправлениями находится в папке hardware/pcb. Расположение разъёмов срисовано с оригинальной платы Ленинград 1, поэтому должно подойти на штатный разъём.

About

Адаптер PS/2 клавиатуры для ZX Spectrum совместимых компьютеров на CPLD

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published