преобразователь интерфейса PS/2->USB на микроконтроллере
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
преобразователь интерфейса PS/2->USB на микроконтроллере
Случилось у меня несчастье - издох китайский преобразователь интерфейса PS/2->USB. Там внутри бескорпусная микросхема в виде капли - она и умерла. Теперь не могу пользоваться своей любимой клавиатурой редкой модели так как в компе нет порта PS/2. Добыть такой переходник в сельской местности где я живу - не реально,его и в Питере-то несколько лет назад изрядно поискать пришлось,несколько дней по магазинам бегал.
Но дома есть Атмеги - на них можно реализовать такой преобразователь интерфейса. Только вот если с интерфейсом PS/2 проблемы нет,он очень простой, то в USB сам черт ногу сломит,запрограммировать эмуляцию HID-клавиатуры я затрудняюсь.
Однако если мне память ни с кем не изменяет - видел я где-то в сети описание такого преобразователя с исходником программы. Если кому-то из присутутвующих попадалось - дайте пожалуйста ссылку,а то у меня что-то не получается найти через мой медленный радиомодем.
Но дома есть Атмеги - на них можно реализовать такой преобразователь интерфейса. Только вот если с интерфейсом PS/2 проблемы нет,он очень простой, то в USB сам черт ногу сломит,запрограммировать эмуляцию HID-клавиатуры я затрудняюсь.
Однако если мне память ни с кем не изменяет - видел я где-то в сети описание такого преобразователя с исходником программы. Если кому-то из присутутвующих попадалось - дайте пожалуйста ссылку,а то у меня что-то не получается найти через мой медленный радиомодем.
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: ищу преобразователь интерфейса PS/2->USB на микроконтрол
Отвечаю сам себе:)
Нашел изделие некоего японца - целый комплект программ для подключения всяких клавиатур к USB,в том числе ps/2,что мне и требовалось.
http://geekhack.org/index.php?topic=14618.0
Сделан он под всякие продвинутые модели микроконтроллеров от Atmel.
А у меня в сельской местности только Atmega8 на чердаке нашлась.
Нарисовал схему,собрал на макетке.
Переделал программу: во-первых японец похоже давно не проверял собирается ли оно у него с VUSB после очередных правок. Так вот могу ему сказать - не собирается:) Поправил. Добавил в конфиг функции и настройки для работы на Atmega8. Повыключал ненужные мне возможности создания клавиатурных макросов - а то код в память не влезал.
Теперь влезает и даже несколько сотен байтов свободных осталось.
Зашил,подключил - кажется работает. За ночь тестирования видел только один глюк при переключении на русский в Xorg - ничего не набиралось. Пара переключений туда-обратно и заработало. Возможно виноваты помехи. Я на подтягивающих резисторах со стороны клавы сэкономил.
Если будет глючить - припаяю.
Прилагаю свою схему и diff к японским исходникам. Если кто-то умеет писать по-японски или хотябы по-английски - отправьте пожалуйста этот diff японцу.
Нашел изделие некоего японца - целый комплект программ для подключения всяких клавиатур к USB,в том числе ps/2,что мне и требовалось.
http://geekhack.org/index.php?topic=14618.0
Сделан он под всякие продвинутые модели микроконтроллеров от Atmel.
А у меня в сельской местности только Atmega8 на чердаке нашлась.
Нарисовал схему,собрал на макетке.
Переделал программу: во-первых японец похоже давно не проверял собирается ли оно у него с VUSB после очередных правок. Так вот могу ему сказать - не собирается:) Поправил. Добавил в конфиг функции и настройки для работы на Atmega8. Повыключал ненужные мне возможности создания клавиатурных макросов - а то код в память не влезал.
Теперь влезает и даже несколько сотен байтов свободных осталось.
Зашил,подключил - кажется работает. За ночь тестирования видел только один глюк при переключении на русский в Xorg - ничего не набиралось. Пара переключений туда-обратно и заработало. Возможно виноваты помехи. Я на подтягивающих резисторах со стороны клавы сэкономил.
Если будет глючить - припаяю.
Прилагаю свою схему и diff к японским исходникам. Если кто-то умеет писать по-японски или хотябы по-английски - отправьте пожалуйста этот diff японцу.
- Вложения
-
- IMG_0889.JPG
- (104.44 КБ) 1936 скачиваний
-
- diff.zip
- (2.48 КБ) 747 скачиваний
-
- ps2usb.pdf
- (34.7 КБ) 1023 скачивания
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Понял в каком случае возникает редкий глюк клавиатуры.
У меня в XOrg запоминается состояние рус/лат для каждого окна.
А индикация выведена на светодиод ScrollLock на клавиатуре.
И если быстро переключать окна,то комп быстро посылает клавиатуре команды на переключение светодиода. И в некоторых(редких) случаях по всей видимости микроконтроллер не успевает обрабатывать пакеты USB - обработка ведь программная.
Вот тогда он и взглючивает.
Так что рекомендуется в случае использования этого преобразователя интерфейса отказаться от индикации рус/лат светодиодом на клавиатуре,а пользоваться экранным индикатором.
У меня в XOrg запоминается состояние рус/лат для каждого окна.
А индикация выведена на светодиод ScrollLock на клавиатуре.
И если быстро переключать окна,то комп быстро посылает клавиатуре команды на переключение светодиода. И в некоторых(редких) случаях по всей видимости микроконтроллер не успевает обрабатывать пакеты USB - обработка ведь программная.
Вот тогда он и взглючивает.
Так что рекомендуется в случае использования этого преобразователя интерфейса отказаться от индикации рус/лат светодиодом на клавиатуре,а пользоваться экранным индикатором.
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
После отказа от индикации состояния переключателя рус/лат светодиодом ScrollLock на клавиатуре - глюки исчезли,за несколько дней пользования - ни единого сбоя. Доволен изделием как слонЪ. Можно повторять и пользоваться:)
Тем более что там в исходниках можно накопать варианты для подключения к компу всяких экзотических клавиатур(а то и свой дописать) - отличный вариант для "моддинга".
Тем более что там в исходниках можно накопать варианты для подключения к компу всяких экзотических клавиатур(а то и свой дописать) - отличный вариант для "моддинга".
-
Valentin_N
- Родился
- Сообщения: 2
- Зарегистрирован: Пт июл 10, 2009 22:44:32
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Спасибо! очень помогли с адаптацией для atmega8. Реально работает
есть несколько вопросов
А где отключали? (может в будущем пригодится)
В Вашей схеме есть светодиод на PC0 - для чего? (не нашел где он используется)
И еще один вопрос, файл diff какой программой создавали?
После отказа от индикации состояния переключателя рус/лат светодиодом ScrollLock на клавиатуре - глюки исчезли
А где отключали? (может в будущем пригодится)
В Вашей схеме есть светодиод на PC0 - для чего? (не нашел где он используется)
И еще один вопрос, файл diff какой программой создавали?
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Valentin_N писал(а):Реально работает
Рад что хорошему человеку пригодилось!
Еще бы найти кого-нибудь кто японский знает чтобы diff автору софта отправить.
ScrollLock на клавиатуре - глюки исчезли
А где отключали?
В файле xorg.conf естественно.
В Вашей схеме есть светодиод на PC0 - для чего?
использовался для отладочных целей,да так и остался.
вещь не обязательная.
И еще один вопрос, файл diff какой программой создавали?
Программа так и называется - diff.
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Откопал причину редких (пару раз в месяц) глюков,причем не только этого устройства,а и китайской мышки тоже.
Оказалось что в линуксе стоит слишком маленький таймаут на активацию устройства после выхода из спящего режима.
Баг этот старый,2013 года,но в ядрах для архитектуры ARM по сей день присутствует.
Краткое описание тут: https://xakep.ru/2013/08/23/61125/
Ищем TRSMRCY и рядом меняем цифирку 10 на 20. Нашлось в пяти местах,не знаю все ли используются,но поменял все. Вроде как с тех пор больше мой конвертор не отваливался.
Оказалось что в линуксе стоит слишком маленький таймаут на активацию устройства после выхода из спящего режима.
Баг этот старый,2013 года,но в ядрах для архитектуры ARM по сей день присутствует.
Краткое описание тут: https://xakep.ru/2013/08/23/61125/
Ищем TRSMRCY и рядом меняем цифирку 10 на 20. Нашлось в пяти местах,не знаю все ли используются,но поменял все. Вроде как с тех пор больше мой конвертор не отваливался.
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Приветствую!
Не сочтите за наглость - можете поделиться скомпилированным файлом прошивки? Не смог разобраться в исходниках и diff на винде далек от совершенства, а линукс для меня - темный лес...
Не сочтите за наглость - можете поделиться скомпилированным файлом прошивки? Не смог разобраться в исходниках и diff на винде далек от совершенства, а линукс для меня - темный лес...
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Специально порылся в старом ноутбуке,кажется прошивка была вот эта
- Вложения
-
- ps2_usb_vusb.zip
- (8.11 КБ) 503 скачивания
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
В схеме STK200 что означает - гнездо подключения программатора или что?
-
Valentin_N
- Родился
- Сообщения: 2
- Зарегистрирован: Пт июл 10, 2009 22:44:32
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
[uquote="nikfel",url="/forum/viewtopic.php?p=3349035#p3349035"]В схеме STK200 что означает - гнездо подключения программатора или что?[/uquote]
Все верно, разъем для подключения программатора
Все верно, разъем для подключения программатора
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Данный преобразователь только с клавиатурой работает или с мышкой тоже?
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
глупо сейчас делать такое проще взять другой клаф илит другой мыш ну или тупо перепаять штекер нынешние клавы умеют работать по 2 протоколам автоматом распознавая интерфэйс
иногда даже пасивный переходник прилагался в комплекте но даже если его нет то 99% b[ поддерживают просто перпаять штекер
иногда даже пасивный переходник прилагался в комплекте но даже если его нет то 99% b[ поддерживают просто перпаять штекер
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1406
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: преобразователь интерфейса PS/2->USB на микроконтроллере
Преобразователь работает только с клавиатурой.
А про глупость изготовления скажу что предназначен он для подключения экзотических клавиатур в целях например моддинга или по причине личных пристрастий к какому-то определенному типу или даже экземпляру клавиатуры. Например немало любителей старых клавиатур от IBM. Model M в частности.
Впрочем - "взять другую клавиатуру" тоже не всегда проще. Я живу на острове посреди Финского залива и тут имеет место быть такое незнакомое типичным горожанам явление как распутица. И вот у меня дома оказалось штук пять ps/2 клав и умерла последняя usb. А основной комп - одноплатник на ARM (в целях энергоэффективности ибо полная автономка) и имеет только usb разъемы. Вот и сделал преобразователь из того что дома нашлось чтобы месяц без компа не сидеть. А нашлась естественно мелкая атмега.
А про глупость изготовления скажу что предназначен он для подключения экзотических клавиатур в целях например моддинга или по причине личных пристрастий к какому-то определенному типу или даже экземпляру клавиатуры. Например немало любителей старых клавиатур от IBM. Model M в частности.
Впрочем - "взять другую клавиатуру" тоже не всегда проще. Я живу на острове посреди Финского залива и тут имеет место быть такое незнакомое типичным горожанам явление как распутица. И вот у меня дома оказалось штук пять ps/2 клав и умерла последняя usb. А основной комп - одноплатник на ARM (в целях энергоэффективности ибо полная автономка) и имеет только usb разъемы. Вот и сделал преобразователь из того что дома нашлось чтобы месяц без компа не сидеть. А нашлась естественно мелкая атмега.