Warum braucht eine Maus einen Kristall?

22

Ich habe in diesem Schema nach einer alten (Pre-USB) Maus gesucht:

Bildbeschreibung hier eingeben

als ich bemerkte, dass ein Kristall darauf war (Y1). Ich war neugierig, warum eine Maus einen Timer brauchen würde? Wäre es nicht möglich, die Uhr vom Computer aus zu benutzen? Auch wenn es einen eigenen Kristall hat, kann es nicht mit der CPU-Uhr nicht synchronisiert werden?

Tyler H
quelle
1
Woher hast du diesen Schaltplan? Es gibt einige Fehler: zB ist die Polarität der Fotodioden vertauscht.
Curd
1
@curd die schematische kam von hier: commodore.ca/manuals/funet/cbm/schematics/misc/index.html
Tyler H
7
Vielleicht ist der "Kristall" in Wirklichkeit nur ein Keramikresonator. BTW: Warum erwarten Sie, dass sich in einer Maus keine Taktgenerierung befindet? Es ist sogar wahrscheinlich, dass sich im Computer mehrere Sub-Schaltkreise befinden, möglicherweise sogar auf der Hauptplatine, die über eine eigene Taktgenerierung (Quarzoszillatoren) verfügen.
Curd
4
Wie die Antwort von @OlinLathrop besagt, versucht die Maus-MCU nicht, mit dem Mikroprozessor (MCU) des Host-Systems synchron zu sein. Die Maus-MCU möchte nur mit dem Kommunikationsport synchronisiert sein, sei es USB, RS232C oder irgendetwas anderes.
TonyM
5
Aus Ihrem Link geht hervor, dass diese Maus dazu gedacht war, einen Joystick zu fälschen. Wenn die Joystick-Schnittstelle nicht für ein Taktsignal ausgelegt ist, steht der Maus kein Taktsignal zur Verfügung.
Das Photon

Antworten:

25

Das MOS 5717-Ding ist höchstwahrscheinlich ein Mikrocontroller oder ein Teil, der Code ausführt. Es braucht eine Uhr, um zu laufen.

Nur eine Uhr für ein Mikro benötigt jedoch keine Kristallgenauigkeit. Das ist wahrscheinlich für die Kommunikation. USB erfordert eine recht genaue Uhr.

Eine Maus muss keine Echtzeit verfolgen, und es gibt keinen Grund dafür, dass sie mit der CPU-Uhr synchronisiert ist. Die USB-Uhr darf nur so nah an der USB-Uhr des Hosts sein, dass die Kommunikation funktioniert. Das Timing für das Auftreten von Mausereignissen oder die Zeit zwischen Mausereignissen wird auf dem Host verarbeitet. Die Maus sendet nur Informationen darüber, was sie spürt.

Hinzugefügt

Das Obige wurde als Antwort auf die ursprüngliche Frage geschrieben, in der nicht erwähnt wurde, dass es sich bei dieser Maus nicht um USB handelt. Da so ziemlich alle neuen Mäuse seit einem Jahrzehnt oder länger USB-fähig sind, war es vernünftig, in diesem Zusammenhang zu antworten. Wenn Sie nach etwas Ungewöhnlichem fragen, liegt es in Ihrer Verantwortung, dies deutlich zu machen.

Obwohl diese Maus keinen USB-Anschluss besaß, verfügte sie über einen Prozessor, der getaktet werden musste. Anscheinend wurde auch das Timing verwendet, um die Positionen der an einen Joystick angeschlossenen Töpfe zu messen, was das OP nicht erwähnte. Es scheint jetzt, dass ein Kommentar von supercat am relevantesten ist, also kopiere ich ihn in die Antwort:

Der Commodore 64 verfügt über Potentiometereingänge, die die Zeit messen, die zum Laden fester Kondensatoren über variable Widerstände erforderlich ist. Die Software erwartet, dass eine Maus einen Widerstandswert im Bereich von 0 bis 255 anzeigt und sauber umhüllt (254, 255, 0, 1 usw.), was bedeutet, dass die Maus ihre Ausgangsimpulse auf weniger als 0,4 genau zeitlich festlegen muss %
Olin Lathrop
quelle
1
@ user2417339 Da die CPU-Uhr nicht genau genug ist. Der Kristall liefert diese mangelnde Genauigkeit an das System
M.Ferru
9
Der Punkt ist, dass für USB beide Enden eine einigermaßen genaue Uhr haben müssen. Die Maus benötigt also einen Kristall, damit USB funktioniert. Warum nicht die Uhr vom Host-PC aus benutzen? Die kurze Antwort lautet: USB gibt dem Gerät keine Kopie der Host-Uhr. Warum nicht ist ein bisschen kompliziert - viele verschiedene Dinge wurden gegeneinander abgewogen, als die USB-Spezifikation geschrieben wurde, und das ging verloren.
Jack B
2
Downvoter, erklären Sie bitte, was Sie für falsch halten.
Olin Lathrop
3
@OlinLathrop: Der Commodore 64 verfügt über Potentiometereingänge, die die Zeit messen, die zum Laden fester Kondensatoren über variable Widerstände erforderlich ist. Die Software erwartet, dass eine Maus einen Widerstandswert im Bereich von 0 bis 255 anzeigt und sauber umhüllt (254, 255, 0, 1 usw.), was bedeutet, dass die Maus ihre Ausgangsimpulse auf weniger als 0,4 genau zeitlich festlegen muss %.
Supercat
2
@ Jerry: Die meisten von ihnen sind nur Drähte mit der einzigen Information, die die Farbe der Isolierung ist. Ich nahm an, dass zwei davon die USB-D + - und -D- -Leitungen sind, während andere auf Maustasten, vielleicht LED-Anzeigen oder was auch immer für ausgefallene Dinge diese Maus tun könnte, die nicht nur eine Maus sind.
Olin Lathrop
21

Der MOS 5717 muss einiges an unabhängiger Arbeit für sich selbst erledigen, um die Mausfunktionalität aus einer Reihe von optischen Codierern zu erstellen.

Die Beschreibung aus dem Datenblatt gibt es am besten als,

Der 5717 ist ein kundenspezifischer CMOS - Mauscontroller für den Commodore 64. Er befindet sich im Gehäuse einer 2 - Tasten - Maus, sodass er an den 64 - Joystick - Anschluss angeschlossen werden kann und die Maussteuerung für GEOS - Software usw. Die Mausfunktion wird erreicht, indem die POTX- und POTY-Leitungen des SID-Chips zu verschiedenen Zeitpunkten im SID 512uS-Zyklus geerdet werden, um den 64 mit Positionsinformationen zu versorgen.

Bevor es den ADCs freigestellt war, nahezu jeden IC zu ergänzen, verwendete die SID-Schnittstelle die Lade- / Entladezeit, die mit dem Potentiometer und einem Eingangsintegrationskondensator erstellt wurde, um den "Pot" -Wert abzuschätzen. Der 5717 emuliert ein Potentiometer mit digitalen Ausgängen durch Steuern des Signal-Timings auf den POT-Leitungen.

sstobbe
quelle
3
Legen Sie das Datenblatt für alle Fälle in die Wayback-Maschine. web.archive.org/web/99991232235959/http://…
Oskar Skog
4

Sie können einen solchen Oszillator heutzutage in vielen elektronischen Geräten sehen. Ein Mikrocontroller führt bei jedem Tick eine Operation aus. Um zu kontrollieren und zu verstehen, was der µC tut, benötigen Sie eine genaue Uhr. Die meisten µC haben eine eingebaute Uhr, sind aber nicht sehr genau .

Wie @Olin Lathrop sagte, wird diese genaue Uhr irgendwann für das USB-Protokoll oder für einige Messungen in regelmäßigen Abständen benötigt ...

M.Ferru
quelle
3

Andere Antworten deckten ab, wofür das Mikro in der Maus eine Uhr benötigt. Sie haben jedoch nicht die wichtigsten Teile der Frage behandelt:

Wäre es nicht möglich, die Uhr vom Computer aus zu benutzen?

Als erstes ist zu beachten, dass der Computer ihm keine Uhr gibt. Wenn es keinen gibt, den Sie verwenden können, können Sie ihn nicht verwenden. Es sei denn, Sie möchten einen benutzerdefinierten Connector einrichten. Dann müssen Sie jedoch alle potenziellen Kunden davon überzeugen, ihre Computer manuell zu ändern. Solange Ihre Kunden keine Experten für Hardcore-Elektronik sind, wird dies keine erfolgreiche Geschäftsstrategie sein!

Wichtiger ist jedoch die Frage, warumDer Computer gibt ihm keine Uhr. Damit die Uhr schnell genug ist, um das Mikro in der Maus laufen zu lassen, muss sie ziemlich schnell sein - ein paar Hundert kHz sind das absolute Minimum, und für sehr alte Mikros steht normalerweise MHz zur Verfügung. Der 5717 erwartet offenbar einen 4MHz Takt. Das Problem dabei ist, dass Sie, wenn Sie nicht sehr vorsichtig mit der Kabelkonstruktion, der Signalquelle und dem Sinken der Signale und allen damit verbundenen interessanten Aspekten der schnellen digitalen Kommunikation umgehen, einen Funksender erstellen, wenn Sie 4 MHz auf ein Kabel legen. Es ist absolut möglich, dies gut zu machen, ohne in die Welt zu senden - USB, DVI und HDMI können digitale Daten mit hohen Raten senden - aber es ist keineswegs einfach. Die Leute schicken im Allgemeinen keine Uhren über lange Kabel, es sei denn, sie haben einen guten Grund, dies zu tun.

Auch wenn es einen eigenen Kristall hat, kann es nicht nicht mit der CPU-Uhr synchronisiert werden?

Sie haben absolut Recht, dass die Maus die CPU-Uhr benötigt, wenn die Maus Daten erzeugt, die die CPU taktsynchron lesen muss. (Eigentlich kann man mit einer langsameren synchronen Uhr auskommen und am anderen Ende multiplizieren, aber vergessen wir das der Einfachheit halber für den Moment.) Also, ist es das?

Auch hier lautet die Antwort beim Betrachten des Systems eindeutig "Nein". Der 5717 ändert seinen Widerstand, wenn der Benutzer die Maus bewegt. Der Benutzer wird die Maus nicht so schnell bewegen, und der Benutzer kann die Maus bewegen, wann immer er möchte, so dass es nicht erforderlich ist, dass sie taktsynchron ist. Im schlimmsten Fall ändert sich der Widerstand während des Lesens durch die CPU, und die CPU erhält entweder den niedrigeren oder den höheren Wert. Beim nächsten Mal bleibt der Widerstand konstant und die CPU erhält den endgültigen Wert. Da sich die Maus nur mit der Geschwindigkeit der Hand des Benutzers bewegt, kümmert sich niemand viel darum, dass eine Probe mehr oder weniger zum endgültigen Wert gelangt.

So beantworten Sie Ihre Fragen in umgekehrter Reihenfolge:

  • Es spielt keine Rolle, ob es nicht mit der CPU-Uhr synchron ist.
  • Es gibt gute technische Gründe, die CPU-Uhr nicht über Kabel zu senden, es sei denn, dies ist unbedingt erforderlich. In diesem Fall ist dies nicht der Fall.
Graham
quelle
Trotz moderner Schnittstellen wird empfohlen, die digitale Elektronik von HF-Geräten zu entfernen . (In diesem speziellen Fall muss ein gewisser Abstand zwischen einem USB-Hub und einem Amateurfunk-Transceiver eingehalten werden.)
CVn