Bir fare neden bir kristale ihtiyaç duyar?


22

Eski bir (USB öncesi) fare için bu şemaya bakıyordum:

görüntü tanımını buraya girin

fark ettiğimde üzerinde kristal vardı (Y1). Bir farenin neden bir zamanlayıcıya ihtiyacı olacağını merak ediyordum. Saati bilgisayardan kullanamaz mıydı? Ayrıca kendi kristaline sahipse, CPU saati ile senkronize edilemedi mi?


1
Bu şemayı nereden aldın? Bazı hatalar var: örneğin fotodiyotların kutupları ters çevrilmiş.
Lor


7
Belki de "kristal" aslında sadece bir seramik rezonatördür. BTW: Neden bir farenin içinde saat üretimi olmadığını düşünüyorsunuz? Bilgisayarın içinde, belki de anakartta, kendi saat oluşumuna sahip (kristal osilatörler) birkaç alt devre olması muhtemeldir.
Lor

4
@OlinLathrop cevabının dediği gibi, fare MCU'su Host sisteminin mikroişlemcisi (MCU) ile senkronize olmaya çalışmıyor. Fare MCU, USB, RS232C veya başka bir şey olsun, sadece iletişim portu ile senkronize olmak istiyor.
TonyM

5
Bağlantınızdan, bu farenin bir joystick'i sahteciliği amaçlandığı anlaşılıyor. Joystick arayüzü saat sinyaline sahip olacak şekilde tasarlanmamışsa, farenin kullanması için saat sinyali mevcut değildir.
Foton

Yanıtlar:


25

Bu MOS 5717 olayının büyük olasılıkla bir mikroişlemci veya kod yürüten bir kısmı olabilir. Çalıştırmak için bir saate ihtiyacı var.

Ancak, bir mikro için sadece bir saat kristal hassasiyetine ihtiyaç duymaz. Muhtemelen iletişim içindir. USB oldukça yüksek hassasiyetli bir saat gerektirir.

Bir farenin gerçek zamanı izlemesi gerekmez ve bunun CPU saati ile senkronize olması için bir neden yoktur. USB saatinin, iletişimin çalışması için yalnızca ana bilgisayarın USB saatine yeterince yakın olması gerekir. Fare olaylarının ne kadar hızlı gerçekleştiğiyle ilgili zamanlama veya fare olayları arasında geçen süre, ana bilgisayarda ele alınır. Fare sadece neler hissettiği hakkında bilgi gönderir

Katma

Yukarıdakiler orjinal soruya cevap olarak yazılmıştır, bu farenin USB olmadığından söz etmemiştir. Hemen hemen tüm yeni fareler on yıldan daha uzun bir süredir USB olduğundan, bu bağlamda yanıt vermek mantıklıydı. Alışılmadık bir şey sorduğunuzda, bunu netleştirmek sizin sorumluluğunuzdadır.

USB olmamasına rağmen, bu farede hala çalışması gereken bir işlemci vardı. Görünüşe göre, bir joystick'e bağlı tencere konumlarını ölçmek için zamanlamayı kullandı, OP'nin söyleyemediği bir şey daha vardı. Görünüşe göre, supercat tarafından yapılan bir yorum en alakalı, bu yüzden cevabı kopyalıyorum:

Commodore 64, sabit kapasitörleri değişken dirençlerle şarj etmek için gereken süreyi ölçen potansiyometre girişlerine sahiptir. Yazılım, bir farenin 0-255 aralığında bir direnç değeri olarak okumasını ve 254, 255, 0, 1 vb. %

1
@ user2417339 CPU saati yeterince doğru olmadığından. Kristal bu eksik doğruluğu sisteme sağlar
M.Ferru

9
Mesele şu ki, USB için her iki ucun da makul derecede hassas bir saate sahip olması gerekir. Bu yüzden, USB'nin çalışması için farenin bir kristale ihtiyacı var. Neden saati ana bilgisayardan kullanmıyorsunuz? Kısa cevap USB'nin cihaza ana bilgisayar saatinin bir kopyasını vermemesidir. Neden bu kadar karmaşık değil - USB spec yazıldığında birbirleriyle çok farklı şeyler satılıyordu ve bu kayboldu.
Jack B,

2
Downvoter, lütfen yanlış olduğunu düşündüğünüzü açıkla.
Olin Lathrop

3
@OlinLathrop: Commodore 64, sabit kapasitörleri değişken dirençlerle şarj etmek için gereken süreyi ölçen potansiyometre girişlerine sahiptir. Yazılım, bir farenin 0-255 aralığında bir direnç değeri olarak okumasını ve 254, 255, 0, 1 vb. Gibi temiz bir şekilde sarılmasını bekler. Bu, farenin çıktı darbelerini 0,4'ten daha az bir sürede doğru şekilde zamanlaması gerektiği anlamına gelir. %.
supercat,

2
@Jerry: Birçoğu sadece kablolar olup, yalıtkanlığın rengi olan tek bilgidir. Bunlardan ikisinin USB D + ve D-çizgileri olacağını, diğerlerinin ise fare düğmelerine, belki LED göstergelerine veya bu farenin sadece bir fare olmaktan başka ne yapabileceğine dair başka bir şey yapmayacağını düşündüm.
Olin Lathrop

21

MOS 5717, bir dizi optik kodlayıcıdan fare işlevselliği oluşturmak için kendi başına yapacak çok bağımsız bir iş içeriyor.

Veri sayfasındaki açıklama en iyi şekilde

5717, Commodore 64 için özel bir CMOS fare kontrol cihazıdır. 64 joystick portuna takılmasını ve GEOS yazılımının vb. Fare kontrolünü sağlamasını sağlayan iki düğmeli bir farenin gövdesine yerleştirilecektir. 64'e konum bilgisi sağlamak için SID çipinin POTX ve POTY hatlarını SID 512uS döngüsünde çeşitli zamanlarda topraklayarak fare işlevini gerçekleştirir.

ADC'ler hemen hemen herhangi bir IC'ye ekleme yapmakta serbest bırakılmadan önce SID arayüzü, 'pot' değerini tahmin etmek için potansiyometre ve bir giriş entegrasyon kapasitörüyle oluşturulan şarj / deşarj süresini kullandı. 5717, POT hatlarındaki sinyal zamanlamasını kontrol ederek dijital çıkışlı bir potansiyometreye öykünür.


3
Veri sayfasını, her halükarda wayback makinesine yerleştirin. web.archive.org/web/99991232235959/http://…
Oskar Skog

4

Bu tür bir osilatörü günümüzde birçok elektronik cihazda görebilirsiniz. Bir mikroişlemci her kene işleminde yürütür. ΜC'nin ne yaptığını kontrol etmek ve anlamak için doğru bir saate ihtiyacınız var. Çoğu µC saatte bir yapıya sahiptir ancak çok kesin değildir .

Dedi @Olin Lathrop, bu doğru saat sonunda USB protokolü veya periyodik olarak bazı ölçüm yapmak için gerekli ...


3

Diğer cevaplar, farenin içindeki mikro için bir saatin neye ihtiyacı olduğunu anlattı. Ancak, sorunun en önemli kısımlarını ele almadılar: -

Saati bilgisayardan kullanamaz mıydı?

Dikkat edilmesi gereken ilk şey, bilgisayarın bir saat vermediğidir. Kullanılacak kişi yoksa, kullanamazsınız. Tabii ki özel bir bağlayıcı kurmak istemiyorsanız - ancak tüm potansiyel müşterilerinizi bilgisayarlarını el ile değiştirmeye ikna etmeniz gerekir. Müşterileriniz son derece hardcore elektronik uzmanları değilse, bu başarılı bir iş stratejisi olmayacak!

Daha da önemlisi, sorusu olsa nedenbilgisayar bir saat vermiyor. Saatin mikroda fareyi çalıştırmak için yeterince hızlı olması için, oldukça hızlı olması gerekir - birkaç yüz kHz mutlak minimumdur ve daha normalde çok eski mikroskoplar için bile MHz'ye kalkarsınız. 5717 görünüşte 4MHz bir saat bekleniyor. Buradaki sorun, kablo yapımı, sinyal kaynağı ve bataklığı ve hızlı dijital haberleşmelerin tüm ilgili ilginç yönleri konusunda çok dikkatli olmadıkça, 4MHz'i bir kabloya düşürdüğünüzde yarattığınız şey bir radyo vericisidir. Bunu kesinlikle dünyaya yayın yapmadan yapmak mümkündür - USB, DVI ve HDMI dijital verileri yüksek hızlarda göndermeyi başarır - ancak hiçbir şekilde kolay değildir. Bu nedenle, insanlar, yapmak için iyi bir nedenleri olmadıkça, genellikle uzun kablolar üzerinden saatler göndermezler.

Ayrıca kendi kristaline sahipse, CPU saati ile senkronize edilemedi mi?

Fare, CPU'nun saatin eşzamanlı olarak okuması gereken verileri üretirse, o zaman farenin CPU saatine ihtiyacı olacaktır. (Aslında daha yavaş bir senkronize saatle geçip diğer ucunda çoğaltabilirsiniz, fakat şu an için, sadelik için bunu unutalım.) Öyle mi?

Yine, sisteme bakarak, cevap açıkça "hayır" dır. 5717, kullanıcı fareyi hareket ettirdikçe direncini değiştirir. Kullanıcı fareyi o kadar hızlı hareket ettiremez ve kullanıcı istediği zaman fareyi hareket ettirebilir, bu nedenle saatin eşzamanlı olması gerekmez. En kötü durumda, direnç işlemci tarafından okunan kısmen değişiyor ve CPU ya daha düşük ya da daha yüksek değeri alıyor. Bir dahaki sefere, direnç sabit kalır ve CPU nihai değeri alır. Fare sadece kullanıcının elinin hızında hareket ettiğinden, hiç kimse bir numuneye son değere ulaşmak için daha fazla veya daha az umursamıyor.

Dolayısıyla, sorularınızı ters sırada cevaplamak için:

  • CPU saati ile senkronize olmaması önemli değil.
  • İşlemci saatini kesinlikle gerekmedikçe bir kabloyu aşağıya göndermemenin iyi teknik nedenleri vardır ve bu durumda böyle olmadı.

Modern arayüzlerde bile, dijital elektroniği RF cihazlarından uzaklaştırmanız önerilir . (Bu özel durumda, bir USB hub ve amatör bir radyo alıcı-verici arasında biraz ayrım yapılması.)
26'da bir CVn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.