¿Por qué un mouse necesita un cristal?

21

Estaba mirando este esquema para un mouse viejo (pre USB):

cuando me di cuenta de que tenía un cristal (Y1). Tenía curiosidad por qué un ratón necesitaría un temporizador? ¿No sería capaz de usar el reloj de la computadora? Además, si tiene su propio cristal, ¿no podría desincronizarse con el reloj de la CPU?

    
pregunta Tyler H

4 respuestas

25

Lo más probable es que MOS 5717 sea un microcontrolador o alguna parte que ejecute código. Necesita un reloj para funcionar.

Sin embargo, solo un reloj para un micro no necesita precisión de cristal. Eso es probablemente para la comunicación. USB requiere un reloj de alta precisión.

Un ratón no necesita realizar un seguimiento en tiempo real, y no hay razón para que esté sincronizado con el reloj de la CPU. Su reloj USB solo debe estar lo suficientemente cerca del reloj USB del host para que la comunicación funcione. La sincronización sobre la rapidez con que se producen los eventos del mouse o el tiempo entre eventos del mouse se maneja en el host. El mouse simplemente envía información sobre lo que siente que está sucediendo.

Añadido

Lo anterior se escribió en respuesta a la pregunta original, que no mencionó que este mouse no es USB. Dado que casi todos los ratones nuevos han sido USB durante una década o más, era razonable responder en ese contexto. Cuando preguntas sobre algo inusual, es tu responsabilidad aclararlo.

A pesar de no tener USB, este mouse aún tenía un procesador que necesitaba ser sincronizado. Aparentemente, también se utilizó el tiempo para medir las posiciones de los potes conectados a un joystick, algo que el OP no mencionó. Ahora parece que un comentario de supercat es más relevante, así que lo copio en la respuesta:

El Commodore 64 tiene entradas de potenciómetro que miden el tiempo requerido para cargar condensadores fijos a través de resistencias variables. El software espera que un mouse se lea como un valor de resistencia en el rango 0-255, y que se ajuste a 254, 255, 0, 1, etc., lo que significa que el mouse debe sincronizar sus pulsos de salida con precisión dentro de menos de 0.4 %
    
respondido por el Olin Lathrop
21

El MOS 5717 tiene bastante trabajo independiente que realizar para crear la funcionalidad del mouse desde un conjunto de codificadores ópticos.

La descripción de la hoja de datos lo declara mejor.

  

El 5717 es un controlador de mouse CMOS personalizado para Commodore 64. Lo hará         estar alojado en el cuerpo de un mouse de dos botones, lo que permite que se conecte         en el puerto de la palanca universal 64 y proporcione el control del mouse del software GEOS, etc.         Logra la función del mouse conectando a tierra el POTX y el POTY del chip SID         líneas en varios momentos en el ciclo SID 512uS para proporcionar el 64 con         información posicional.

Antes de que los ADC pudieran agregarse a casi cualquier IC, la interfaz SID usaba el tiempo de carga / descarga creado con el potenciómetro y un capacitor de integración de entrada para estimar el valor del "pot". El 5717 emula un potenciómetro con salidas digitales mediante el control de la sincronización de la señal en las líneas POT.

    
respondido por el sstobbe
4

Hoy en día se puede ver este oscilador en muchos dispositivos electrónicos. Un microcontrolador ejecuta la operación en cada tic. Para controlar y comprender lo que hace el µC, necesita un reloj preciso. La mayoría de µC tiene un reloj incorporado pero no es muy preciso .

Como dijo @Olin Lathrop, este reloj preciso se necesita finalmente para el protocolo USB o, para hacer algunas mediciones periódicamente ...

    
respondido por el M.Ferru
3

Otras respuestas han cubierto para qué necesita un reloj el micro dentro del mouse. Sin embargo, no han cubierto las partes más importantes de la pregunta: -

  

¿No sería capaz de usar el reloj de la computadora?

Lo primero que se debe tener en cuenta es que la computadora no le da un reloj. Si no hay uno para usar, no puedes usarlo. Por supuesto, a menos que desee configurar un conector personalizado, pero luego debe persuadir a todos sus clientes potenciales para que modifiquen sus computadoras a mano. ¡A menos que sus clientes sean todos expertos en electrónica extremadamente duros, esta no será una estrategia comercial exitosa!

Más importante aún es la pregunta de por qué la computadora no le está dando un reloj. Para que el reloj sea lo suficientemente rápido para ejecutar el micro en el mouse, debe ser bastante rápido: unos pocos cientos de kHz es el mínimo absoluto, y lo más normal es que esté en MHz, incluso para micros muy antiguos. El 5717 aparentemente esperaba un reloj de 4MHz. El problema aquí es que, a menos que tenga mucho cuidado con la construcción del cable, la fuente de la señal y el hundimiento, y todos los aspectos interesantes asociados de las comunicaciones digitales rápidas, lo que se crea cuando se coloca un cable de 4 MHz es un transmisor de radio. Es absolutamente posible hacerlo bien sin transmitir al mundo: USB, DVI y HDMI logran enviar datos digitales a altas tasas, pero de ninguna manera es sencillo. Por lo tanto, la gente generalmente no envía relojes por cables largos a menos que tengan una buena razón para hacerlo.

  

Además, si tiene su propio cristal, ¿no podría desincronizarse con el reloj de la CPU?

Tienes toda la razón en que si el mouse produce datos que la CPU tiene que leer de forma sincronizada, entonces el mouse necesitará el reloj de la CPU. (En realidad, puede funcionar con un reloj síncrono más lento y multiplicarse en el otro extremo, pero olvidemos eso por el momento, por simplicidad). Entonces, ¿verdad?

Una vez más, mirando el sistema, la respuesta es claramente "no". El 5717 cambia su resistencia cuando el usuario mueve el mouse. El usuario no va a mover el mouse tan rápido, y el usuario puede mover el mouse cuando lo desee, por lo que no es necesario que esté sincronizado con el reloj. En el peor de los casos, la resistencia cambia a la mitad de la lectura de la CPU, y la CPU obtiene el valor más bajo o el más alto. La próxima vez, la resistencia se mantiene estable y la CPU obtiene el valor final. Como el mouse solo se mueve a la velocidad de la mano del usuario, a nadie le importa una muestra más o menos para llegar al valor final.

Entonces, para responder a sus preguntas en orden inverso:

  • No importa si está desincronizado con el reloj de la CPU.
  • Hay buenas razones técnicas para no enviar el tiempo de la CPU a menos que sea absolutamente necesario, y en este caso no lo es, por lo que no lo han hecho.
respondido por el Graham

Lea otras preguntas en las etiquetas