реклама на сайте
подробности

 
 
> STM32F4 и PS/2 мышь
hd44780
сообщение Feb 24 2014, 19:13
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Сейчас пользуюсь драйвером немца - http://mikrocontroller.bplaced.net/word ... age_id=744
Один "странный" косяк я исправил - если мышь не понимает команду 0xF2 (идентификация мыши) он тупо вываливается с ошибкой, хотя весь дальнейший алгоритм прекрасно понимает оба типа мыши (стандартная и Intellimouse).

Но обнаружилась странная вещь - на старых мышах он работает, а на большинстве новых - нет.
Есть 2 мыши Logitech RX250, одна белая, 2-я чёрная. Белая работает достаточно стабильно, хоть и не без приколов, Чёрная - труп трупом. Кроме фэн-шуя в голову ничего не приходит..
Уже 3 дня читаю разные мануалы, примеры кода под авры и прочее - по фиг. Если надо, дам все ссылки и свой код.
Всё чего удалось добиться - команды нормально передаются в мышь. На драйвере немца мышь вообще не генерит синхронизацию. Он вначале притягивает к земле только данные, а синхру - нет.

Дальше странности - многие команды дают либо код ошибки 0xFC, либо какой-то недокументированный код - 0xF8.
Даже команда сброса 0xFF корректно отрабатывает только один раз, в ответ на все остальные летит некий бред типа 0xF8.

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

Спасибо.

PS. Все мыши рабочие. Проверены в компе.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Feb 25 2014, 07:26
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Работал с мышами когда-то очень давно, все забыл.
Цитата(hd44780 @ Feb 24 2014, 21:13) *
либо код ошибки 0xFC, либо какой-то недокументированный код - 0xF8.

Код 0xF8 очень похож на 0xFC сдвинутый на один бит влево. Возможно какая-то проблема в синхронизации? Не по тому фронту читаете? Дребезг на фронтах захватываете? В общем я бы вывел принимаемый бит на свободную ногу порта, зарядил в цикле команду сброса и осциллографом сравнивал все три сигнала (такт, данные и принятые данные) с учебником.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
hd44780
сообщение Feb 25 2014, 08:18
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(Сергей Борщ @ Feb 25 2014, 09:26) *
Код 0xF8 очень похож на 0xFC сдвинутый на один бит влево. Возможно какая-то проблема в синхронизации? Не по тому фронту читаете? Дребезг на фронтах захватываете? В общем я бы вывел принимаемый бит на свободную ногу порта, зарядил в цикле команду сброса и осциллографом сравнивал все три сигнала (такт, данные и принятые данные) с учебником.


Прерывание одно и то же, программа одна и та же.

CODE
// 0xFF - Сброс - 3 раза
st = P_PS2_Mouse_Send ( PS2_MOUSE_CMD_RESET );
P_PS2_Mouse_Timeout_RX ( 50000 ); // checks PS2_MOUSE_VAR.receive_code
P_PS2_Mouse_Timeout_RX ( 50000 );
P_PS2_Mouse_Timeout_RX ( 50000 );

st = P_PS2_Mouse_Send ( PS2_MOUSE_CMD_RESET );
P_PS2_Mouse_Timeout_RX ( 50000 );
P_PS2_Mouse_Timeout_RX ( 50000 );
P_PS2_Mouse_Timeout_RX ( 50000 );

st = P_PS2_Mouse_Send ( PS2_MOUSE_CMD_RESET );
P_PS2_Mouse_Timeout_RX ( 50000 );
P_PS2_Mouse_Timeout_RX ( 50000 );
P_PS2_Mouse_Timeout_RX ( 50000 );


PS2_MOUSE_VAR.receive_code - принятый из мыши байт. Первый раз там 0xFA - это правильно. 2 и 3-й - бред.
Проверю, может где-то у немца какие-то флажки не сбрасываются ...
Кстати, проверил его оригинальный драйвер на работающей мыше - инициализация проходит только один раз.
Далее лезет тот самый 0xF8.

Цитата(megajohn @ Feb 25 2014, 10:10) *
в порядке бреда предложу посмотреть частоту синхроимпульса при работе от компа.


Можно .. Когда исчерпаю другие варианты - проверю ..
Придётся спаять некий "переходник" для доступа к контактам.

А кстати, DATA и CLK подтягивать резюками к +5в надо?
У меня сейчас не подтянуто. Идут непосредственно на процессор.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 25 2014, 08:33
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(hd44780 @ Feb 25 2014, 10:18) *
Кстати, проверил его оригинальный драйвер на работающей мыше - инициализация проходит только один раз.
Далее лезет тот самый 0xF8.
Значит в этом драйвере ошибка. Надо разобраться как работает интерфейс и найти ее. Возможно на этапе изучения описания интерфейса отпадет вопрос "нужны ли подтяжки".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- hd44780   STM32F4 и PS/2 мышь   Feb 24 2014, 19:13
- - megajohn   нынче все PS2-мыши это совмещенные с USB. То есть ...   Feb 24 2014, 19:51
- - hd44780   Не скажите. Я пытался подключать 2 свои USB мыши к...   Feb 25 2014, 05:12
- - Golikov A.   не к усб надо подключать, а с мышой договорится чт...   Feb 25 2014, 07:16
|- - hd44780   Цитата(Golikov A. @ Feb 25 2014, 09:16) н...   Feb 25 2014, 08:07
|- - megajohn   Цитата(hd44780 @ Feb 25 2014, 12:07) Я пы...   Feb 25 2014, 08:10
|- - megajohn   Цитата(hd44780 @ Feb 25 2014, 12:18) А кс...   Feb 25 2014, 08:42
|- - hd44780   Цитата(megajohn @ Feb 25 2014, 10:42) ADD...   Feb 25 2014, 12:44
- - hd44780   Pull-upы в +5в не помогли Придётся колупаться в п...   Feb 26 2014, 05:14
- - hd44780   На 95% работает. Инициализация всех мышей проходит...   Feb 28 2014, 08:18
- - Сергей Борщ   Не, ну так не честно... Проблема-то в чем была?   Feb 28 2014, 08:57
- - hd44780   Да в принципе всё просто. Основной баг немца -для ...   Feb 28 2014, 09:21


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 03:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.02025 секунд с 7
ELECTRONIX ©2004-2016