Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Технический флейм »   Мышиный Антиконвертер
RSS

Мышиный Антиконвертер

Самопалка на тему COM -> USB или PS/2. Тренируемся на переходниках!

<<Назад  Вперед>> Страницы: 1 * 2
Печать
 
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Anonymous не исключено, что у вас мыши с протоколом "PC Mouse". Они как раз при активации ничего не выдают в порт. В таком случае, с той прошивкой, что сейчас, мой переход также работать не стал бы, поскольку программировался на протокол "MS Mouse". :rolleyes: С прошивкой, доработанной в части декодирования протокола мыши, наверно заработал бы.
Однако дело может обстоять и иначе - что ваши мыши вообще сделаны не под COM порт, а под специальную плату расширения. Как раз такую-то мышь и возможно было сделать на простейшей рассыпухе, не привлекая программируемую логику. Очевидно, с таким интерфейсом COM порт не работает. И моё поделие, очевидно, также работать не будет. Однако и в этом случае, если вы нагуглите истинное назначение контактов вашего разъёма, то скорректировав аппаратную и программную часть моего перехода, вполне смогли бы его приспособить для своих задач.
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
Я же написал, что под дос и *никс они прекрасно работают, там com-порт реализаован на 1002хл1 и в более старых на 564ир6. Прекрасно работают и с графическими станциями NCD, которые гениусами комплектовались при продаже. Протокол, естественно, pcmouse.
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Anonymous почитал даташит на эту самую ХЛ...и правда, ну просто очень железный чип! Каждую команду и состояние вывели на выделенные ноги. :biggrin:
Так что можете попробовать вариант №1. Будут вопросы - спрашивайте. Сразу обратите внимание на периодический сброс буфера пакета мыши по таймеру.
А может и я в процессе тоже попробую, спортивного интереса ради. Пара мышей, якобы умеющих "PC Mouse", у меня есть. Хоть и не настолько винтажных, чтобы совсем на рассыпухе.
P.S. Кстати, если не секрет, что это за модели у вас такие мышей? Неужели советские?
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
Да, с подводных лодок списанные. Хотя, много куда ставились у вояк.
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
В процессе реставрации одного своего COM мыша с забавным названием "AK-77" (именно его немного видно на фото) сделал забавное наблюдение:

При вскрытии обнаружилось, что выполнен он на основе чипа EM83701. Так вот, оказалось, что если ноги 1 и 16 чипа замкнуть перемычкой, то мышь входит в режим т.н. "динамического разрешения". Меняет свою чувствительность в зависимости от скорости перемещения. Как результат - мышь двигается гораздо быстрее и отзывчивее, в чём-то даже приближаясь к своим PS/2 сородичам! Или как минимум, гораздо лучше, чем было. Забавно, что именно об этом кричали надписи на коробке (да, у меня сохранилась родная коробка от неё), да только до моего вмешательства эта фича не была активирована. Китайцы сами поставить перемычку не догадались. Видимо, невнимательно читали даташит. :08:

Вывод: таким образом, настоящим гуртовщикам мыши настоятельно рекомендуется знать элементную базу своих манипуляторов. Как знать, может и в вашей мыши таится ещё не раскрытый потенциал!
Оффтопик: Оффтопик: Anonymous ё моё, люди, где вы умудряетесь такое доставать?! :biggrin: Я в шоке.
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Обновление прошивки!
Добавил поддержку протокола PC Mouse. Теперь если после подачи питания переходник некоторое время не получает байта, идентифицирующего майкрософтовский протокол (символ "M"), он решает, что к нему подключена PC Mouse. Кроме того, прикрутил немного модифицированный бут-загрузчик, чтобы каждый раз не лезть в стол за программатором. :rolleyes:

Ряд замечаний по поводу PC Mouse
Хмм, как оказалось, все мыши под COM, что у меня есть, его поддерживают! Даже те, у которых на пузе нет соответствующего рубильника. В таких мышах чтобы активировать второй протокол надо в аккурат перед подачей питания зажать любую из кнопок. В случае моего переходника это означает "перед подачей питания на переходник". В случае прямого соединения с компом - "перед загрузкой драйвера мыши". После сброса питания мышь переходит снова в M$ режим. Так что я там ранее говорил про разнообразные "скрытые возможности" в мышах?

Впечатления от дополнительного режима
Как и ожидалось, поскольку теперь в пакете передаётся не три, а уже пять байт, причём на всё той же скорости 1200 бит/с, двигаться мышь стала более грубо и дёргано. Но за счёт "двойной" передачи координат за одну посылку, максимальное ускорение, с которым можно дёрнуть мышь, стало явно больше. Что лучше, честно говоря, затрудняюсь ответить. В играх, возможно, подобная медлительность на пользу бы не пошла. Третья кнопка активирует "прокрутку мышью" в современных браузерах и многих программах. Однако полноценное колёсико она, само собой, заменить не может.
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Почти месяц уже пытался перевести наконец алгоритм PS/2 функции на "аппаратную основу". Т.е. заменить программные задержки на работу по прерываниям таймера, что значительно разгрузило бы ядро контроллера. И...о б-же мой! :mad: И хоть тов. dtvims как бы уже предупреждал, всё равно, я даже предположить не мог, насколько же индивидуальны и придирчивы до мелочей PS/2 контроллеры на различных матерях. Если им при инициализации мыши хоть что-то не понравилось, они тупо затыкаются и сообщают, что мыши нет. Даже ни разу не пытаясь перезапустить. При том, что отладка интерфейса крайне затруднена из-за изолированности интерфейса от основной системы компьютра. Драйвер мыши просто получает от контроллера признак, есть мышь, или нет. В этом плане у меня особо выделилась интеловская DH55TC с "комбинированным" портом PS/2. В который она при работе периодически шлёт какую-то полную чушь, типа импульсов DATA=0, при этом не меняя состояние CLK. При определённых настройках времянки импульсов мыши эта мать вообще наглухо зависает на старте! :eek: Пока не оторвёшь переходник. Но при этом любая "живая" PS/2 мышь работает чётко и на любой материнке. ЧЯДНТ, в конце концов?
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Небольшое обновление прошивки!
Так что пока доделал хотя бы "программную" реализацию алгоритма. А то совсем затихло у меня как-то всё. И хоть кое-что до сих пор остаётся неясным, v.0.9 теперь чётко определяется и работает на всех моих материнских платах. На той самой DH55TC в том числе. Справедливости ради отмечу, что те немногие проекты эмуляции PS/2 периферии, что удалось найти в Интернетах, были все также сделаны на программых задержках. И даже прошивка для контроллеров Cypress, на которых работают одни из лучших мышей с PS/2, похоже, также работает чисто с программным опросом (характерная процедура mouse_poll(), вызываемая в основном цикле прошивки).
Fe-Restorator
Гость

Ссылка

EJSanYo, может быть, аппаратные прерывания попадают не в такт с передачей данных в PS2... Чуть торопятся или опаздывают, попадая на 3/4 такта шины PS2... И отрегулировать сие трудно, ибо сами задержки имеют переменную длину, по времени...
или рассинхрон берётся оттого, что прерывание контроллером обрабатывается быстрее, чем завершится такт PS2 шины...

Экскузьми, глубоко не рыл сию тему.
Сейчас на форуме
Rio444
Гость


Откуда: Ростов-на-Дону
Всего сообщений: 8632
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 сен. 2014
EJSanYo, большое спасибо, что занимаетесь этим вопросом! Думаю, не я один слежу за темой. Пока сих пор глубоко не копал, поэтому комментировать нечего. Только пытаюсь понять Ваши идеи :)
<<Назад  Вперед>> Страницы: 1 * 2
Печать
Полигон-2 »   Технический флейм »   Мышиный Антиконвертер
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS