Инструменты пользователя

Инструменты сайта


msx:msxhid1:msxhid1

MSX HID 1 — Контроллер USB-джойстика/мыши для MSX

Контроллер USB HID-устройств для компьютеров семейства MSX, является продолжением проекта Контроллер PS/2-мыши в MSX.

Основой изделия является МК ATTiny44 (или ATTiny84) и микросхема MAX3421E - USB host контроллер с SPI-интерфейсом.

Подключается к MSX — Порт общего назначения и эмулирует работу мышки или джойстика. Работает с большинством USB устройств типа мышек, клавиатур и джойстиков, как проводных так и беспроводных.

Возможно обновление прошивки MK USBasp программатором или любым другим ISP–программатором микросхем семейства ATMEL.

Светодиоды (с версии 2.7):

Цвет Сигнал Описание
зелёныйReadyПри не подключенном USB–устройстве, либо если оно не идентифицировано, светодиод на плате контроллера моргает с периодом порядка 1 секунды. Если устройство распознано, светодиод горит непрерывно
красныйFull SpeedОн загорается при подключении HID–устройства, работающего в этом режиме

Допускает подключение устройств на лету, без отключения питания компьютера.

Для беспроводных клавиатуры и мышки, подключенных одновременно, при включенном светодиоде CAPS LOCK работает клавиатура в режиме JOYSTICK, иначе мышка в режиме MOUSE.

Если использовать комплект из без проводной клавиатуры и мышки, то по умолчанию контроллер работает в режиме эмуляции мышки, но клавиши клавиатуры, используемые для управления кнопками Триггер A и Триггер B работают параллельно с кнопками мыши. Для переключения в режим джойстика надо нажать на клавиатуре кнопку Caps Lock.

Мышка работает по расширенному протоколу, который подразумевает обработку в том числе колеса и дополнительных кнопок. Но только если это предусматривает драйвер соответствующей программы.
Этот режим реализован например в SymbOS.

Джойстик эмулируется как простой двух-кнопочный манипулятор.

Для определения типа устройства можно использовать USB Device Tree Viewer (программа для MS Windows).

Кнопки джойстика:

  • На мышке:

    Левая клавишаТриггер A
    Правая клавишаТриггер B

    Направление:

       8   1    2
         \ | /
    7  --  0  --   3
         / | \
       6   5    4       
  • Клавиши клавиатуры:

    , , , Управление курсором
    Пробел и любая из левых клавиш:
    Shift, Ctrl, Alt, ⊞ Win
    Триггер A
    Любая из правых клавиш:
    Shift, Ctrl, Alt и ⊞ Win
    Триггер B

Для тестирования контроллера рекомендуется использовать программу HidTest с версии 3.1.

Обновление прошивки

Для обновления прошивки используется USBAsp и AVRDude.

Тест устройства:

sudo avrdude -p t44 -c usbasp

Пример вывода

Пример вывода

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9207 (probably t44)

avrdude: safemode: Fuses OK (E:FF, H:DB, L:E2)

avrdude done.  Thank you.

Загрузка прошивки:

sudo avrdude -p t44 -c usbasp -U msx_ms26.hex

Пример вывода

Пример вывода

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9207 (probably t44)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "msx_ms26.hex"
avrdude: input file msx_ms26.hex auto detected as Intel Hex
avrdude: writing flash (4096 bytes):

Writing | ################################################## | 100% 2.40s

avrdude: 4096 bytes of flash written
avrdude: verifying flash memory against msx_ms26.hex:
avrdude: load data flash data from input file msx_ms26.hex:
avrdude: input file msx_ms26.hex auto detected as Intel Hex
avrdude: input file msx_ms26.hex contains 4096 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.29s

avrdude: verifying ...
avrdude: 4096 bytes of flash verified

avrdude: safemode: Fuses OK (E:FF, H:DB, L:E2)

avrdude done.  Thank you.

Старый вариант изображения

Старый вариант изображения

Расположение контактов на разъёме который установлен на плату контроллера:

          ┌─────────┐
          │ 2  4  6 │
┌───────┐ │ 1  3  5 │
│       │ └─────────┘
│  USB  │   ▲
│       │
└───────┘

Назначение контактов:

Описание
1 MISO
2 VCC
3 SCK
4 MOSI
5 Reset
6 GND (-)

Микроконтроллер ATTiny44:

  • DEVICE SIGNATURE = 1E9207
  • FUSEs:
    • HIGH = 0xDB
    • LOW = 0xE2
    • EXT = 0xFF

Файлы:

  • Версия 2.7 (2021-03-12), требует доработки:

    Нажмите, чтобы отобразить

    Нажмите, чтобы скрыть

  • Версия 3.0 (2022-01-16), добавлена поддержка MegaDrive c 4–мя кнопками:

    Нажмите, чтобы отобразить

    Нажмите, чтобы скрыть

    Для переключения в режим MegaDrive после инициализации необходимо первой нажать кнопку Start, нажатие любой другой кнопки (кроме кнопок направления) переводит контроллер в режим поддержки двух–кнопочного джойстика.

  • Версия 3.3 (2022-01-24), добавлена поддержка MegaDrive c 6–мя кнопками, варианты для устройств с разным расположением кнопок:
msx/msxhid1/msxhid1.txt · Последние изменения: 2022-01-24 21:52 — GreyWolf