Poszukuję opisu protokołu ST-Mouse (Przy okazji Amiga-Muse też). Jest teoretycznie sporo tego na atari-forum, ale wszystko trafia w niedziałające linki na aol, geocities itd.
https://github.com/willyvmm/mouSTer
jmp $e477
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Nowa obudowa dla 800XL - zostało 36 dni Niewiele ponad miesiąc do końca kampanii.
Zmarł twórca języka BASIC Zmarł Thomas E. Kurtz twórca języka BASIC
Zmiana serwera atari.area Serwis przeszedł właśnie ważną aktualizację infrastruktury
4th Atari ASCII Compo - wyniki Dostępne są już wyniki tegorocznego ATASCII Compo.
thing neo 1.60 Olivier Landemarre wydał nową wersję desktopu Thing.
atari.area forum » Sprzęt - 16/32bit » Protokoł ST-mouse
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Poszukuję opisu protokołu ST-Mouse (Przy okazji Amiga-Muse też). Jest teoretycznie sporo tego na atari-forum, ale wszystko trafia w niedziałające linki na aol, geocities itd.
Hej!
Tam nie ma żadnego protokołu, na piny są wystawione sygnały z czterech fototranzystorów. dwa dla osi X, dwa dla osi Y. Typowy koder kwadraturowy (Quadrature Encoder), aby sobie to zdekodować możesz użyć albo software-owego dekodera albo zaimplementować to w sprzęcie. Wszelakie programy na 8-bit Atari jeżeli korzystają z myszy Amiga/Atari ST to próbkują stan pinów PIA (Joy Port) minimum kilka razy na ramkę (im częściej tym szybsze ruchy myszka można "wyczaić" :] ).
http://www.fpga4fun.com/QuadratureDecoder.html
Myszy od Atari ST różnią się tylko zamianą kilku sygnałów.
Nie chcę tego dekodować tylko kodować :D
Dziękuję.
Willy, ja to mam gdzieś szczegółowo opisane - poszukam i dam znać.
Hej!
To jak chcesz generować te sygnały to jest to jeszcze łatwiejsze :)
Enkoder kwadraturowy mówi samo za siebie :D
Jeszcze jedno, jak często np Atari ST próbkuje port ? (zdaje się że wszystkie robią to tak samo często)
Chodzi jak często można sygnał zmieniać aby Atari nie gubiło kroków?
Jeżeli dobrze pamiętam to obsługą myszy/joyów i klawiatury w Atari ST zajmuje się MCU (bodajże HD6301), po czym już obrobione dane wysyła UART-em dalej (chyba w ST odbiera to ACIA 6850). Z jaką częstotliwością analizuje sygnał HD6301, ja niestety nie mam pojęcia ;/ jedyne co pamiętam to to iż dane wysyła/odbiera z prędkością 7812,5bps.
Jedyne co znalazłem sensownego to ten opis:
https://www.kernel.org/doc/Documentatio … arikbd.txt
a tam piszą:
4. Mouse
The mouse port should be capable of supporting a mouse with resolution of
approximately 200 counts (phase changes or 'clicks') per inch of travel. The
mouse should be scanned at a rate that will permit accurate tracking at
velocities up to 10 inches per second.
The ikbd can report mouse motion in three distinctly different ways. It can
report relative motion, absolute motion in a coordinate system maintained
within the ikbd, or by converting mouse motion into keyboard cursor control
key equivalents.
The mouse buttons can be treated as part of the mouse or as additional
keyboard keys.
O i tu jest wszystko napisane:
200 imp na cal, 10 cali na sekunde - czyli 2000 imp na sekunde - reszta to już kwestia dobrania parametrów. Ale to po wakacjach :)
no dlatego pozwoleniem sobie wkleić linka do opisu ikbd :) tyle że ja nie weryfikowałem tego w praktyce i nie wiem czy to jest prawda ;)
Trochę zbaczając z tematu co całkiem sporo zmieścili w tym 6301 :) 4k ROM i 128bajtów RAM, a protokół sobie rozbudowali całkiem pokaźnie :) stare dobre czasy :]
W każdym razie jest to jakiś punkt zaczepienia.
Willy, znalazłem to o czym mówiłem, wprawdzie jest to o myszy amigowej, ale działają one identycznie, jedyna różnica to zamienione miejscami dwa sygnały we wtyku (Yb i Xb z tego co pamiętam)
Amiga Mouse
The Amiga supplied mouse is rather simple as mice go. It provides the
basic XY quadrature signals and lets the Amiga figure it out from there.
This is actually a good thing, as it lets us use other devices by simply
removing any back end processing or signal massaging circuits to get back
to the raw XY signals.
Basically, the Amiga mouse has two rollers that touch the mouse ball in
the X and Y direction. As the ball rotates in the X (right <-> left)
direction, X roller shaft spins. If the ball rotates in the Y (up down)
direction, the Y roller shaft spins. Any combination of XY direction, and
the roller shafts spin a proportionate amount in the X and Y directions.
Each shaft is connected at the end to a slotted disk. Each disk has a
LED emitter/ detector pair that "reads" the slots as they spin by, creating
a logic pulse for each slot seen.
Notice that there are two detectors for the X disk and two for the Y
disk. Each pair are mounted physically 180 degrees apart on the slotted
disk. The odd number of slots appear to be cut into each disk, so that it
is impossible for the pair of logic pulses to occur exactly at the same
time. This is how the mouse can signal the direction that the mouse is
moving.
For example, lets look at just the X slotted disk/detector pair. Lets
call the two output signals Xa and Xb. If the mouse is moving to the
right, the signals would look like this;
____ _______ _______
Xa | | | | |
|_______| |________| |________
____ _______ _______
Xb | | | | |
|_______| |________| |________
The graphics are terrible, but you get the picture. If the mouse is
moving in the opposite direction, then Xb would go low first, followed by
Xa.
The same thing happens for the Ya and Yb pair. In fact, you can treat
the Y pair as up down equivalent to the X pair.
Each of the four detector signals (x pair, y pair) is conditioned by a
LM339 Quad Voltage Comparator IC. The LM339 basically shapes up the
signals before being sent to the Amiga. Each of the four comparators is
used, one for each of the detector signals.
The 10K, 2.7K resistor divider sets a trip voltage of around 1.0 volts
for the comparator. This is important since the detector puts out around
.5V for a low pulse. The resistor divider is also shared by all four
comparators in the LM339.
The two mouse buttons are simply switches to ground. When you press one
of the buttons, it grounds a DB9 pin. The corresponding pull-up resistors
must be inside the Amiga.
The mouse cord terminates inside the mouse in a connector marked CN-1.
Below is the pinouts for the mouse cord.
DB9 CN-1 Function
-------------------------------------
6 1 Left Button
9 6 Right Button
8 9 Signal Ground
7 8 Vcc (+5 Volts)
3 5 Ya
1 2 Yb
2 3 Xa
4 4 Xb
5 7 No Connect
Shield Drain Wire Ground
Zeby nie zakladac nowego tematu,
Szukam schematu klawiatury do ST (Falcona). To co znalazem to jakies nieczytelne skany...
Mam problem z zasilaniem z portu myszy, i nie wiem czy to wina slabego styku czy cos ogranicza na klawiaturze.
Znalazłem taki, chyba dość czytelny.
Oto chodzilo.
Dziekuje.
Znaczy ze cos z polaczeniem jest nie tak, bo nie widze tam nic co by prad ograniczalo. ;)
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
atari.area forum » Sprzęt - 16/32bit » Protokoł ST-mouse
Wygenerowano w 0.018 sekund, wykonano 58 zapytań