Skocz do zawartości

PS2_MOUSE część 1


kroszkanorber

Pomocna odpowiedź

MYSZ PS2 część 1

 

Polecenie ustawienia fabryczne dla myszy ps2 kod X”FF”

1 bajt jest wysyłany do myszy.

w 2 bajcie mysz potwierdza poprawny odbiór danych kodem X”FA”

image.thumb.png.f8bf47b4f341b9365fe7f7ba4bc294bb.png
 

po potwierdzeniu odbioru (ACK) występuje przerwa trwająca ok 403 m s, w tym momencie

mysz przeprowadza test automatyczny i kasuje wszystkie ustawienia swojego kontrolera.

 

po tej przerwie mysz wysyła kolejną 2 bajtową paczkę

w 1 bajcie wysyła potwierdzenie o pomyślnym przebiegu ustawień wewnętrznych do standardowych. X”AA”

w 2 bajcie numer identyfikacyjny urządzenia (wszystkie myszy ps2 odpowiadają w ten sam sposób)

image.thumb.png.2918f2f42db5a68139b10bc03085738c.png
 

gdy chcemy odebrać dane z myszy musimy wysłać do niej polecenie X”F4”

polecenie te odblokuje w kontrolerze myszy wysyłanie danych.

przypuszczam że dzieje się tak ponieważ podczas uruchomienia mogło by dojść do konfliktu między klawiaturą, a myszą w kontrolerze KBC.

Po poprawnym rozpoznaniu urządzeń KBC wie w jakich portach są wpięte i je po kolei inicjuje.

image.thumb.png.989869e2c7d1e5174890d5076185269b.png

Gdy chcemy zainicjować mysz intellimouse która działa po włączeniu jak standardowa mysz musimy użyć 6 bajtów kodu czyli F3, C8, F3, 64, F3, 50 .

Po każdym bajcie musimy czekać na potwierdzenie ACK.

Gdy mysz nie odczyta kudu poprawnie, można wysłać ostatni kod nie odczytany przez mysz poprawnie, jeszcze raz bez potarzania całej sekwencji.

Poprawną inicjację można sprawdzić kodem X"F2"

mysz odpowiada kodem 2 bajty X" FA" , X"00" mysz standardowa lub X"FA" , X"03" mysz intelimouse.

paczka danych z myszy standardowej

image.thumb.png.577fcfaf8b01c557f7873e468280844f.png

paczka danych z myszy intellimouse

image.thumb.png.cb744ee39816989c6cd290f47ef3947b.png
 

Mysz intellimouse wysyła dane w postaci 4 bajtów

pierwszy bajt informuje o stnie przycisków i flagach przepełnienia w osi x i y.

drugi i trzeci o kierunku ruchu myszy.

4 bajt informuje w którą stronę jest przekręcane kółko.

(W mojej myszy kod X”FF” lub X”01” zależnie od kierunku obrotu)

myszą standardowa ps2 wysyła dane w posztaci 3 bajtów ponieważ nie ma kółka.

 

Gdy podłączyłem mysz do układu CPLD użyłem konwertera napięć 3,3 na 5 V i w konsekwencji wystąpił brak komunikacji poi liniach ps2c i ps2d.

Rezystory podciągające nie pomagały i problem nadal występował.

 

Proponuję nie używać rezystorów pull up ponieważ są już wbudowane w urządzenia.

Generować sygnały na linii danych i zegara o poziomie 3,3 V jest w pełni akceptowalne

(logiczne 1 na poziomie TTL = 2,4V do 5 V)

 

Dodatkowe uwagi:

paczki 3 bajtowe wysyłane są w odstępach ok 7,3 mili sek.

odstępy między pojedynczymi bajtami ok 120 mikro sek.

sygnał zegara pełna perioda ok 80 mikro sekund ( w stanie wysokim ok 40 mikro sekund)

kod potwierdzający odbiór danych przez mysz = X"FC" oznacza błąd w odczycie, = X"FA" odczyt poprawny

 

polecam zapoznanie się z notą katalogową układu

image.thumb.png.b9730e8c5866647625c09de0b5d9a846.png

Kody VHDL do obsługi myszy w części 2

  • Lubię! 2
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.