Warum braucht eine Maus einen Kristall?

Ich habe mir dieses Schema für eine alte Maus (vor USB) angesehen:

Geben Sie hier die Bildbeschreibung ein

als ich bemerkte, dass es einen Kristall darauf hatte (Y1). Ich war neugierig, warum eine Maus einen Timer braucht? Wäre es nicht möglich, die Uhr vom Computer zu verwenden? Auch wenn es einen eigenen Kristall hat, könnte es nicht mit der CPU-Uhr synchron werden?

Woher hast du diesen Schaltplan? Es gibt einige Fehler: zB die Polarität der Fotodioden ist vertauscht.
@curd der Schaltplan stammt von hier: commodore.ca/manuals/funet/cbm/schematics/misc/index.html
Vielleicht ist der "Kristall" in Wirklichkeit nur ein Keramikresonator. Übrigens: Warum erwarten Sie, dass es in einer Maus keine Takterzeugung gibt? Es ist sogar wahrscheinlich, dass sich im Inneren des Computers, vielleicht sogar auf der Hauptplatine, mehrere Teilschaltungen befinden, die über eine eigene Takterzeugung (Quarzoszillatoren) verfügen.
Hinweis für Kommentatoren: Dies ist eine Commodore-Maus, keine USB-Maus.
Wie die Antwort von @OlinLathrop sagt, versucht die Maus-MCU nicht, mit dem Mikroprozessor (MCU) des Hostsystems synchron zu sein. Die Maus-MCU möchte nur mit dem Kommunikationsanschluss synchron sein, sei es USB, RS232C oder irgendetwas anderes.
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.
Der C64 wurde über 10 Jahre lang produziert. Entwickler von Peripheriegeräten hätten zu dem Zeitpunkt, als die Maus auf den Markt kam, einen starken Anreiz, ihre Geräte mit der riesigen installierten Basis bestehender C64-Geräte kompatibel zu machen, ohne eine neue Schnittstelle zu benötigen. Darüber hinaus war das Commodore-Management notorisch geizig und hätte nicht in die Änderung des Baustandards für die Maschine investiert, um eine neue Schnittstelle aufzunehmen.
@Curd muss ich blind sein oder wo ist der Fehler im Optoteil? die LEDs sind paarweise in Reihe geschaltet mit je einem Widerstand zwischen Masse und Kathode, Anoden gegen VCC; Die Fotodioden sind alle Anoden an VCC und Kathoden an einzelnen Eingangspins mit jeweils einem Pulldown-Widerstand. Es ist einfach alles ungeschickt orientiert.
@dlatikay: Fotodiodenanode, die mit Vcc verbunden ist, ist genau der Fehler. Wenn eine Fotodiode vorgespannt ist, muss sie in Sperrrichtung vorgespannt sein, dh die Kathode muss positiver sein als die Anode.
richtig ... natürlich, danke ... das "Datenblatt" spricht von Fototransistoren, und auf der Leiterplatte sind sie als Q1-Q4 gekennzeichnet. auch interessant zu lesen
Wo ist die Uhr von der CPU in Ihrem Diagramm? Damals und heute verwenden Sie eine getaktete Logik und eine lokale Uhr für Kosten/Genauigkeit, und Sie verwenden eine Form der Kommunikation zwischen den CPUs. (die auf der Maus und die verschiedenen auf dem Host).
Pin 5 und Pin 6 scheinen laut sstobbes Antwort vertauscht zu sein.

Antworten (4)

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

Allerdings braucht nur eine Uhr für ein Mikro keine Kristallgenauigkeit. Das dient wohl der Kommunikation. USB erfordert eine ziemlich hochgenaue Uhr.

Eine Maus muss nicht die Echtzeit verfolgen, und es gibt keinen Grund, dass sie mit der CPU-Uhr synchron ist. Seine USB-Uhr muss nur nahe genug an der USB-Uhr des Hosts liegen, damit die Kommunikation funktioniert. Das Timing darüber, wie schnell Mausereignisse auftreten, oder die Zeit zwischen Mausereignissen wird im Host behandelt. Die Maus sendet nur Informationen darüber, was sie wahrnimmt.

Hinzugefügt

Das Obige wurde als Antwort auf die ursprüngliche Frage geschrieben, in der nicht erwähnt wurde, dass diese Maus kein USB ist. Da so ziemlich alle neuen Mäuse seit einem Jahrzehnt oder länger USB 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 hatte, hatte sie immer noch einen Prozessor, der getaktet werden musste. Es verwendete anscheinend auch das Timing, um die Positionen von Töpfen zu messen, die mit einem Joystick verbunden waren, etwas anderes, das 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 hat Potentiometereingänge, die die Zeit messen, die erforderlich ist, um feste Kondensatoren durch variable Widerstände aufzuladen. Die Software erwartet, dass eine Maus einen Widerstandswert im Bereich von 0 bis 255 liest und sauber 254, 255, 0, 1 usw. umschließt, was bedeutet, dass die Maus ihre Ausgangsimpulse auf weniger als 0,4 genau timen muss %
Aber könnte es nicht die CPU-Uhr verwenden, auch wenn es nicht nötig wäre? Es scheint, als würde es weniger Energie verbrauchen und weniger Teile benötigen, um die CPU-Uhr zu verlassen, also warum nicht es verwenden?
@ user2417339 Weil die CPU-Uhr nicht genau genug ist. Der Kristall stellt dem System diese fehlende Genauigkeit bereit
Oh, also muss der Kristall für den Sensor genauer sein als die Uhr für USB / CPU?
@user: Nein, umgekehrt.
Warum denkt @m.ferru dann, dass die CPU-Uhr nicht genau genug ist? Wenn die CPU/USB-Uhr genauer ist, was bekommen Sie dann, wenn Sie einen weiteren Kristall hinzufügen?
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 verwenden? Die kurze Antwort lautet: USB gibt dem Gerät keine Kopie der Host-Uhr. Warum nicht, ist irgendwie kompliziert - viele verschiedene Dinge wurden gegeneinander abgehandelt, als die USB-Spezifikation geschrieben wurde, und das ging verloren.
Downvoter, erkläre bitte, was deiner Meinung nach falsch ist.
Nachdem ich meinen Kommentar geschrieben hatte, wurde mir klar, dass dies eine antike Maus ist, also ist USB-Zeug nicht relevant ... Vielleicht hat das auch die Downvoter herausgebracht.
@OlinLathrop: Der Commodore 64 verfügt über Potentiometereingänge, die die Zeit messen, die zum Laden von Festkondensatoren durch variable Widerstände erforderlich ist. Die Software erwartet, dass eine Maus einen Widerstandswert im Bereich von 0 bis 255 liest und sauber 254, 255, 0, 1 usw. umschließt, was bedeutet, dass die Maus ihre Ausgangsimpulse auf weniger als 0,4 genau timen muss %.
@supe: Ich habe deinen Kommentar in die Antwort kopiert.
@OlinLathrop: Ich denke übrigens, es ist ein Mikrocontroller. Abhängig davon, ob die Maustaste beim Start gedrückt gehalten wird, kann sich die Maus unter anderem entweder über die Potentiometereingänge melden oder als Joystick erscheinen, der einen oder zwei von vier Pins erdet, um oben, unten und links anzuzeigen , rechts, oder die vier Hauptdiagonalen.
Fairerweise gegenüber dem OP: Der Schaltplan zeigt 10 Verbindungen zur Außenwelt, was ein ziemlich starker Hinweis darauf zu sein scheint, dass es sich nicht um USB handelt.
@Jerry: Die meisten von ihnen sind nur Drähte, wobei die einzige Information die Farbe der Isolierung ist. Ich dachte, zwei davon wären die USB-Leitungen D+ und D-, während andere zu Maustasten, vielleicht LED-Anzeigen oder was auch immer diese Maus machen könnte, als nur eine Maus zu sein.
Könnte die Uhr einfach zum Zählen der Mausbewegungen dienen? Dafür scheint es schrecklich hoch zu sein, aber die Verwendung eines speziell angefertigten Mikrocontrollers klingt nach Übertreibung. Ein nicht benutzerdefinierter Mikrocontroller oder ein benutzerdefinierter Nicht-Mikrocontroller wäre IMO sinnvoller.
@OskarSkog: Dieses Produkt wurde in den 1980er Jahren eingeführt, als diskrete EPROM- und OTPROM-Chips preisgünstig waren, aber Mikrocontroller mit eingebautem EPROM oder OTPROM viel teurer waren als solche mit Masken-ROM. Ein Masken-ROM-Mikrocontroller wurde möglicherweise nicht kundenspezifisch entwickelt , aber alle diese Chips wurden kundenspezifisch hergestellt .
@OskarSkog: Wenn man sich andererseits das Datenblatt für das Teil ansieht, beschreibt es bestimmte Aspekte ausreichend detailliert, um darauf hinzuweisen, dass es sich wirklich um kundenspezifisches Silizium handelt (warum sollte es sonst angeben, dass es ein "pervers gestaltetes" [Datenblattbegriff !] Zähler mit zwei verketteten DFF-Flops, gefolgt von einem Sieben-Bit-Ripple-Zähler?

Der MOS 5717 muss selbst einiges an unabhängiger Arbeit leisten, um die Mausfunktionalität aus einem Satz optischer Encoder 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 wird im Körper einer Maus mit zwei Tasten untergebracht, sodass er an den 64-Joystick-Anschluss angeschlossen werden kann und die Maussteuerung der GEOS-Software usw. ermöglicht. Er erreicht die Mausfunktion, indem er die POTX- und POTY-Leitungen des SID-Chips zu verschiedenen Zeiten im SID-512uS-Zyklus erdet, um den 64 mit Positionsinformationen zu versorgen.

Bevor ADCs praktisch jedem IC hinzugefügt werden konnten, verwendete die SID-Schnittstelle die mit einem Potentiometer und einem Eingangsintegrationskondensator erzeugte Lade-/Entladezeit, um den „Pot“-Wert abzuschätzen. Der 5717 emuliert ein Potentiometer mit digitalen Ausgängen, indem er das Signaltiming auf den POT-Leitungen steuert.

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

Heutzutage kann man solche Oszillatoren in vielen elektronischen Geräten sehen. Ein Mikrocontroller führt bei jedem Tick eine Operation aus. Um zu steuern und zu verstehen, was der µC tut, benötigen Sie eine genaue Uhr. Die meisten µC haben eine eingebaute Uhr , die aber nicht sehr genau ist .

Wie @Olin Lathrop sagte, wird diese genaue Uhr eventuell für das USB-Protokoll benötigt oder um regelmäßig Messungen durchzuführen ...

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

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

Das erste, was zu beachten ist, ist, dass der Computer ihm keine Uhr gibt. Wenn es keinen zu verwenden gibt, können Sie ihn nicht verwenden. Es sei denn, Sie möchten natürlich einen benutzerdefinierten Connector einrichten - aber dann müssen Sie alle Ihre potenziellen Kunden davon überzeugen, ihre Computer von Hand zu modifizieren. Wenn Ihre Kunden nicht alle extrem eingefleischte Elektronikexperten sind, wird dies keine erfolgreiche Geschäftsstrategie sein!

Viel wichtiger ist jedoch die Frage nach dem WarumDer Computer gibt ihm keine Uhr. Damit der Takt schnell genug ist, um das Mikro in der Maus zu betreiben, muss er ziemlich schnell sein - ein paar hundert kHz sind das absolute Minimum, und normalerweise sind Sie selbst bei sehr alten Mikros bis in MHz hoch. Der 5717 hat offenbar einen 4MHz Takt erwartet. Das Problem hier ist, dass, wenn Sie nicht sehr sorgfältig auf die Kabelkonstruktion, die Signalquellen und -senken und alle damit verbundenen interessanten Aspekte der schnellen digitalen Kommunikation achten, das, was Sie erstellen, wenn Sie ein 4-MHz-Kabel in ein Kabel legen, ein Funksender ist. Es ist durchaus möglich, dies ohne Übertragung in die Welt zu tun - USB, DVI und HDMI schaffen es, digitale Daten mit hohen Raten zu senden -, aber es ist keineswegs einfach. Daher senden die Leute im Allgemeinen keine Uhren über lange Kabel, es sei denn, sie haben einen guten Grund dafür.

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

Sie haben völlig Recht, wenn die Maus Daten produziert, die die CPU taktsynchron lesen muss, dann benötigt die Maus den CPU-Takt. (Eigentlich können Sie mit einem langsameren synchronen Takt auskommen und am anderen Ende hochmultiplizieren, aber vergessen wir das der Einfachheit halber für den Moment.) Also, oder?

Auch hier ist die Antwort, wenn man sich das System ansieht, 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, sodass 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 um ein Sample mehr oder weniger, um zum endgültigen Wert zu gelangen.

Also, um deine Fragen in umgekehrter Reihenfolge zu beantworten:

  • Es spielt keine Rolle, ob es nicht mit der CPU-Uhr synchron ist.
  • Es gibt gute technische Gründe dafür, den CPU-Takt nicht über eine Leitung zu senden, es sei denn, es ist absolut notwendig, und in diesem Fall ist es nicht so, dass sie es nicht getan haben.
Auch bei modernen Schnittstellen wird empfohlen, digitale Elektronik von HF-Geräten wegzubewegen . (In diesem speziellen Fall muss ein gewisser Abstand zwischen einem USB-Hub und einem Amateurfunk-Transceiver eingehalten werden.)