PDA

Просмотр полной версии : Контроллер матричной клавиатуры для подключения к USB (PS/2)



CityAceE
18.03.2024, 16:34
В основном тут обсуждают как подключить стандартную клавиатуру PS/2 или USB к ZX Spectrum или другим ретро-компьютерам, чтобы скан-коды клавиатуры по заложенному алгоритму преобразовывались в соответствующие замыкания на матрице. И таких контроллеров уже разработано немало.

А я вот собираюсь сейчас заказывать (https://zx-pk.ru/threads/35618-klaviatura-na-svitchakh-dlya-lika-i-standartnogo-spetsialista.html) реплику клавиатуры для ПК Специалист на современных свитчах Cherry MX. И у меня возникла потребность провести обратное преобразование. То есть, чтобы замыкания в моей матричной клавиатуре преобразовывались в стандартные скан-коды. То есть, по сути мне каким-то простым способом нужно повторить начинку стандартной PC-клавиатуры, но с нестандартной матрицей.

Для чего это мне нужно? Хочу сделать универсальную плату, чтобы без доработок самой платы ему можно было использовать её по двум сценариям. Одну плату без распаянного контроллера я подключу к реальному компьютеру, а на второй хочу распаять контроллер и подключить её к PC (или Raspberry Pi) и использовать совместно с эмулятором.

Нашёл вот такую статью: https://habr.com/ru/articles/693784/
Ссылка на исходники: https://github.com/coprolitebbs/ps2-keyboard

Может быть есть что-то ещё попроще и поуниверсальнее?

P.S. Мне нужно подключить клавиатуру с матрицей 12*6 (72 клавиши).

Trol73
18.03.2024, 17:28
Кажется, такой вариант будет попроще: https://zx-pk.ru/threads/32497-kak-peredelat-prakticheski-lyubuyu-klaviaturu-v-ps-2.html

M80
19.03.2024, 09:37
Попроще по железу? 12х6 ATmega8 хватит, Ардуино про мини и т.д.

CityAceE
19.03.2024, 09:53
Попроще по железу?
Да.


12х6 ATmega8 хватит
Я забыл ещё про две отдельные кнопки. То есть ещё + матрица 2*1.

M80
19.03.2024, 11:29
Я забыл ещё про две отдельные кнопки.
Мега8 под завязку.) Желательны диоды на каждую кнопку, если нужна фиксация всех одновременных нажатий.
PS. Если в планарном корпусе, то ещё и на 2 светодиода ног хватит.

goodboy
19.03.2024, 23:43
https://github-wiki-see.page/m/znoxx/ARCAdaptor/wiki/Arduino---ZX-Spectrum-USB-Keyboard
https://adaptor.su/arc/doc/

max232cpe
20.03.2024, 22:02
Так как в ру инете внятного как всегда ничего не было и быть не могло, пришлось много читать иностранщины и на 2 день наконец то выискалось что то стоящее!!!

Гитхаб: https://github.com/HuffmanCS/PS2-Keyboard

Видео:
https://www.youtube.com/watch?app=desktop&v=QN2XzY0KLII&ab_channel=HuffmanCS

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

Отладочная платка, и немного контролёров...

https://cdn.discordapp.com/attachments/622806098851790849/1220083046829523034/IMG_20240127_181820.jpg?ex=660da5e2&is=65fb30e2&hm=d2eee8297e021c0ce71c0e57fe8df3875abc25d7bd626c7 8c2dfa5f341343826&
https://cdn.discordapp.com/attachments/622806098851790849/1220083046225674340/IMG_20240224_191326.jpg?ex=660da5e2&is=65fb30e2&hm=0fbb617170548c66664952f57951e78a126725dc2d5a602 7aae2637ddc2becf9&
https://cdn.discordapp.com/attachments/622806098851790849/1220083046561091655/IMG_20240222_214302.jpg?ex=660da5e2&is=65fb30e2&hm=04ec18adf0de11e50e309d499197ecdd5dabfe78a5b5e29 5c6f98248fb09b61a&

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

И главный запас)))) 200+ шт в заводской упаковке...

https://cdn.discordapp.com/attachments/622806098851790849/1220084542035988490/IMG_20240320_235959.jpg?ex=660da746&is=65fb3246&hm=bccc2b059bbd3e584ea2ba45193f700fa8eaed79709ab41 a8d1b3be7de5044ed&

valerium
21.03.2024, 08:05
Как вариант простой и компактной реализации на одной атмеге и даже без кварца
https://github.com/andykarpov/zx-unikeyboard-ps2

Код, формирующий события на ps/2 от andykarpov, у меня работало все неплохо, я собирал в ардуино ide.

Удобство в том, что матрица может цепляться как угодно хаотично, а затем обучением можно опрашивать ее структуру и добавлять в исходник.
Обучалка матрицы моя (для построения структуры матрицы и привязке к ногам атмеги). По этой части, тут:
https://github.com/valerium-labs/zx-unikeyboard

M80
21.03.2024, 12:26
Как вариант простой и компактной реализации на одной атмеге и даже без кварца

А кварц то там зачем.)

valerium
21.03.2024, 14:00
А кварц то там зачем.)

Да не особо и нужен, только если с генератором в фьюзах ошибиться - полезно, что было, куда кварц ткнуть и сменить фьюзы. Но на той плате и места под него нету ))

M80
21.03.2024, 14:36
Ну, смотря на чём делать. Обычно у начинающих ужасная боязнь изменения фьюзов. И куча траблов из за этого. AVR мега все идут по дефолту со встроенным 1-мгц генератором. Если брать Ардуино, то там 16 мгц кварц по умолчанию. Ну а кварц для PS/2 не нужен абсолютно. И даже для отладки (UART) intrc вполне достаточно.