Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

преобразователь интерфейса PS/2->USB на микроконтроллере

Пн фев 03, 2014 10:21:24

Случилось у меня несчастье - издох китайский преобразователь интерфейса PS/2->USB. Там внутри бескорпусная микросхема в виде капли - она и умерла. Теперь не могу пользоваться своей любимой клавиатурой редкой модели так как в компе нет порта PS/2. Добыть такой переходник в сельской местности где я живу - не реально,его и в Питере-то несколько лет назад изрядно поискать пришлось,несколько дней по магазинам бегал.
Но дома есть Атмеги - на них можно реализовать такой преобразователь интерфейса. Только вот если с интерфейсом PS/2 проблемы нет,он очень простой, то в USB сам черт ногу сломит,запрограммировать эмуляцию HID-клавиатуры я затрудняюсь.
Однако если мне память ни с кем не изменяет - видел я где-то в сети описание такого преобразователя с исходником программы. Если кому-то из присутутвующих попадалось - дайте пожалуйста ссылку,а то у меня что-то не получается найти через мой медленный радиомодем.

Re: ищу преобразователь интерфейса PS/2->USB на микроконтрол

Пн фев 10, 2014 01:36:28

Отвечаю сам себе:)

Нашел изделие некоего японца - целый комплект программ для подключения всяких клавиатур к USB,в том числе ps/2,что мне и требовалось.
http://geekhack.org/index.php?topic=14618.0
Сделан он под всякие продвинутые модели микроконтроллеров от Atmel.
А у меня в сельской местности только Atmega8 на чердаке нашлась.
Нарисовал схему,собрал на макетке.
Переделал программу: во-первых японец похоже давно не проверял собирается ли оно у него с VUSB после очередных правок. Так вот могу ему сказать - не собирается:) Поправил. Добавил в конфиг функции и настройки для работы на Atmega8. Повыключал ненужные мне возможности создания клавиатурных макросов - а то код в память не влезал.
Теперь влезает и даже несколько сотен байтов свободных осталось.
Зашил,подключил - кажется работает. За ночь тестирования видел только один глюк при переключении на русский в Xorg - ничего не набиралось. Пара переключений туда-обратно и заработало. Возможно виноваты помехи. Я на подтягивающих резисторах со стороны клавы сэкономил.
Если будет глючить - припаяю.

Прилагаю свою схему и diff к японским исходникам. Если кто-то умеет писать по-японски или хотябы по-английски - отправьте пожалуйста этот diff японцу.
Вложения
IMG_0889.JPG
(104.44 KiB) Скачиваний: 1798
diff.zip
(2.48 KiB) Скачиваний: 678
ps2usb.pdf
(34.7 KiB) Скачиваний: 921

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Пт фев 14, 2014 17:46:17

Понял в каком случае возникает редкий глюк клавиатуры.
У меня в XOrg запоминается состояние рус/лат для каждого окна.
А индикация выведена на светодиод ScrollLock на клавиатуре.
И если быстро переключать окна,то комп быстро посылает клавиатуре команды на переключение светодиода. И в некоторых(редких) случаях по всей видимости микроконтроллер не успевает обрабатывать пакеты USB - обработка ведь программная.
Вот тогда он и взглючивает.
Так что рекомендуется в случае использования этого преобразователя интерфейса отказаться от индикации рус/лат светодиодом на клавиатуре,а пользоваться экранным индикатором.

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Чт фев 20, 2014 14:22:27

После отказа от индикации состояния переключателя рус/лат светодиодом ScrollLock на клавиатуре - глюки исчезли,за несколько дней пользования - ни единого сбоя. Доволен изделием как слонЪ. Можно повторять и пользоваться:)
Тем более что там в исходниках можно накопать варианты для подключения к компу всяких экзотических клавиатур(а то и свой дописать) - отличный вариант для "моддинга".

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Пн апр 28, 2014 12:10:13

Спасибо! очень помогли с адаптацией для atmega8. Реально работает :) есть несколько вопросов

После отказа от индикации состояния переключателя рус/лат светодиодом ScrollLock на клавиатуре - глюки исчезли

А где отключали? (может в будущем пригодится)
В Вашей схеме есть светодиод на PC0 - для чего? (не нашел где он используется)
И еще один вопрос, файл diff какой программой создавали?

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Ср май 07, 2014 15:04:30

Valentin_N писал(а):Реально работает

Рад что хорошему человеку пригодилось!
Еще бы найти кого-нибудь кто японский знает чтобы diff автору софта отправить.

ScrollLock на клавиатуре - глюки исчезли

А где отключали?

В файле xorg.conf естественно.

В Вашей схеме есть светодиод на PC0 - для чего?

использовался для отладочных целей,да так и остался.
вещь не обязательная.

И еще один вопрос, файл diff какой программой создавали?

Программа так и называется - diff.

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Ср янв 21, 2015 15:06:38

Откопал причину редких (пару раз в месяц) глюков,причем не только этого устройства,а и китайской мышки тоже.
Оказалось что в линуксе стоит слишком маленький таймаут на активацию устройства после выхода из спящего режима.
Баг этот старый,2013 года,но в ядрах для архитектуры ARM по сей день присутствует.
Краткое описание тут: https://xakep.ru/2013/08/23/61125/
Ищем TRSMRCY и рядом меняем цифирку 10 на 20. Нашлось в пяти местах,не знаю все ли используются,но поменял все. Вроде как с тех пор больше мой конвертор не отваливался.

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Пт мар 11, 2016 00:26:20

Приветствую!

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

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Пн мар 28, 2016 11:57:50

Специально порылся в старом ноутбуке,кажется прошивка была вот эта
Вложения
ps2_usb_vusb.zip
(8.11 KiB) Скачиваний: 442

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Вс апр 08, 2018 01:11:37

В схеме STK200 что означает - гнездо подключения программатора или что?

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Вс апр 08, 2018 23:56:30

В схеме STK200 что означает - гнездо подключения программатора или что?

Все верно, разъем для подключения программатора

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Пн авг 27, 2018 19:36:23

Данный преобразователь только с клавиатурой работает или с мышкой тоже?

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Пн авг 27, 2018 21:52:38

глупо сейчас делать такое проще взять другой клаф илит другой мыш ну или тупо перепаять штекер нынешние клавы умеют работать по 2 протоколам автоматом распознавая интерфэйс
иногда даже пасивный переходник прилагался в комплекте но даже если его нет то 99% b[ поддерживают просто перпаять штекер

Re: преобразователь интерфейса PS/2->USB на микроконтроллере

Вт сен 18, 2018 02:26:20

Преобразователь работает только с клавиатурой.
А про глупость изготовления скажу что предназначен он для подключения экзотических клавиатур в целях например моддинга или по причине личных пристрастий к какому-то определенному типу или даже экземпляру клавиатуры. Например немало любителей старых клавиатур от IBM. Model M в частности.
Впрочем - "взять другую клавиатуру" тоже не всегда проще. Я живу на острове посреди Финского залива и тут имеет место быть такое незнакомое типичным горожанам явление как распутица. И вот у меня дома оказалось штук пять ps/2 клав и умерла последняя usb. А основной комп - одноплатник на ARM (в целях энергоэффективности ибо полная автономка) и имеет только usb разъемы. Вот и сделал преобразователь из того что дома нашлось чтобы месяц без компа не сидеть. А нашлась естественно мелкая атмега.
Ответить