Mengapa tikus membutuhkan kristal?

22

Saya melihat skema ini untuk mouse (pra USB) lama:

masukkan deskripsi gambar di sini

ketika saya perhatikan ada kristal di atasnya (Y1). Saya ingin tahu mengapa mouse perlu timer? Bukankah itu bisa menggunakan jam dari komputer? Juga jika ia memiliki kristal sendiri tidak dapat keluar dari sinkronisasi dengan jam CPU?

Tyler H
sumber
1
Dari mana Anda mendapatkan skema itu? Ada beberapa kesalahan: misalnya polaritas fotodioda terbalik.
Curd
1
@curd, skematisnya berasal dari sini : omodore.ca/manuals/funet/cbm/schematics/misc/index.html
Tyler H
7
Mungkin "kristal" itu sebenarnya hanyalah resonator keramik. BTW: Mengapa Anda berharap bahwa tidak ada generasi jam di dalam mouse? Bahkan ada beberapa sub-sirkuit di dalam komputer, mungkin bahkan pada motherboard, yang memiliki generasi clock sendiri (osilator kristal).
Curd
4
Seperti jawaban @OlinLathrop mengatakan, MCU mouse tidak berusaha untuk sinkron dengan mikroprosesor (MCU) sistem Host. MCU mouse hanya ingin sinkron dengan port komunikasi, baik itu USB, RS232C atau yang lainnya.
TonyM
5
Dari tautan Anda, tampaknya mouse ini dimaksudkan untuk menipu joystick. Jika antarmuka joystick tidak dirancang untuk memiliki sinyal jam, maka tidak ada sinyal jam yang tersedia untuk digunakan mouse.
The Photon

Jawaban:

25

Itu MOS 5717 hal kemungkinan besar mikrokontroler atau bagian yang mengeksekusi kode. Perlu jam untuk berjalan.

Namun, hanya sebuah jam untuk mikro tidak membutuhkan akurasi kristal. Itu mungkin untuk komunikasi. USB membutuhkan jam dengan akurasi yang cukup tinggi.

Mouse tidak perlu melacak waktu nyata, dan tidak ada alasan untuk menyelaraskan dengan jam CPU. Jam USB-nya harus cukup dekat dengan jam USB host agar komunikasi berfungsi. Waktu tentang seberapa cepat peristiwa mouse terjadi atau waktu antara peristiwa mouse ditangani di host. Mouse hanya mengirim info tentang apa yang dirasakannya.

Ditambahkan

Tulisan di atas ditulis untuk menjawab pertanyaan awal, yang tidak menyebutkan bahwa mouse ini bukan USB. Karena hampir semua tikus baru telah USB selama satu dekade atau lebih, masuk akal untuk menjawab dalam konteks itu. Ketika Anda bertanya tentang sesuatu yang tidak biasa, Anda bertanggung jawab untuk menjelaskannya.

Meskipun tidak memiliki USB, mouse ini masih memiliki prosesor yang harus di-clock. Ini juga tampaknya menggunakan waktu untuk mengukur posisi pot yang terhubung ke joystick, sesuatu yang gagal disebutkan OP. Tampaknya sekarang komentar dari supercat paling relevan, jadi saya menyalinnya ke dalam jawabannya:

Commodore 64 memiliki input potensiometer yang mengukur waktu yang diperlukan untuk mengisi kapasitor tetap melalui resistensi variabel. Perangkat lunak mengharapkan bahwa mouse akan membaca sebagai nilai resistansi dalam kisaran 0-255, dan itu akan membungkus dengan bersih 254, 255, 0, 1, dll. Yang berarti mouse harus secara akurat mengatur waktu pulsa output-nya dalam waktu kurang dari 0,4 %
Olin Lathrop
sumber
1
@ user2417339 Karena jam CPU tidak cukup akurat. Kristal memberikan akurasi yang kurang ke sistem
M.Ferru
9
Intinya adalah bahwa untuk USB, kedua ujungnya harus memiliki jam yang cukup akurat. Jadi mouse membutuhkan kristal untuk membuat USB berfungsi. Mengapa tidak menggunakan jam dari PC host? Jawaban singkatnya adalah USB tidak memberikan salinan jam host kepada perangkat. Mengapa tidak agak rumit - banyak hal yang berbeda dipertukarkan satu sama lain ketika spesifikasi USB ditulis, dan itu hilang.
Jack B
2
Downvoter, tolong jelaskan apa yang menurut Anda salah.
Olin Lathrop
3
@OlinLathrop: Commodore 64 memiliki input potensiometer yang mengukur waktu yang diperlukan untuk mengisi kapasitor tetap melalui resistensi variabel. Perangkat lunak mengharapkan bahwa mouse akan membaca sebagai nilai resistansi dalam kisaran 0-255, dan itu akan membungkus dengan bersih 254, 255, 0, 1, dll. Yang berarti mouse harus secara akurat mengatur waktu pulsa output-nya dalam waktu kurang dari 0,4 %.
supercat
2
@ Jerry: Kebanyakan dari mereka hanya kabel dengan satu-satunya informasi menjadi warna isolasi. Saya pikir dua dari mereka akan menjadi USB D + dan D-line, dengan yang lain pergi ke tombol mouse, mungkin indikator LED, atau apa pun hal-hal mewah yang mungkin dilakukan mouse ini selain menjadi hanya mouse.
Olin Lathrop
21

MOS 5717 memiliki cukup banyak pekerjaan independen yang harus dilakukan sendiri untuk membuat fungsionalitas mouse dari serangkaian enkoder optik.

Deskripsi dari datasheet menyatakan yang terbaik,

5717 adalah pengendali mouse CMOS khusus untuk Commodore 64. Ini akan ditempatkan di badan mouse dua tombol, memungkinkannya untuk dihubungkan ke port joystick 64 dan menyediakan kontrol mouse pada perangkat lunak GEOS, dll. Ini mencapai fungsi mouse dengan membumikan garis POTX dan POTY chip SID pada berbagai waktu dalam siklus SID 512uS untuk memberikan 64 informasi posisi.

Sebelum ADC bebas menambahkan ke sembarang IC, antarmuka SID menggunakan waktu pengisian / pengosongan yang dibuat dengan potensiometer dan kapasitor integrasi input untuk memperkirakan nilai 'pot'. The 5717 mengemulasi potensiometer dengan output digital dengan mengontrol waktu sinyal pada garis POT.

sstobbe
sumber
3
Letakkan datasheet di mesin wayback untuk berjaga-jaga. web.archive.org/web/99991232235959/http://…
Oskar Skog
4

Anda dapat melihat osilator seperti itu di banyak perangkat elektronik saat ini. Seorang mikrokontroler menjalankan operasi pada setiap centang. Untuk mengontrol dan memahami apa yang dilakukan μC, Anda memerlukan jam yang akurat. Kebanyakan μC memiliki build in clock tetapi tidak terlalu akurat .

Seperti yang dikatakan @Olin Lathrop, jam akurat ini diperlukan pada akhirnya untuk protokol USB atau, untuk melakukan beberapa pengukuran secara berkala ...

M.Ferru
sumber
3

Jawaban lain telah mencakup untuk apa mikro di dalam mouse memerlukan jam. Namun mereka belum membahas bagian terpenting dari pertanyaan: -

Bukankah itu bisa menggunakan jam dari komputer?

Hal pertama yang perlu diperhatikan adalah komputer tidak memberikan jam. Jika tidak ada yang digunakan, Anda tidak bisa menggunakannya. Kecuali jika Anda ingin memasang konektor khusus, tentu saja - tetapi kemudian Anda perlu meyakinkan semua pelanggan potensial Anda untuk memodifikasi komputer mereka secara manual. Kecuali jika pelanggan Anda semuanya ahli elektronik yang sangat hardcore, ini tidak akan menjadi strategi bisnis yang sukses!

Yang lebih penting adalah pertanyaan mengapakomputer tidak memberinya jam. Agar jam cukup cepat untuk menjalankan mikro di mouse, itu harus cukup cepat - beberapa ratus kHz adalah minimum absolut, dan lebih normal Anda naik ke MHz bahkan untuk mik yang sangat tua. 5717 rupanya mengharapkan jam 4MHz. Masalahnya di sini adalah bahwa kecuali Anda sangat berhati-hati tentang konstruksi kabel, sumber sinyal dan tenggelam, dan semua aspek menarik terkait comm digital cepat, apa yang Anda buat ketika Anda meletakkan 4MHz ke bawah kabel adalah pemancar radio. Sangat mungkin untuk melakukan ini dengan baik tanpa penyiaran ke dunia - USB, DVI dan HDMI dapat mengirim data digital dengan kecepatan tinggi - tetapi itu tidak berarti langsung. Jadi orang umumnya tidak mengirim kabel jam panjang kecuali mereka punya alasan bagus untuk melakukannya.

Juga jika memiliki kristal sendiri tidak bisakah itu tidak sinkron dengan jam CPU?

Anda sepenuhnya benar bahwa jika mouse menghasilkan data yang harus dibaca CPU secara serempak, maka mouse akan membutuhkan jam CPU. (Sebenarnya Anda bisa bertahan dengan jam sinkron yang lebih lambat dan berkembang biak di ujung yang lain, tapi mari kita lupakan itu untuk saat ini, untuk kesederhanaan.) Jadi, bukan?

Sekali lagi, melihat sistem, jawabannya jelas "tidak". 5717 mengubah resistansi saat pengguna menggerakkan mouse. Pengguna tidak akan menggerakkan mouse secepat itu, dan pengguna dapat menggerakkan mouse kapan pun mereka mau, jadi tidak ada persyaratan untuk itu harus sinkron-jam. Kasus terburuk, resistensi berubah sebagian melalui CPU membacanya, dan CPU mendapatkan nilai yang lebih rendah atau nilai yang lebih tinggi. Lain kali, resistensi tetap stabil dan CPU mendapatkan nilai akhir. Karena mouse hanya bergerak dengan kecepatan tangan pengguna, tidak ada yang terlalu peduli dengan satu sampel lebih atau kurang untuk mencapai nilai akhir.

Jadi, untuk menjawab pertanyaan Anda dalam urutan terbalik:

  • Tidak masalah jika tidak sinkron dengan jam CPU.
  • Ada alasan teknis yang baik untuk tidak mengirimkan jam CPU kecuali jika benar-benar diperlukan, dan dalam hal ini tidak demikian halnya.
Graham
sumber
Bahkan dengan antarmuka modern, disarankan untuk memindahkan elektronik digital dari peralatan RF . (Dalam kasus khusus itu, menjaga beberapa pemisahan antara hub USB dan transceiver radio amatir.)
CVn