Dlaczego mysz potrzebuje kryształu?

22

Patrzyłem na ten schemat dla starej myszy (przed USB):

enter image description here

kiedy zauważyłem, że ma kryształ (Y1). Byłem ciekawy, dlaczego mysz potrzebuje timera? Czy nie byłby w stanie korzystać z zegara z komputera? Również jeśli ma swój własny kryształ, czy nie mógł się zsynchronizować z zegarem procesora?

Tyler H.
źródło
1
Skąd masz ten schemat? Występują pewne błędy: np. Biegunowość fotodiod jest odwrócona.
Twaróg
1
@curd schemat przyszedł stąd: commodore.ca/manuals/funet/cbm/schematics/misc/index.html
Tyler H
7
Może „kryształ” jest w rzeczywistości tylko ceramicznym rezonatorem. BTW: Dlaczego oczekujesz, że mysz nie generuje zegara? Jest nawet prawdopodobne, że wewnątrz komputera znajduje się kilka obwodów, może nawet na płycie głównej, które mają własną generację zegara (oscylatory kwarcowe).
Twaróg
4
Jak mówi odpowiedź @OlinLathrop, MCU myszy nie próbuje zsynchronizować się z mikroprocesorem systemu hosta (MCU). Mysz MCU chce po prostu zsynchronizować się z portem komunikacyjnym, czy to USB, RS232C, czy czymkolwiek innym.
TonyM
5
Z twojego łącza wynika, że ​​ta mysz miała na celu sfałszowanie joysticka. Jeśli interfejs joysticka nie został zaprojektowany w taki sposób, aby zawierał sygnał zegara, oznacza to, że mysz nie ma dostępnego sygnału zegara.
Photon

Odpowiedzi:

25

Ta rzecz z MOS 5717 jest najprawdopodobniej mikrokontrolerem lub częścią wykonującą kod. Do uruchomienia potrzebny jest zegar.

Jednak tylko zegar dla mikro nie potrzebuje dokładności kryształu. To prawdopodobnie do komunikacji. USB wymaga dość dokładnego zegara.

Mysz nie musi śledzić w czasie rzeczywistym i nie ma powodu, aby była zsynchronizowana z zegarem procesora. Zegar USB musi być wystarczająco blisko zegara USB hosta, aby komunikacja działała. Czas na temat tego, jak szybko występują zdarzenia myszy lub czas między zdarzeniami myszy jest obsługiwany na hoście. Mysz po prostu wysyła informacje o tym, co się dzieje.

Dodany

Powyższe zostało napisane w odpowiedzi na oryginalne pytanie, w którym nie wspomniano, że ta mysz nie jest USB. Ponieważ prawie wszystkie nowe myszy były USB od dekady lub dłużej, rozsądnie było odpowiedzieć w tym kontekście. Kiedy pytasz o coś niezwykłego, jest to twoje obowiązek uczynić to jasne.

Pomimo braku USB, ta mysz wciąż miała procesor, który wymagał taktowania. Najwyraźniej wykorzystał także pomiar czasu do pomiaru pozycji puli podłączonych do joysticka, o czym OP jeszcze nie wspomniał. Wydaje się teraz, że komentarz supercat jest najbardziej odpowiedni, więc kopiuję go do odpowiedzi:

Commodore 64 ma wejścia potencjometryczne, które mierzą czas potrzebny do naładowania stałych kondensatorów poprzez zmienne rezystancje. Oprogramowanie oczekuje, że mysz odczyta jako wartość rezystancji w zakresie 0–255 i że owinie czysto 254, 255, 0, 1 itd., Co oznacza, że ​​mysz musi dokładnie taktować impulsy wyjściowe z dokładnością poniżej 0,4 %
Olin Lathrop
źródło
1
@ user2417339 Ponieważ zegar procesora nie jest wystarczająco dokładny. Kryształ zapewnia tę brak dokładności systemowi
M.Ferru
9
Chodzi o to, że w przypadku USB oba końce muszą mieć odpowiednio dokładny zegar. Mysz potrzebuje kryształu, aby USB działał. Dlaczego nie skorzystać z zegara z komputera hosta? Krótka odpowiedź brzmi: USB nie daje urządzeniu kopii zegara hosta. Dlaczego nie jest to trochę skomplikowane - wiele różnych rzeczy było wymienianych między sobą, gdy zapisywano specyfikację USB, i to straciło.
Jack B
2
Downvoter, proszę wyjaśnij, co uważasz za złe.
Olin Lathrop
3
@OlinLathrop: Commodore 64 ma wejścia potencjometru, które mierzą czas wymagany do naładowania stałych kondensatorów poprzez zmienne rezystancje. Oprogramowanie oczekuje, że mysz odczyta jako wartość rezystancji w zakresie 0–255 i że owinie czysto 254, 255, 0, 1 itd., Co oznacza, że ​​mysz musi dokładnie taktować impulsy wyjściowe z dokładnością poniżej 0,4 %
supercat
2
@Jerry: Większość z nich to tylko przewody, a jedyną informacją jest kolor izolacji. Doszedłem do wniosku, że dwie z nich to linie USB D + i D-, a inne to przyciski myszy, może wskaźniki LED lub cokolwiek innego wymyślnego rzeczy, które ta mysz mogłaby robić poza zwykłą myszą.
Olin Lathrop
21

MOS 5717 ma sporo samodzielnej pracy, aby stworzyć funkcjonalność myszy z zestawu koderów optycznych.

Opis z arkusza danych podaje, że najlepiej, ponieważ

5717 to niestandardowy kontroler myszy CMOS dla Commodore 64. Zostanie umieszczony w korpusie myszy z dwoma przyciskami, umożliwiając podłączenie do portu joysticka 64 i zapewnienie sterowania myszą oprogramowaniem GEOS itp. Osiąga funkcję myszy poprzez uziemienie linii POTX i POTY układu SID w różnych momentach w cyklu SID 512uS, aby zapewnić 64 informacje o położeniu.

Zanim ADC mogły swobodnie dodać do dowolnego układu scalonego, interfejs SID wykorzystał czas ładowania / rozładowania utworzony za pomocą potencjometru i kondensatora integracji wejściowej do oszacowania wartości „potencjometru”. 5717 emuluje potencjometr z wyjściami cyfrowymi, kontrolując taktowanie sygnału na liniach POT.

sstobbe
źródło
3
Na wszelki wypadek umieść arkusz danych w maszynie wycofania. web.archive.org/web/99991232235959/http://…
Oskar Skog
4

Obecnie taki oscylator można zobaczyć w wielu urządzeniach elektronicznych. Mikrokontroler wykonuje operację przy każdym tiku. Aby kontrolować i zrozumieć, co robi µC, potrzebujesz dokładnego zegara. Większość µC ma wbudowany zegar, ale nie jest bardzo dokładny .

Jak powiedział @Olin Lathrop, ten dokładny zegar jest ostatecznie potrzebny do protokołu USB lub do okresowego wykonywania niektórych pomiarów ...

M. Ferru
źródło
3

Inne odpowiedzi dotyczyły tego, do czego mikro wewnątrz myszy potrzebuje zegara. Nie obejmowały jednak najważniejszych części pytania:

Czy nie byłby w stanie korzystać z zegara z komputera?

Pierwszą rzeczą, na którą należy zwrócić uwagę, jest to, że komputer nie podaje zegara. Jeśli nie ma jednego do użycia, nie można go użyć. Oczywiście, chyba że chcesz skonfigurować niestandardowe złącze - ale musisz przekonać wszystkich potencjalnych klientów, aby ręcznie zmodyfikowali swoje komputery. O ile twoi klienci nie są ekstremalnymi ekspertami w dziedzinie elektroniki, nie będzie to udana strategia biznesowa!

Ważniejsze jest jednak pytanie, dlaczegokomputer nie daje mu zegara. Aby zegar był wystarczająco szybki, aby uruchomić mikro w myszy, musi być dość szybki - kilkaset kHz to absolutne minimum, a normalnie jesteś na częstotliwości nawet dla bardzo starych mikr. 5717 najwyraźniej oczekiwał zegara 4MHz. Problem polega na tym, że jeśli nie jesteś bardzo ostrożny z konstrukcją kabla, pozyskiwaniem i opadaniem sygnału oraz wszystkimi powiązanymi interesującymi aspektami szybkich połączeń cyfrowych, to, co tworzysz po podłączeniu kabla 4 MHz, to nadajnik radiowy. Jest to absolutnie możliwe, aby zrobić to dobrze bez transmisji na cały świat - USB, DVI i HDMI potrafią wysyłać dane cyfrowe z dużą szybkością - ale w żadnym wypadku nie jest to proste. Dlatego ludzie na ogół nie wysyłają zegarów długimi kablami, chyba że mają ku temu dobry powód.

Również jeśli ma własny kryształ, czy nie mógł się zsynchronizować z zegarem procesora?

Masz całkowitą rację, że jeśli mysz wytwarza dane, które procesor musi odczytywać synchronicznie z zegarem, to mysz będzie potrzebować zegara procesora. (Właściwie możesz sobie poradzić z wolniejszym zegarem synchronicznym i pomnożyć go na drugim końcu, ale na razie zapomnijmy o tym dla uproszczenia.) Tak więc, prawda?

Ponownie, patrząc na system, odpowiedź brzmi wyraźnie „nie”. 5717 zmienia swój opór, gdy użytkownik porusza myszą. Użytkownik nie będzie poruszał myszą tak szybko, a użytkownik może poruszać myszą, kiedy tylko zechce, więc nie ma wymogu synchronizacji zegara. W najgorszym przypadku opór zmienia się podczas odczytu przez procesor, a procesor albo otrzymuje niższą, albo wyższą wartość. Następnym razem opór pozostanie stabilny, a procesor uzyska ostateczną wartość. Ponieważ mysz porusza się tylko z prędkością ręki użytkownika, nikt nie dba o jedną próbkę mniej więcej tak, aby uzyskać końcową wartość.

Aby odpowiedzieć na pytania w odwrotnej kolejności:

  • Nie ma znaczenia, czy nie jest zsynchronizowany z zegarem procesora.
  • Istnieją dobre techniczne powody, aby nie wysyłać zegara procesora w dół, chyba że jest to absolutnie konieczne, aw tym przypadku tak nie jest.
Graham
źródło
Nawet w przypadku nowoczesnych interfejsów zaleca się odsunięcie cyfrowej elektroniki od urządzeń RF . (W tym konkretnym przypadku, zachowując pewną separację między hubem USB a amatorskim transceiverem radiowym.)
CVn