PS/2 to COM converter (Сочинил вот на днях очередную поделку.)

Все, что не подходит под определение "старого софта и железа", обсуждается здесь
Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 31307
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону
Благодарил (а): 46 раз
Поблагодарили: 120 раз

Вклад в сообщество

Сообщение Rio444 » 06.07.2015,13:04

Fe-Restorator писал(а):Эт чо, на всех мышах испокон веков надо было так делать?!?!?! А я-то перекидывал рубильник и шёл чай пить покуда комп грузиться изволил... И ни разу не было "отвалившихся колёс", равно как и "внезапно появившегося пятого колеса"... Драйвер - курит за углом, ибо первый на очереди - твой переходник, он и "отследит колесо" при старте компа.
Нет, это для того, чтобы дать знать конвертеру, что мы хотим использовать колёсико. Или я Вас не правильно понял.
Fe-Restorator писал(а):Кнопка там лишняя, вообще. Как класс.
ИМХО, надёжнее всяких комбинаций. Винда может и не воспринимает одновременное нажатие кнопок, а вот реакция DOS-программ непредсказуемая. Настраивать нужно ОДИН раз для DOS. В виндах есть своя настройка скорости. Там это вообще не нужно.

Электронка: Изображение копия Изображение

Гость

Сообщение Гость » 06.07.2015,14:17

Rio444 писал(а):Нет, это для того, чтобы дать знать конвертеру, что мы хотим использовать колёсико. Или я Вас не правильно понял.
1) берём, наугад, заранее неизвестно какую мышь
2) подключаем её к переходнику, а переходник - к компу
3) подаём питалово на всех участников "содома".

Внимание, правильный вопрос:
Каким образом мышь "уведомит" комп об наличии у ней "колеса"?

Внимание, второй правильный вопрос:
Каким образом перехватить "уведомление" мыши силами переходника?

Внимание, третий правильный вопрос:
Сумеет-ли переходник превращать 4-х байтный пакет "от мыши" в 3-х байтный пакет "для компа" методом отсечения одного байта? И заодно, включать/отключать сей байт в состав пакета "на-лету", имитируя включение/отключение "колеса", например по некоей команде с самого компа или по некоей "магической" комбинации кликов мышиных кнопок.

Гость

Сообщение Гость » 06.07.2015,14:36

Rio444 писал(а):Настраивать нужно ОДИН раз для DOS
Э-эээ... Каждый раз при включении компа, как я понимаю?
Ибо если настройка делается вообще однократно (и запоминается во некоей флеш-памяти), то смысла в кнопке НЕТ никакого. Ни со стороны "юзабилити", ни со стороны "экономикса", ни со стороны "здравого смысла". Делается "магическая" комбинация для входа в сервис-меню и этого достаточно.

Тем паче, для КВМ-а таких настроек не существует, а для каждого управляемого КВМ-ом компа лепить свои настройки - бред.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 31307
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону
Благодарил (а): 46 раз
Поблагодарили: 120 раз

Вклад в сообщество

Сообщение Rio444 » 06.07.2015,15:20

Fe-Restorator писал(а):Э-эээ... Каждый раз при включении компа, как я понимаю?Ибо если настройка делается вообще однократно (и запоминается во некоей флеш-памяти)
Именно так. Только называется она EEPROM и уже имеется в составе микроконтроллера (в данном случае Atmega8).
Fe-Restorator писал(а):Внимание, правильный вопрос:Каким образом мышь "уведомит" комп об наличии у ней "колеса"?
В мышь отправляется некоторая последовательность команд (какая именно - в интернете полно статей на эту тему), которые включают колёсико. Потом запрашивается идентификация мыши, и если колёсико включилось (и имелось), мышь об этом сообщает.
По умолчанию колёсико отключено.
Fe-Restorator писал(а):Внимание, второй правильный вопрос:Каким образом перехватить "уведомление" мыши силами переходника?
См. выше.
Fe-Restorator писал(а):Внимание, третий правильный вопрос:Сумеет-ли переходник превращать 4-х байтный пакет "от мыши" в 3-х байтный пакет "для компа" методом отсечения одного байта?
Да.
Fe-Restorator писал(а):И заодно, включать/отключать сей байт в состав пакета "на-лету", имитируя включение/отключение "колеса"
Да.
Fe-Restorator писал(а):например по некоей команде с самого компа
Да. Но, кто будет эту команду подавать? Собственно, никаких команд не нужно. Нужна переинициализация драйвера мыши.
При загрузке драйвера, он отправляет запрос мыши, та сообщает, с колёсиком она или без. И дальше взаимодействие идёт по протоколу с колесом, либо по протоколу без колеса, до следующей перезагрузки компьютера/ОС/драйвера. Ни мышь, ни драйвер "на лету" протоколы не меняют.
Fe-Restorator писал(а):или по некоей "магической" комбинации кликов мышиных кнопок.
Нет. См. выше.

Вообще, вопрос пустой. Делайте свой вариант, как Вам нравится. Схемы, исходники есть. Свой исходник могу кинуть, но он пока в черновом варианте.





Электронка: Изображение копия Изображение

Гость

Сообщение Гость » 06.07.2015,17:00

Rio444 писал(а):Именно так.
Каждый раз при старте компа настраивать мышь?!?! Да ви ызвращэнэц... ;)
Rio444 писал(а):В мышь отправляется некоторая последовательность комманд ... Потом запрашивается
идентификация мыши, и если колёсико включилось (и имелось), мышь об этом сообщает.
Траффик проходит сквозь переходник, команды - унифицированы (иначе драйвер их не поймёт), перехватить и обработать их самой атмегой - несложно. Да, получится некий "мышь-логгер", но без сего - никак.
Rio444 писал(а):Да. Но, кто будет эту команду подавать? Собственно, никаких комманд не нужно. Нужна переинициализация драйвера мыши.
При загрузке драйвера, он отправляет запрос мыши, та сообщает, с колёсиком она или без. И дальше взаимодействие идёт по протоколу с колесом, либо по протоколу без колеса, до следующей перезагрузки компьютера/ОС/драйвера. Ни мышь, ни драйвер "на лету" протоколы не меняют.
См. выше. Добавлю: переходник так-же легко может добавлять байт в пакет, как и выдирать байт из пакета. Пусть мышь будет постоянно "с колесом", даже если физически без оного. Атмега добавит к пакету "нулевой" байт (точнее - с "нейтральным" паттерном, например 00h), и выдаст сие в комп.
Нужно будет "включить колесо" - атмеге даётся команда прекратить добавлять фиктивный байт, точнее - пропускать реальный, от мыши, без подмены фиктивным.

В любом случае, полчаса ползти под стол в объятья кабельного спрута-арахнид-мутанта, чтоб "тыкнуть кнопу" - не есмь удобство пользования девайсом. Ибо покуда высвободишься из-под стола (часов эдак через н-дцать, спрут не отпустит раньше), покуда поелозишь мышью, пройдёт время для настройки и атмега отключит сей режим по тайм-ауту. Придётся заново лезьть ко спруту в логово, токма не забыть прихватить бутыль коньяку: всё-равно чем-то надо заняться пока спрут держит...

Управление сервисным функционалом переходника можно организовать как со стороны компа (офисная работа, включая дос-проги), так и со стороны самой мыши (паттерн кликов), что применимо везде, включая игры. Бояться совпадения паттерна кликов игры с паттерном кликов сервис-меню не стоит, достаточно применить не самый простой паттерн для сервис-меню.
Rio444 писал(а):Вообще, вопрос пустой.
Не пустой. О вкусах не спорят, есть тысячи мнений... Однако довести хорошую разработку до фабричного уровня - вполне достижимая цель. Колхоз-поделка для сего не годится, а с хорошей вещью можно уже выходить на рынок: заказать кучу платок (хоть в том-ж ризоните), распаять и продавать переходники, хотя-бы на этом форуме, а то и на иных тематических площадках.

Прошу понять меня правильно и не относиться к замечаниям как к "пустому вопросу".

Гость

Сообщение Гость » 06.07.2015,17:25

Есть правило в проектировании электронных схем:
Если некий элемент схемы подключён к питанию и к "земле" менее чем через два других элемента, значит сей элемент для данной схемы - лишний!"

В твоей схеме лишние:
1) разъём "M. Wheel"
2) разъём "USBasp"
3) кнопка S1
4) элемент L2 (цепь: земля-L2-земля, для чего она нужна? какой ток по ней идёт? ;) )

Их НИКОГДА не будет на фабричном изделии, даже если под них разведены дороги и контактные площадки. Кстати, технологическим статусом обладает только разъём "USBasp", остальные - просто балласт.

Аватара пользователя
EJSanYo
Advanced Member
Сообщения: 423
Зарегистрирован: 27.12.2007,23:55

Вклад в сообщество

Сообщение EJSanYo » 06.07.2015,18:51

Rio444 писал(а):Кстати, Вы не пробовали масштабировать, т.е. менять чувствительность мыши, средствами самой мыши PS/2? В документах упоминается команда 0xE8 (Set Resolution) - "установить разрешение". Мышь эту команду "проглатывает", но ничего не меняется Какое бы разрешение ей не отправлял.
Где-то я кажется упоминал, но повторю ещё раз: да, в протоколе PS/2 изначально была заложена возможность изменения разрешения, и практика показала, что на старых мышах (в частности, шариковых) это работает. Но практика также показала, что разработчики новых чипов для PS/2 похоже стали халявить и не доделывать поддержку мало используемых команд. И команда изменения чувствительности как раз одна из таких. В частности, этим отличился "новодел" от Genius NetScroll 100. Именно по этой причине я перешёл на программное масштабирование контроллером.
Хорошо иметь DOOM-ик в деревне!

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 31307
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону
Благодарил (а): 46 раз
Поблагодарили: 120 раз

Вклад в сообщество

Сообщение Rio444 » 06.07.2015,21:17

EJSanYo писал(а):Где-то я кажется упоминал, но повторю ещё раз: да, в протоколе PS/2 изначально была заложена возможность изменения разрешения, и практика показала, что на старых мышах (в частности, шариковых) это работает. Но практика также показала, что разработчики новых чипов для PS/2 похоже стали халявить и не доделывать поддержку мало используемых команд. И команда изменения чувствительности как раз одна из таких. В частности, этим отличился "новодел" от Genius NetScroll 100. Именно по этой причине я перешёл на программное масштабирование контроллером.
Большое спасибо! :thumbup: :thumbup: :thumbup: А я мучился, думал, где ошибка. :biggrin:
Fe-Restorator писал(а):4) элемент L2 (цепь: земля-L2-земля, для чего она нужна? какой ток по ней идёт? )Их НИКОГДА не будет на фабричном изделии, даже если под них разведены дороги и контактные площадки.
Ваша самоуверенность восхищает. Ниже фрагмент типовой схемы материнки на 430VX. Дроссели, как и фильтрующие конденсаторы, можно ВООБЩЕ исключить. И это будет работать. Только чуть хуже, иногда сбоить. С некоторыми мышами чаще, с некоторыми реже.
Опытный образец делал по типовой схеме, "контактные площадки разведены". В "фабричном" изделии "лишние" элементы можно исключить.
Изображение
Fe-Restorator писал(а):Прошу понять меня правильно и не относиться к замечаниям как к "пустому вопросу".
По большому счёту, это всё "рюшечки", "свистелки" и "перделки", которые несложно переделать, допилить и т.п. И дело вкуса. У кого-то системник под столом, у кого-то на столе. Кто-то считает, что можно сделать уникальный паттерн. Кто-то, что, например, во время игры, можно случайно выполнить этот паттерн. Причем, в самый неподходящий момент.
Повторюсь, действительно важный вопрос - это отзывчивость мыши с переходником близкая к отзывчивости без него. Пока есть небольшой, но ощущаемый лаг.

Электронка: Изображение копия Изображение

Аватара пользователя
EJSanYo
Advanced Member
Сообщения: 423
Зарегистрирован: 27.12.2007,23:55

Вклад в сообщество

Сообщение EJSanYo » 06.07.2015,22:08

Rio444 можно лишь выжать максимум из COM-порта, но совсем так же мышь не сможет работать никогда. Не забывайте, что в протоколе M$ Mouse скорость принята на порядок ниже, чем в PS/2.
P.S. Ферритовые бобышки и керамику на материнки ставят в основном для того, чтобы пройти требования по ЭМС (у буржуев т.н. "FCC rules") на частотах от 80 МГц и выше. На собственную работоспособность таких медленных интерфейсов их наличие или отсутствие едва ли может оказывать влияние.
Хорошо иметь DOOM-ик в деревне!

Гость

Сообщение Гость » 07.07.2015,10:17

Rio444 писал(а):Ваша самоуверенность восхищает.
Ну и где ты узрел самоуверенность?
Читай цитату:
EJSanYo писал(а):Ферритовые бобышки и керамику на материнки ставят в основном для того, чтобы пройти требования по ЭМС (у буржуев т.н. "FCC rules") на частотах от 80 МГц и выше. На собственную работоспособность таких медленных интерфейсов их наличие или отсутствие едва ли может оказывать влияние.
Ещё в самом начале темы я настаивал на питании от самого порта, в крайнем случае, от порта клавы. Такую схему, возможно, на DC-DC преобразователе, и нужно поставить взамест удаляемых элементов.

Гость

Сообщение Гость » 07.07.2015,10:38

Rio444 писал(а):По большому счёту, это всё "рюшечки", "свистелки" и "перделки", которые несложно переделать, допилить и т.п. И дело вкуса.
Если уж действительно "по большому счёту", тогда: Покупать готовый аппарат, чтоб выдёргивать из него лишние кнопки (массогабаритные элементы), допиливать корпус, латать в ём дыры и переиначивать/собирать заново ПО - это БРЕД и мазохизм!
Именно сей подход и отличает колхоз-поделку от фабричного изделия. В фабричном продуманы и РЕАЛИЗОВАНЫ все методы работы с или все способы управления аппаратом.

Ответить