Модули расширения и переходники
Шлейфы к разъёму MPS MD8
В версии МАКС все интерфейсы в связи с дефицитом места на задней панели выведены но один коммуникационный разъём, обозначенный как MPS.
Для подключения к разъёму MPS используется разъём типа Mini Din 8pin Male на кабель. Для подключения внешних устройств потребуется разветвитель, для него рекомендуется использовать 4-жильный провод от USB-устройств, длина кабеля разветвителя между разъёмами должна быть примерно 20 см.
Интерфейсы, выведенные на разъём MPS:
- PS/2 клавиатура
- порт RS-232 для подключения принтера или других периферийных устройств
- I2C шина для блока GPIO
- I2C шина для интерфейса LPT
В простейшем случае для МАКС версии необходимо сделать внешний коннектор для подключения клавиатуры. Монтажная схема и рекомендованные цвета проводников показаны на рисунке. Вид со стороны монтажа.
В случае необходимости подключения принтера или другого внешнего устройства с интерфейсом RS-232, разветвитель включает в себя коннектор DB9 male:
Распинловка полного варианта переходника показана на рисунке.
GPIO-модуль
Стандартный модуль GPIO позволяет использовать 24 цифровые линии ввода/вывода. Конструктивно модуль реализован в форм-факторе разъема DB25, одновременно он является и интерфейсом LPT-порта, поддержка которого встроена в BIOS.
Для подключения различных внешних устройств в компьютере физически используются линии SCL/SDA контроллера периферийных устройств, а для управления ими -- порты 215--218. Команды вывода реализованы так же в виде ESC-последовательностей. Аппаратно модуль построен на базе расширителей PCF8574A. Не забывайте, что выходной каскад микросхем PCF8574(A) имеет так называемый "слабый" (weak) pull-up резистор сопротивлением 100 кОм и, фактически, может рассматриваться как выход с открытым стоком.
Подробно блок GPIO со схемой и несколькими вариантами печатных плат опубликован в журнале Радио №1 за 2022 год.
Модуль GPIO позволяет легко собирать различные схемы для управления внешними устройствами, вот один из примеров.
Подключение манипулятора мышь
Начиная с версии 0.21 микропрограммы КВУ появилась поддержка PS/2 манипулятора мышь в стандартном виде: перемещение и три клавиши, колё- сико не поддерживается. Мышь подключается к линиям интерфейса I 2 C по следующей схеме: SDA -- DATA, SCL -- CLOCK. Для управления используются те же порты, что и для устройств GPIO.
Примерный порядок работы с мышью из пользовательской программы следующий:
- Инициализировать мышь, записав команду 0xE0 в порт 215, сделать задержку 5 мс, проверить значение в порту 215. Если значение равно 1, это значит, что мышь не подключена. Если инициализация прошла успешно, будет возвращено значение 0 и активированное состояние мыши будет инициализироваться индикацией светодиода NumLock на клавиатуре.
- Для опроса необходимо записать команду 0xE1 в порт 215, выдержать паузу 10 мс и проверить код ошибки в порту 215. Если произошла ошибка чтения, опрос необходимо повторить.
- Опрос состояния возвращает следующие значения: порт 216 -- состояние клавиш: биты 0--2 соответствуют левой, правой и средней кнопке соответственно, в битах 4--6 сохраняются прошлые значения, что позволяет фиксировать нажатия на клавиши, бит 3 -- бит арбитража; порты 217 и 218 возвращают накопительное перемещение мыши по осям X и Y в формате восьмибитных знаковых целых чисел, эти значения не сбрасываются при опросе, напротив, программа должна анализировать перемещение и корректировать значения записью в соответствующий порт для корректной работы счётчиков перемещений. По опыту приемлемым является накопительное значение +/-60 для фиксации перемещения.
- После окончания работы программы необходимо деактивировать устройство и освободить интерфейсную линию, записав 0xE4 в порт 215, индикатор NumLock при этом погаснет. Аппаратно инициализировать мышь можно, записав команду 0xE2 в порт 215.
В версиях микропрограммы для ЦПУ версии с 4.62 предусмотрена работа мыши и без необходимости программирования. Нажатие комбинации клавиш Ctrl-Alt-NumLock активирует режим "автомышь", при котором перемещения передаются как нажатие клавиш стрелок, а нажатия кнопок -- настроенными кодами, по умолчанию левая кнопка возвращает код 32 (пробел), правая -- ESC, но эти настройки могут быть изменены. Активный режим "автомышь" индициируется индикатором NumLock.