Auslesen einer Cartridge oder eines Eproms mit dem Arduino

Moderatoren: Sleeπ, andymanone

Antworten
SvenGleich
Beiträge: 4
Registriert: 02.09.2021 07:10
Has thanked: 2 times
Been thanked: 6 times
Kontaktdaten:

Auslesen einer Cartridge oder eines Eproms mit dem Arduino

Beitrag von SvenGleich »

Hallo,

nach den Berichten zum Turbo-Interface habe ich vor einiger Zeit meinen eingestaubten 800 XL wieder an einen Röhrenfernseher angeschlossen und war neugierig, ob meine XC12 Datasette mit eingebautem Turbomodul noch funktioniert. Nun, grundsätzlich habe ich eine Originalversion von Chimera laden können (600 Baud), Turbo-Tapes mit 6000 Baud hatte ich keine mehr. Aber ein Eigenbau-Steckmodul mit einem EPROM 2732 drauf und beschriftet mit Chaos-Lader / Chaos-Copy. Das wollte ich zumindest mal testen, wenn der Rechner schon an war. Es erinnerte mich wehmütig an vergangene Zeiten. Eingesteckt, Reset, nichts. TM2204-Modul in den Modulschacht, Reset, nichts. Modulschacht defekt? Rescue On Fractalus in den Modulschacht, Reset, läuft.

Gut, dann liegt es vielleicht an den Custom-Steckmodulen … So kam mir die Idee, einen EPROM auszulesen. Der 2732 war gesockelt, Datenblatt gesucht, Beschreibungen zum Auslesen recherchiert (Tipp: https://www.rostfrank.de/rt/lex10/rom/2732.html). Adress- und Datenleitungen werden also mit 5 V betrieben. Da kam mir ein Arduino Mega wie gerufen, viele I/O-Leitungen, einfach und schnell zu programmieren, arbeitet mit 5 V und vorerst keine Lötarbeiten. Nur die Leitungen verbinden.
Somit habe ich den 2732 auf ein Breadboard gesteckt, die Leitungen gesteckt und ein Programm geschrieben, welches die Adressleitungen setzt, /OE und /CE schaltet und die Datenleitungen (Datenbits) ausliest. Um das Datenhandling habe ich mir keine Gedanken gemacht, ich gebe die Bytes einfach auf der seriellen Konsole aus (per Copy + Paste kann man die sich abspeichern). Meinen 2732 konnte ich auslesen, der hatte nur noch 0x00 und manchmal eine 0x40 in den Speicherzellen, war wohl mangels nicht korrekter Lagerung (oder statischen Entladungen beim Handhaben?) irgendwann hinüber. Die LEDs auf dem Breadboard waren nur dafür da, zu Testzwecken den Status von /CE und /OE anzuzeigen. Mit einem entsprechenden delay im Code sieht man ein Blinken, bei voller Auslesegeschwindigkeit eher nichts aufgrund der zu hohen Blinkfrequenz.

Blieb noch das TM2204-Modul. Dort war ein 2764 drin, gelötet. Also das Leiterplatten-Layout studiert, Dokumentation zum Modulschacht gesucht (Atari Profibuch) und mich entschieden, eine Adapterbuchse für die Kontaktfahnen am Modul zu bauen. Steckverbinder wollte ich keinen bestellen, habe auf ein altes PC-Mainboard zurückgegriffen, die ISA-Steckplätze scheinen passende Buchsen bereitzuhalten. Herausgesägt, Leitungen angelötet, mit dem Arduino Mega verbunden. Blieb die fehlende /CE-Leitung, die liegt bei meinem Modul nicht direkt auf einem Modulschacht-Pin. Sie war nur zugänglich über einen Logikschaltkreis (4 x 2 Input NAND), dessen Eingangssignale auf /CCTL, PHI2 und RD5 lagen. Nach Aufstellen einer Logiktabelle entschieden, dass ich den /CCTL auf meinen definierten „/CE-Pin“ am Arduino anschließe, PHI2 und RD5 an zwei weitere Ausgänge. Wenn /CCTL und PHI2 low waren und RD5 high war /CE low. Wechselt man RD5 auf low ist /CE high. Mein Programm zum Auslesen erweitert und getestet, lief. Ich konnte nun auch das Modul auslesen, dieses mal 8 Kbyte (2764). Es war nicht defekt, der Speicher lieferte brauchbare Bytes. Der eingesetzte Taster hatte eine kalte Lötstelle. Nachgelötet, eingesteckt, lief.

Vielleicht hat jemand Interesse und braucht irgendwann mal die Möglichkeit, einen EPROM oder ein Modul auszulesen. Bei den Modulen geht nur die einfache Variante, Bankumschaltung und ähnliches nicht. Kann man bestimmt in den Arduino-Code einbauen wenn man weiß, wie die Umschaltung softwaretechnisch über RD4 / RD5 realisiert wird.
Die Lösung ist weit weg von perfekt. Mir kam es nur darauf an, eine einfache Möglichkeit zum Auslesen zu haben. Ich liebäugele damit, mir einen Eprommer zu bauen (oder günstig zu kaufen). Das wird aber noch ein Weilchen dauern.

Anbei Skizzen, Schaltpläne, Tabellen, Fotos, Arduino-Code und Link zu einem Funktionstest https://youtu.be/Gaee3ptEHBo (auf YouTube).
(Getestet habe ich den Arduino-Code in der Arduino IDE 2.0, erstellt mit Hilfe eines LLM.)

Herzliche Grüße, Sven
Dateianhänge
read_atari_cartridge_eprom_2764.zip
(2.27 KiB) 7-mal heruntergeladen
read_atari_eprom_2732.zip
(2.01 KiB) 6-mal heruntergeladen
TM2204_2764_Cartridge_offen.jpg
TM2204_2764_Cartridge_offen.jpg (2.27 MiB) 218 mal betrachtet
Test_mit_2732_b.jpg
Test_mit_2732_b.jpg (2.25 MiB) 218 mal betrachtet
Test_mit_2732_a.jpg
Test_mit_2732_a.jpg (2.4 MiB) 218 mal betrachtet
Arduino_Cartridge_Eprom2764_auslesen_schematic.pdf
(355.21 KiB) 6-mal heruntergeladen
Arduino_Eprom2732_auslesen_schematic.pdf
(844.52 KiB) 5-mal heruntergeladen

Benutzeravatar
mega-hz
Beiträge: 1638
Registriert: 03.11.2021 11:23
Has thanked: 519 times
Been thanked: 575 times

Re: Auslesen einer Cartridge oder eines Eproms mit dem Arduino

Beitrag von mega-hz »

Schöner Beitrag und gut dokumentiert!
keine PN's mehr! Bitte per email kontaktieren! atari1450xld©mega-hz.de

Online
Benutzeravatar
andymanone
Beiträge: 4377
Registriert: 17.08.2021 12:34
Wohnort: Berlin - Suburban
Has thanked: 1103 times
Been thanked: 1836 times
Kontaktdaten:

Re: Auslesen einer Cartridge oder eines Eproms mit dem Arduino

Beitrag von andymanone »

Hey Sven, mein Lieber!!!

Wow!!!

Danke, für deinen coolen Beitrag und toll, dich nach so vielen Jahren hier wieder zu finden 8-) :) !!!

Das letzte Mal waren wir in Kontakt noch über die Webseite/Email-Adresse deiner Uni :o :) , das muss, ich will nicht lügen, aber so Ende der 90´ er gewesen sein :o :roll: ;) ?

Beste Grüße,
andY

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast