На нашем сайте мы уже опубликовали описание интерфейса PS/2 для компьютерных клавиатур и мышей. Вы можете прочитать эти статьи: https://marsohod.org/11-blog/56-ps2 и https://marsohod.org/11-blog/57-ps2proto.
После такого подробного описания тут и думать нечего - сделаем из платы Марсоход простую PS/2 клавиатуру.
Понадобится плата Марсоход ну и провод от какой нибудь старой клавиатуры.
Провод с разъемом PS/2 нужно подключить к плате вот так:
Назначение главных сигналов интерфейса в проекте QuartusII вот такое:
- ps2data Location PIN_12 Yes
- ps2syn Location PIN_14 Yes
- ps2data Weak Pull-Up Resistor On Yes
- ps2syn Weak Pull-Up Resistor On Yes
Обязательно нужен подтягивающий резистор для сигнала ps2syn внутри чипа (weak pull-up). Для ps2data он не обязателен внутри чипа, так как снаружи он и так притянут к напряжению питания +5В резистором 2кОм. Это все из-за того, что интерфейс PS/2 использует схему с открытым коллектором.
Итак, вот наше устройство:
Проектик мы уже подготовили, вот он:
Вы можете выкачать этот проект, поизучать его. В среде программирования QuartusII он выглядит так (нажмите, чтобы увеличить):
Здесь два модуля: kbd и ps2. Они написаны на Verilog. Kbd - это обработчик событий кнопок и обработчик команд от компьютера типа зажечь светодиоды Caps/Num/Lock. Модуль ps2 - это собственно контроллер.
Ну и конечно, как обычно, мы показываем как это работает:
На этом видео можно видеть, что если на обычной USB клавиатуре нажимать клавиши Caps/Num/Lock, то загораются не только светодиоды клавиатуры, но и светодиоды на плате Марсоход, подключенной к компьютеру. Четыре кнопочки на плате Марсоход генерируют четыре кода для клавиш "1", "2", "3" и "4". На видео видно, что нажатие кнопок на платке приводит к появлению символов в окне текстового редактора NOTEPAD.
Подробнее...