Aggiornamento : un'implementazione pratica di questo viene fatta nel progetto Tapuino realizzato da Peter Edwards. Dai un'occhiata, tutto è open source: https://github.com/sweetlilmre/tapuino
Sto lavorando a un progetto in cui sto usando il mio Arduino per trasmettere in streaming i file di dati del nastro TAP dal mio PC al C64. Il lato software del progetto sta andando bene, ma sono ancora nuovo nell'elettronica e non mi piace friggere il mio Commodore. Quindi ho davvero bisogno di aiuto per l'interfacciamento hardware.
I nastri C64 utilizzano la modulazione PWM per memorizzare il programma su nastro a cassetta e sulla lettura dei dati un trigger opamp + schmitt converte il segnale audio in onde quadrate. Ogni transizione alto-basso fa scattare un interrupt nella macchina e la distanza tra due interrupt (che è la lunghezza dell'impulso) rappresenta una parte atomica del flusso.
La piedinatura della porta della cassetta si presenta così (la parte superiore e quella inferiore hanno gli stessi pin due volte):
A-1 , GND, Terra
B-2 , + 5 V, 5 Volt CC
C-3 , MOTORE, Controllo motore, ca. Alimentazione a 6 Volt del motore
D-4 , LEGGI, Inserimento dati, leggi i dati dal set di dati
E-5 , WRITE, Output dei dati, scrivere i dati nel set di dati
F-6 , SENSE, Detection, se viene premuto uno dei tasti PLAY, RECORD, F.FWD o REW
La mia idea attuale è la seguente:
Basato sul C64 Interfacing Blue Book (a partire da pagina 29), la macchina utilizza il livello TTL sulla porta READ e WRITE, quindi immagino di poter collegare direttamente un pin PWM dall'Arduino al pin READ.
Devo anche interfacciarmi con il pin SENSE. Penso di poterlo collegare direttamente anche a uno dei PIN digitali e scrivere LOW digitale lì quando devo segnalare lo stato del pulsante premuto. È corretto?
Successivamente desidero rilevare la presenza del segnale + 6V sul pin MOTORE. Alcuni caricatori interrompono il set di dati nel mezzo del processo di caricamento, quindi devo rilevare anche questo per emulare correttamente il nastro. Dovrei usare un qualche tipo di resistenza per limitare la corrente lì o posso anche collegarlo direttamente? Forse dovrei usare un relè lì?