Pembaruan : implementasi praktis ini dilakukan dalam proyek Tapuino yang dibuat oleh Peter Edwards. Lihat, semuanya bersumber terbuka: https://github.com/sweetlilmre/tapuino
Saya sedang mengerjakan proyek di mana saya menggunakan Arduino saya untuk melakukan streaming file data TAP tape dari PC saya ke C64. Sisi perangkat lunak dari proyek ini berjalan dengan baik namun saya masih baru di bidang elektronik dan saya tidak suka menggoreng Commodore saya. Jadi saya butuh bantuan antarmuka perangkat keras sebenarnya.
Kaset C64 menggunakan modulasi PWM untuk menyimpan program pada kaset dan saat membaca kembali data pemicu opamp + schmitt mengubah sinyal audio menjadi gelombang persegi. Setiap transisi tinggi-rendah memicu interupsi di mesin dan jarak antara dua interupsi (yang merupakan panjang pulsa) mewakili bagian atom dari aliran.
Pinout port kaset terlihat seperti ini (bagian atas dan bawah memiliki pin yang sama dua kali):
A-1 , GND, Ground
B-2 , + 5V, 5 Volt DC
C-3 , MOTOR, Kontrol Motor, kira-kira. Catu daya 6 Volt motor
D-4 , BACA, Input Data, baca data dari dataset
E-5 , MENULIS, Output Data, menulis data ke dataset
F-6 , SENSE, Detection, jika salah satu tombol MAIN, REKAM, F. FWD atau REW ditekan
Ide saya saat ini adalah sebagai berikut:
Berdasarkan C64 Interfacing Blue Book (mulai dari halaman 29) mesin menggunakan level TTL pada port READ dan WRITE jadi saya kira saya dapat langsung menghubungkan pin PWM dari Arduino ke pin READ.
Saya juga perlu berinteraksi dengan pin SENSE. Saya pikir saya dapat langsung menghubungkan itu juga ke salah satu PIN digital dan menulis RENDAH digital di sana ketika saya perlu sinyal keadaan tombol ditekan. Apakah itu benar?
Kemudian saya ingin mendeteksi keberadaan sinyal + 6V pada pin MOTOR. Beberapa loader menghentikan dataset di tengah proses pemuatan sehingga saya harus mendeteksi itu juga untuk meniru rekaman dengan benar. Haruskah saya menggunakan semacam resistor untuk membatasi arus di sana atau dapatkah saya menghubungkannya secara langsung juga? Mungkin saya harus menggunakan relay di sana?