Update : Eine praktische Umsetzung erfolgt im Tapuino-Projekt von Peter Edwards. Probieren Sie es aus, alles ist Open Source: https://github.com/sweetlilmre/tapuino
Ich arbeite an einem Projekt, in dem ich mit meinem Arduino TAP-Banddatendateien von meinem PC auf den C64 streame. Die Software-Seite des Projekts läuft gut, aber ich bin noch neu in der Elektronik und ich mag es nicht, meinen Commodore zu braten. Also brauche ich eigentlich Hilfe bei der Hardware-Schnittstelle.
C64-Bänder verwenden PWM-Modulation, um Programme auf Kassetten zu speichern und beim Zurücklesen der Daten ein Opamp + Schmitt-Trigger wandelt das Audiosignal in Rechteckwellen um. Jeder High-Low-Übergang löst einen Interrupt in der Maschine aus, und der Abstand zwischen zwei Interrupts (dh die Länge des Impulses) repräsentiert einen atomaren Teil des Stroms.
Die Pinbelegung des Kassettenanschlusses sieht folgendermaßen aus (die obere und die untere Seite haben zweimal die gleichen Stifte):
A-1 , GND, Masse
B-2 , + 5 V, 5 Volt Gleichstrom
C-3 , MOTOR, Motorsteuerung, ca. 6 Volt Stromversorgung des Motors
D-4 , READ, Dateneingabe, Daten aus der Datasette lesen
E-5 , SCHREIBEN, Datenausgabe, Daten in Datasette schreiben
F-6 , SENSE, Detection, wenn eine der Tasten PLAY, RECORD, F.FWD oder REW gedrückt wird
Meine aktuelle Idee ist folgende:
Basierend auf dem C64 Interfacing Blue Book (ab Seite 29) verwendet das Gerät den TTL-Pegel am READ- und WRITE-Port, sodass ich einen PWM-Pin vom Arduino direkt mit dem READ-Pin verbinden kann.
Ich muss auch mit dem SENSE-Pin verbinden. Ich denke, ich kann das auch direkt mit einer der digitalen PINs verbinden und dort digital LOW schreiben, wenn ich den Status einer gedrückten Taste signalisieren muss. Ist das korrekt?
Später möchte ich das Vorhandensein eines + 6V-Signals am MOTOR-Pin feststellen. Einige Lader stoppen den Datensatz mitten im Ladevorgang, daher muss ich dies ebenfalls erkennen, um das Band korrekt zu emulieren. Sollte ich einen Widerstand verwenden, um den Strom dort zu begrenzen, oder kann ich das auch direkt anschließen? Vielleicht sollte ich dort ein Relais verwenden?