Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
msx:usbhid1:usbhid1 [2021-09-04 04:19] brawaga Typos |
msx:usbhid1:usbhid1 [2021-09-14 22:25] (текущий) GreyWolf |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== USBHID1 — Контроллер USB-джойстика/мыши для MSX ====== | + | ~~HIDEPAGE:search;sitemap~~ |
- | + | ~~REDIRECT>msx:msxhid1:msxhid1~~ | |
- | {{usb2msx_joy.jpg?450|}} | + | |
- | + | ||
- | {{msxhid1.jpg?450|}} | + | |
- | + | ||
- | Контроллер USB HID-устройств для компьютеров семейства MSX. | + | |
- | + | ||
- | Основой изделия является МК ATTiny44 (или ATTiny84) и микросхема MAX3421E - USB host контроллер с SPI-интерфейсом. | + | |
- | + | ||
- | Подключается к порту [[msx:psg:psg|PSG]] и эмулирует работу мышки или джойстика. Работает с большинством USB устройств типа мышек, клавиатур и джойстиков, как проводных так и беспроводных. | + | |
- | + | ||
- | Возможно [[#firmware_update|обновление прошивки]] MK [[usbasp:usbasp|USBasp]] программатором или любым другим ISP–программатором микросхем семейства ATMEL. | + | |
- | + | ||
- | Светодиоды (с версии 2.7): | + | |
- | |<100% 10% 10% 80%>| | + | |
- | ^ Цвет ^ Сигнал ^ Описание ^ | + | |
- | |<color #22b14c>⬤</color> зелёный|Ready|При не подключенном USB–устройстве, либо если оно не идентифицировано, светодиод на плате контроллера моргает с периодом порядка 1 секунды. Если устройство распознано, светодиод горит непрерывно| | + | |
- | |<color #CC0000>⬤</color> красный|Full Speed|Он загорается при подключении HID–устройства, работающего в этом режиме| | + | |
- | + | ||
- | Допускает подключение устройств на лету, без отключения питания компьютера. | + | |
- | + | ||
- | Для беспроводных клавиатуры и мышки, подключенных одновременно, при включенном светодиоде CAPS LOCK работает клавиатура в режиме JOYSTICK, иначе мышка в режиме MOUSE. | + | |
- | + | ||
- | Если использовать комплект из без проводной клавиатуры и мышки, то по умолчанию контроллер работает в режиме эмуляции мышки, но клавиши клавиатуры, используемые для управления кнопками <key>Триггер A</key> и <key>Триггер B</key> работают параллельно с кнопками мыши. Для переключения в режим джойстика надо нажать на клавиатуре кнопку <key>Caps Lock</key>. | + | |
- | + | ||
- | Мышка работает по расширенному протоколу, который подразумевает обработку в том числе колеса и дополнительных кнопок. Но только если это предусматривает драйвер соответствующей программы. \\ Этот режим реализован например в [[msx:symbos:symbos|Symbos]]. | + | |
- | + | ||
- | Джойстик эмулируется как простой двух-кнопочный манипулятор. | + | |
- | + | ||
- | <WRAP center round info 100%> | + | |
- | Для определения типа устройства можно использовать [[usbtreeview:usbtreeview|]] (программа для MS Windows). | + | |
- | </WRAP> | + | |
- | + | ||
- | Кнопки джойстика: | + | |
- | * <WRAP> На мышке: | + | |
- | |Левая клавиша|<key>Триггер A</key>| | + | |
- | |Правая клавиша|<key>Триггер B</key>| | + | |
- | + | ||
- | Направление: | + | |
- | <code> | + | |
- | 8 1 2 | + | |
- | \ | / | + | |
- | 7 -- 0 -- 3 | + | |
- | / | \ | + | |
- | 6 5 4 | + | |
- | </code> | + | |
- | </WRAP> | + | |
- | * <WRAP>Клавиши клавиатуры: | + | |
- | |<key>←</key>, <key>→</key>, <key>↑</key>, <key>↓</key>|Управление курсором| | + | |
- | |<key>Пробел</key> и любая из левых клавиш: \\ <key>Shift</key>, <key>Ctrl</key>, <key>Alt</key>, <key>⊞ Win</key>|<key>Триггер A</key>| | + | |
- | |Любая из правых клавиш: \\ <key>Shift</key>, <key>Ctrl</key>, <key>Alt</key> и <key>⊞ Win</key>|<key>Триггер B</key>| | + | |
- | </WRAP> | + | |
- | + | ||
- | Для тестирования контроллера рекомендуется использовать программу [[msx:hidtest:hidtest#v31|HidTest v3.1]]. | + | |
- | + | ||
- | {{anchor:firmware_update}} | + | |
- | ====== Обновление прошивки ====== | + | |
- | + | ||
- | Для обновления прошивки используется [[usbasp:usbasp|]] и [[avrdude:avrdude|]]. | + | |
- | + | ||
- | Тест устройства: | + | |
- | <code bash> | + | |
- | sudo avrdude -p t44 -c usbasp | + | |
- | </code> | + | |
- | + | ||
- | <hidden Пример вывода> | + | |
- | <code> | + | |
- | 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. | + | |
- | </code> | + | |
- | </hidden> | + | |
- | + | ||
- | Загрузка прошивки: | + | |
- | <code bash> | + | |
- | sudo avrdude -p t44 -c usbasp -U msx_ms26.hex | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | <hidden Пример вывода> | + | |
- | <code> | + | |
- | 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. | + | |
- | </code> | + | |
- | </hidden> | + | |
- | + | ||
- | {{msxhid1_isp.jpg?450|}} | + | |
- | + | ||
- | <hidden Старый вариант изображения> | + | |
- | {{usb2joy_icsp.jpg?450|}} | + | |
- | </hidden> | + | |
- | + | ||
- | {{anchor:contacts}} | + | |
- | Расположение контактов на разъёме который установлен на плату контроллера: | + | |
- | <code> | + | |
- | ┌─────────┐ | + | |
- | │ 2 4 6 │ | + | |
- | ┌───────┐ │ 1 3 5 │ | + | |
- | │ │ └─────────┘ | + | |
- | │ USB │ ▲ | + | |
- | │ │ | + | |
- | └───────┘ | + | |
- | </code> | + | |
- | + | ||
- | Назначение контактов: | + | |
- | |<10px 20px>| | + | |
- | ^ № ^ Описание ^ | + | |
- | | 1 |MISO| | + | |
- | | 2 |VCC| | + | |
- | | 3 |SCK| | + | |
- | | 4 |MOSI| | + | |
- | | 5 |Reset| | + | |
- | | 6 |GND (-)| | + | |
- | + | ||
- | Микроконтроллер ATTiny44: | + | |
- | * DEVICE SIGNATURE = 1E9207 | + | |
- | * FUSEs: | + | |
- | * HIGH = 0xDB | + | |
- | * LOW = 0xE2 | + | |
- | * EXT = 0xFF | + | |
- | + | ||
- | Файлы: | + | |
- | * {{msx_ms23.hex|Версия 2.3}} | + | |
- | * {{msx_ms24.hex|Версия 2.4 (2020-12-30)}} | + | |
- | * {{msx_ms25.hex|Версия 2.5 (2021-01-06)}} | + | |
- | * {{msx_ms26.hex|Версия 2.6 (2021-01-21)}} | + | |
- | * {{msx_ms27.hex|Версия 2.7 (2021-03-12)}}, требует доработки: <WRAP><hidden>{{msxhid1_fix-1.svg |}}</hidden></WRAP> | + | |
- | + | ||
- | {{tag> MSX Hardware USB Kamil_Karimov-projects}} | + |