Eu estava olhando este esquema para um mouse antigo (pré USB):
quando notei que tinha um cristal nele (Y1). Fiquei curioso por que um mouse precisaria de um timer? Não seria capaz de usar o relógio do computador? Além disso, se ele tem seu próprio cristal, não pode ficar fora de sincronia com o relógio da CPU?
schematics
crystal
reverse-engineering
Tyler H
fonte
fonte
Respostas:
Essa coisa do MOS 5717 provavelmente é um microcontrolador ou alguma parte que executa código. Precisa de um relógio para funcionar.
No entanto, apenas um relógio para um micro não precisa de precisão de cristal. Provavelmente é para comunicação. O USB requer um relógio de alta precisão.
Um mouse não precisa rastrear em tempo real e não há motivo para estar sincronizado com o relógio da CPU. Seu relógio USB deve estar próximo o suficiente do relógio USB do host para que a comunicação funcione. Tempo sobre a rapidez com que os eventos do mouse estão ocorrendo ou o tempo entre os eventos do mouse é tratado no host. O mouse apenas envia informações sobre o que sente acontecer.
Adicionado
O texto acima foi escrito em resposta à pergunta original, que não mencionava o mouse como USB. Como praticamente todos os novos mouses são USB há uma década ou mais, era razoável responder nesse contexto. Quando você pergunta sobre algo incomum, é sua responsabilidade deixar isso claro.
Apesar de não ter USB, este mouse ainda tinha um processador que precisava ser monitorado. Aparentemente, também usou o timing para medir as posições dos potes conectados a um joystick, outra coisa que o OP não mencionou. Parece agora que um comentário de supercat é mais relevante, por isso estou copiando-o na resposta:
fonte
O MOS 5717 tem bastante trabalho independente a ser feito para criar a funcionalidade do mouse a partir de um conjunto de codificadores ópticos.
A descrição da folha de dados indica o melhor como,
Antes que os ADCs pudessem adicionar praticamente qualquer IC, a interface SID usava o tempo de carga / descarga criado com o potenciômetro e um capacitor de integração de entrada para estimar o valor do 'pot'. O 5717 emula um potenciômetro com saídas digitais, controlando o tempo do sinal nas linhas POT.
fonte
Você pode ver esse oscilador em muitos dispositivos eletrônicos hoje em dia. Um microcontrolador executa a operação a cada tick. Para controlar e entender o que o µC está fazendo, você precisa de um relógio preciso. A maioria dos µC possui um relógio construído, mas não é muito preciso .
Como disse @Olin Lathrop, este relógio preciso é necessário eventualmente para o protocolo USB ou, para fazer algumas medições periodicamente ...
fonte
Outras respostas cobriram o que o micro dentro do mouse precisa de um relógio. No entanto, eles não cobriram as partes mais importantes da questão: -
A primeira coisa a observar é que o computador não está dando um relógio. Se não houver um para usar, você não poderá usá-lo. A menos que você deseje configurar um conector personalizado, é claro - mas você precisa convencer todos os seus clientes em potencial a modificar manualmente seus computadores. A menos que seus clientes sejam especialistas em eletrônica extremamente exigentes, isso não será uma estratégia de negócios bem-sucedida!
Mais importante ainda é a questão de por queo computador não está dando um relógio. Para que o relógio seja rápido o suficiente para executar o micro no mouse, ele precisa ser bem rápido - algumas centenas de kHz é o mínimo absoluto, e mais normalmente você está em MHz para micros muito antigos. O 5717 aparentemente esperava um relógio de 4 MHz. O problema aqui é que, a menos que você tenha muito cuidado com a construção do cabo, a fonte e o afundamento do sinal e todos os aspectos interessantes associados às comunicações digitais rápidas, o que você cria quando coloca 4 MHz em um cabo é um transmissor de rádio. É absolutamente possível fazer isso bem sem transmitir para o mundo - USB, DVI e HDMI conseguem enviar dados digitais a altas taxas - mas não é de forma alguma direta. Portanto, as pessoas geralmente não enviam relógios por cabos longos, a menos que tenham um bom motivo para fazê-lo.
Você está absolutamente certo de que, se o mouse produz dados que a CPU precisa ler de forma síncrona, então o mouse precisará do relógio da CPU. (Na verdade, você pode se dar bem com um relógio síncrono mais lento e se multiplicar na outra extremidade, mas vamos esquecer isso por enquanto, por simplicidade.) Então, é isso?
Mais uma vez, olhando para o sistema, a resposta é claramente "não". O 5717 altera sua resistência à medida que o usuário move o mouse. O usuário não moverá o mouse tão rápido, e poderá movê-lo sempre que quiser, portanto, não há necessidade de sincronizar o relógio. Na pior das hipóteses, a resistência muda parcialmente durante a leitura da CPU e a CPU obtém o valor mais baixo ou o valor mais alto. Na próxima vez, a resistência permanece estável e a CPU obtém o valor final. Como o mouse está se movendo apenas na velocidade da mão do usuário, ninguém se importa muito com uma amostra mais ou menos para chegar ao valor final.
Portanto, para responder suas perguntas na ordem inversa:
fonte