PDA

Просмотр полной версии : Периферийный контроллер для Скорпиона с поддержкой USB



psk
16.06.2022, 19:09
Добрый день.

Решил я тут, в порядке самообразования, сделать периферийный контроллер для своего скорпиона.
Конструкция уже, в принципе, уже живет и работает, да и в ТГ приняли благосклонно.

Потому публикую здесь, может кому и пригодится тоже.

Уже реализовано:
- USB-хост: поддержка клавиатур, HID мышей, HID джойстиков/геймпадов, USB хабов
- USB-устройство: подключается к PC (сейчас для отладки), возможно взаимодействие PC со Spectrum
- Безвейтовая ZX-клавиатура с произвольными раскладками (в ПЗУ)
- Reset, Magic с клавиатуры
- USB джойстик превращается на Kempston Joystick
- Регенерация синхросмеси. Никаких больше перемычек/разрезов на плате. PAL кодер теперь дает нормальный цветной сигнал
- С доп. платой (в слот шины) USB мышь превращается в Kempston mouse
- Транзитом передает на гребенки: RGB сигнал (с выбором джампером оригинальная/регенерированная синхросмесь), стерео-аудио, моно-аудио, оригинальный видео сигнал, магнитофонный вход/выход
- Единая точка подключения питания
- Транзитное подключение внешнего джойстика (от Spectrum)
- Управление/индикация на клавиатуре турбой через двухпиновую колодку скорпиона. Настраиваемая клавиша управления турбой. Настраиваемый индикатор статуса турбы на клавиатуре.
- Настраиваемое отображение кнопок USB джойстика на кнопки ZX клавиатуры/Kempston Joystick (до 16 кнопок включая направления)
- Обмен кнопок мыши комбинацией клавиш клавиатуры

Планируется:
- Поддержка нескольких джойстиков/геймпадов
- Проигрыватель tap/tzx с PC через USB порт в Спектрум (`LOAD ""`)
- Захват centronix
- Управление/индикация на клавиатуре турбой через двухпиновую колодку скорпиона.
- Настройки контроллера (раскладки, мышь, джойстик) через доп. плату нативным приложением для скорпиона
- Настраиваемое отображение кнопок USB джойстика на кнопки ZX клавиатуры/Kempston Joystick

! Обновление

Как показал опыт - многие пользуются автономными контроллерами PS/2 и освобождать периферийный разъем не хотят. :)
Специально для таких случаев сделана ревизия С - автономный контроллер USB клавиатуры и геймпада, подключаемый к входам стандартной клавиатуры любого спектрума. PS/2 клавиатура может быть легко заменена на USB без необходимости изменять что-то в подключении компьютера.

Репозиторий на github:
https://github.com/psk7/scorpion-card-pub

77456 78299

reddie
17.06.2022, 10:27
Настраиваемое отображение кнопок USB джойстика на кнопки ZX клавиатуры
Было бы отлично. Давно пора отказаться от привязки к Кемпстону и дать игрокам/игроделам новые возможности.
Реализовал нечто подобное через подключение к пинам матричной клавы, но нужно больше путей реализации, чтобы новшество прижилось.
Пусть в данном виде контроллер только для Скорпиона, но уже хорошо. Дело пошло =)

psk
24.06.2022, 23:08
Список рализованных возможностей обновлен.


- Управление/индикация на клавиатуре турбой через двухпиновую колодку скорпиона. Настраиваемая клавиша управления турбой. Настраиваемый индикатор статуса турбы на клавиатуре.
- Настраиваемое отображение кнопок USB джойстика на кнопки ZX клавиатуры/Kempston Joystick (до 16 кнопок включая направления)
- Обмен кнопок мыши комбинацией клавиш клавиатуры

psk
07.01.2023, 20:30
Как показал опыт - многие пользуются автономными контроллерами PS/2 и освобождать периферийный разъем не хотят.
Специально для таких случаев сделана ревизия С - автономный контроллер USB клавиатуры и геймпада, подключаемый к входам стандартной клавиатуры любого спектрума. PS/2 клавиатура может быть легко заменена на USB без необходимости изменять что-то в подключении компьютера.

Подробности в первом посте.

78300

izzx
08.01.2023, 09:14
На обеих ревизиях разъём USB один? По фото не понятно куда джой подключать.
И в ревизии C переназначать до 16 кнопок джойстика тоже можно?

psk
10.01.2023, 10:50
На обеих ревизиях разъём USB один? По фото не понятно куда джой подключать.
И в ревизии C переназначать до 16 кнопок джойстика тоже можно?

В обоих версиях джойстик/клавиатура/мышь могут быть подключены одновременно через USB хаб. В revA - для подключения USB используется 4 контактная гребенка, в revC - стандартный TYPE A разъем.
Кнопки джойстика все переназначаемые, но, т.к. у revC нет полноценной двухсторонней связи со спеком, сделать переназначение приложением на самом спеке затруднительно.
Есть несколько вариантов для revC:
- приложение для PC, формирующее конфигурационный файл для прошивки в EEPROM
- каким-то образом сделать переназначение с клавиатуры (например нажимаем спец. комбинацию - мигают все индикаторы - нажимаем кнопку на геймпаде и желаемую кнопку на клавиатуре)

зы. revA заменена на revB (немного меньше размером, и на другом контроллере, т.к. 1КБ ОЗУ у ATmega32u2 для всего не хватает). revB выложу на github позже.

fifan
10.01.2023, 11:35
Я не кикадчик, нельзя ли схему в pdf/графическом форме лицезреть?

psk
10.01.2023, 11:57
Я не кикадчик, нельзя ли схему в pdf/графическом форме лицезреть?

Добавил схему в PDF в репозиторий (https://github.com/psk7/scorpion-card-pub/tree/master/revC)

goodboy
10.01.2023, 14:22
а как обстоит дело с обработкой одновременного нажатия нескольких клавиш ?
(в основном это применяется для активации всяких фирменных читов в играх)
например нажать одновременно "TURBO" получиться ?
.........
вот хороший/наглядный тест для устройств ввода
https://spectrumcomputing.co.uk/pub/sinclair/utils/p/PortDemonstrationV3.1.tap.zip

psk
10.01.2023, 15:40
а как обстоит дело с обработкой одновременного нажатия нескольких клавиш ?
(в основном это применяется для активации всяких фирменных читов в играх)
например нажать одновременно "TURBO" получиться ?
.........
вот хороший/наглядный тест для устройств ввода
https://spectrumcomputing.co.uk/pub/sinclair/utils/p/PortDemonstrationV3.1.tap.zip

С одновременным нажатием кнопок есть тонкость.
Дело в том, что большинство дешевых ширпотребных USB клавиатур сами по себе имеют ограничения на количество одновременно нажатых клавиш (описано, например, здесь (https://habr.com/ru/company/ulmart/blog/384797/)) вытекающих из их схемотехники. Это, как я подозреваю, относится также и к PS/2 клавиатурам.
У контроллера самого по себе с этим никаких проблем нет, ПЛМ честно хранит состояние всех 40 кнопок и честно их отдает спеку.
Так что, если конкретная клавиатура способна отдать нужную комбинацию одновременно нажатых клавиш - к спеку они тоже нормально придут.

fifan
10.01.2023, 16:54
MAX3421 труднодоставаемая. Китайцы продают 5 шт. за 3 289,93 руб.

psk
10.01.2023, 17:10
MAX3421 труднодоставаемая. Китайцы продают 5 шт. за 3 289,93 руб.

Согласен, сейчас все стало труднодоставаемое, к сожалению. Альтернатива - микроконтроллер с USB OTG (хотя их сейчас тоже попробуй достань), но любое USB OTG исключает поддержку хабов.
Собственно, это и было причиной использования автономного USB интерфейса.

ZXFanat
29.01.2023, 15:24
Из всего описания этой темы, не нашёл хоть какого-то указания на то, к какому Scorpion-у "подходит" устройство? К "жёлтому", к "зеленному"? Если к обоим вариантом, то уже это хорошо. Если только к одному из вариантов, либо к обоим с ограничениями, либо с "глюками", то об этом надо написать!

creator
29.01.2023, 15:46
За окном шёл дождь и рота красногвардейцев...

ZXFanat
29.01.2023, 17:26
За окном шёл дождь и рота красногвардейцев...

Какой у нас на форуме народ! Оптимисты, несмотря на то, что "..... За окном шёл дождь и рота красногвардейцев .....". Удивительная страна! В Новосибирске до сих пор неважная погода и красногвардейцы "толпами" поротно ходят.:v2_clapp::v2_tong2:

- - - Добавлено - - -


MAX3421 труднодоставаемая. Китайцы продают 5 шт. за 3 289,93 руб.

Да, можно согласится. хотя, и поштучно доставаема, но вопрос, до какого времени!? А заменить на другую микросхему, есть вариант?

psk
07.02.2023, 13:19
Насколько я знаю, периферийный разъем у всех скорпионов одинаковый - значит должно подойти ко всем, у меня, к сожалению :), нет всего зоопарка, производившегося Зоновым, т.ч. достоверно сказать не могу.

revC вообще должен быть совместим с любым спектрумом без исключения.

- - - Добавлено - - -


Какой у нас на форуме народ! Оптимисты, несмотря на то, что "..... За окном шёл дождь и рота красногвардейцев .....". Удивительная страна! В Новосибирске до сих пор неважная погода и красногвардейцы "толпами" поротно ходят.:v2_clapp::v2_tong2:

- - - Добавлено - - -



Да, можно согласится. хотя, и поштучно доставаема, но вопрос, до какого времени!? А заменить на другую микросхему, есть вариант?

Предлагайте варианты USB хоста :) Думаю не будет большой проблемой перепилить прошивку под них. Но, кмк, вряд ли они будут стоить дешевле в современных условиях.

Roman'S
16.04.2023, 10:34
psk, у Вас не осталось пустых плат?

OlegarX
16.04.2023, 11:32
Предлагайте варианты USB хоста
ch376s. Внутри поддержка FAT16/32. 3 интерфейса (SPI/UART/PARALLEL). И может как универсальный USB host работать. Стоит не дорого.

Mor-Da
16.04.2023, 18:23
ch376s. Внутри поддержка FAT16/32. 3 интерфейса (SPI/UART/PARALLEL). И может как универсальный USB host работать. Стоит не дорого.Ездили... очень всё как-то не очень

OlegarX
16.04.2023, 18:48
Там с даташитами беда, но на MSX есть эмулятор дисковода на гитхабе. Есть рабочий код для параллельного интерфейса под z80. Я пробовал - работает...
И он снизу вверх совместим с CH372...

psk
16.04.2023, 22:26
psk, у Вас не осталось пустых плат?

Остались ранние прототипы, с перемычками и навесными деталями. Как замена jlcpcb определится - закажу уже исправленных.

psk
29.07.2023, 11:31
Есть платы и немного собранных