Der Retro Chip Tester (kurz: RCT) von Stephan Slabihoud ist ein Chip-Tester, der eine unglaubliche Menge an RAMs, Logik-Chips und anderen Retro-Komponenten testen kann. Das Gute daran ist, dass er auch erschwinglich ist und der Zusammenbau Spaß macht.
Nachdem ich drei Updates übersprungen hatte, dachte ich, dass ein Firmware-Upgrade auf die aktuelle v0.26 nun überfällig war. Dieser Artikel ist eher als Anleitung für mich selbst gedacht, aber vielleicht findest du ihn ja auch nützlich. Es geht hierbei allerdings nur um ein Firmware-Update. Für eine Ersteinrichtung musst du zuerst die Fuses des ATmega setzen, was nicht Teil dieses Artikels ist.
Um dieses Update durchzuführen, habe ich ein Fedora Linux mit installiertem avrdude und einen Microchip PICkit 4 verwendet (einfach weil ich einen zur Hand habe). Andere Programmer funktionieren ebenfalls (siehe die RCT-Dokumentation), vielleicht ist es sogar möglich, dafür einen Raspberry Pi zu verwenden.
Zuerst habe ich den PICkit mit dem ISP-Anschluss des RCT verbunden:
| Signal | PICkit | RCT | |
|---|---|---|---|
| (NC) | ⯈ 1 | ||
| VTG | 2 | ➞ | 2 |
| GND | 3 | ➞ | 6 |
| MISO | 4 | ➞ | 1 |
| SCK | 5 | ➞ | 3 |
| /RESET | 6 | ➞ | 5 |
| MOSI | 7 | ➞ | 4 |
| (NC) | 8 |
Bitte überprüfe zweimal, ob alles richtig angeschlossen ist, da du sonst deine Hardware beschädigen kannst. Entferne auch ein SD-Kartenleser-Modul (falls vorhanden), da es den ISP-Anschluss blockiert.
Laut der Dokumentation darf der RCT nicht gleichzeitig von einer externen Stromquelle und dem Programmer mit Strom versorgt werden. Die VTG-Leitung liefert jedoch keinen Strom, sondern wird vom PICkit als Zielspannungseingang verwendet. Es ist also weiterhin notwendig, den RCT extern mit Strom zu versorgen (z.B. über USB oder einen Hohlstecker).
Ich habe dann die Firmware heruntergeladen und die Zip-Datei entpackt. Nun blieb nur noch, in das Verzeichnis zu wechseln, in dem das Archiv entpackt wurde, und avrdude auszuführen:
avrdude -Cavrdude.conf -v -patmega2560 -cpickit4_isp -Pusb -xmode=avr \
-Uflash:w:Chip-TesterPro-FW-v0.26.hex:i
(Denke daran, die unterste Zeile an deine Firmware-Version anzupassen.) Sollte der folgende Fehler auftreten, führe den Befehl einfach noch einmal aus:
avrdude jtag3_open_common() error: PICkit 4 in PIC mode detected
switching to AVR mode
please run Avrdude again to continue the session
Sollte der Flash-Vorgang fehlschlagen, kannst du das Problem jederzeit beheben und einen weiteren Flash-Versuch unternehmen.
Das AmigaOS bietet eine Debug-Konsole als einfachen Weg zur Fehlersuche. Log-Daten können über die linkbare Debug.lib geschrieben werden, welche auch von allerlei Tools wie MuForce, Mungwall oder PatchWork genutzt wird. AmigaOS stellt einen einfachen internen Debugger namens ROMWack bereit (der in späteren Versionen durch das noch einfachere SAD ersetzt wurde). Aber auch DiagROM schreibt Diagnosedaten über die serielle Schnittstelle, was praktisch ist, wenn ein RAM-Chip oder etwas im Videobereich defekt ist.
Die Log-Ausgabe wird an die serielle Schnittstelle gesendet und kann von einem daran angeschlossenen Terminal gelesen werden. In den guten alten Zeiten konnten sich nicht so viele Bastler ein echtes Terminal oder einen zweiten Computer dafür leisten, also nutzten wir Tools wie Sushi oder Sashimi, um die Debug-Ausgabe in ein Shell-Fenster umzuleiten, was gut funktionierte, solange das System nicht zu hart abgestürzt war.
Heute gehe ich davon aus, dass fast alle Amiga-Besitzer auch einen zweiten Computer zu Hause haben, und sei es nur ein zweiter Amiga. 😉 Dieser Blogartikel handelt davon, wie du deinen Amiga mit deinem Linux-PC verbindest und die Debug-Ausgabe erhältst.
Hardwareseitig benötigst du eine Konstruktion mit einem weiblichen DB25-Anschluss an dem einen Ende und einem USB-Stecker an dem anderen Ende. Ich benutze einen dieser USB-zu-Seriell-Konverter, die in Hardware-Shops für wenig Geld zu finden sind. Sie sind oft mit einem männlichen DB9-Stecker ausgestattet und sollen an Peripheriegeräte (wie Modems) angeschlossen werden. Um sie mit einem Computer zu verbinden, wird ein sogenanntes Nullmodem benötigt, was einfach ein kleiner Adapter ist, der es ermöglicht, zwei Computer direkt miteinander zu verbinden, indem die Sende- und Empfangsleitungen gekreuzt werden. Schließlich brauchen wir einen DB9-zu-DB25-Stecker mit den richtigen Geschlechtern, um das andere Ende des Nullmodems mit dem Amiga zu verbinden.
Dieser Hardware-Stack wird auf der einen Seite an die serielle Schnittstelle des Amiga und auf der anderen Seite an einen USB-Anschluss des PCs angeschlossen. Denke daran, den Amiga auszuschalten, bevor du etwas an die serielle Schnittstelle anschließt. Im Gegensatz zu USB sind die Anschlüsse alter Computer nicht dafür ausgelegt, Geräte anzuschließen oder zu trennen, während das System eingeschaltet ist. Das könnte das System tatsächlich beschädigen!
Softwareseitig müssen wir auf dem Amiga keine Treiber installieren. Die Debug- oder Diagnoseausgabe wird einfach an den seriellen Anschluss gesendet. Unter Linux können wir jeden Terminal-Emulator verwenden. Der bekannteste ist sicherlich minicom.
Die Standardeinstellungen für die serielle Schnittstelle sind 9600-8N1 (9.600 bps, 8 Bits pro Zeichen, keine Parität, 1 Stoppbit). Allerdings wird die Debug-Ausgabe einfach direkt an den seriellen Anschluss gesendet. Wenn du die seriellen Parameter auf der Amiga-Seite geändert hast und das serial.device für etwas anderes verwendet hast, nutzt die Debug-Ausgabe die aktuellen Einstellungen. Handshake muss jedoch in jedem Fall ausgeschaltet sein.
Der vielleicht einfachste Weg ist, eine Datei namens ~/.minirc.amiga mit folgendem Inhalt zu erstellen (ändere den Wert pu port zu deinem tatsächlichen TTY-USB-Gerät):
pu port /dev/ttyUSB0
pu baudrate 9600
pu bits 8
pu parity N
pu stopbits 1
pu rtscts No
pu xonxoff No
Bei vielen Linux-Distributionen muss der Benutzer außerdem zur Gruppe dialout hinzugefügt werden, um auf ein serielles Gerät zugreifen zu können:
sudo usermod -aG dialout $(whoami)
Starte danach einfach minicom mit dem amiga-Profil:
minicom amiga
Jetzt solltest du die gesamte von AmigaOS erzeugte Debug-Ausgabe auf deinem minicom-Bildschirm sehen. Für interaktive Debugger wie ROMWack kannst du auch Befehle in die Konsole eingeben.
Um minicom zu verlassen, drücke STRG-A und dann Q. 😉
Amiga CD32
Im Gegensatz zu anderen Amiga-Modellen hat das CD32 keinen dedizierten RS-232-Anschluss. Stattdessen bietet es eine einfache serielle Schnittstelle am Aux-Anschluss, die intern mit Paulas UART-Pins verbunden ist.
Um einen Adapter zu bauen, benötigst du ein PS/2-Kabel (z.B. von einem Verlängerungskabel oder einem alten PS/2-Eingabegerät) und einen auf MAX3232 basierenden TTL-zu-DB9-Pegelwandler. Diese Wandler findet man auf Online-Marktplätzen für wenige Euro.
Schneide ein Ende des Kabels ab und verbinde die Adern wie folgt mit dem Konverter:
- Pin 2: TXD
- Pin 3 (und die Abschirmung): GND
- Pin 4: VCC
- Pin 6: RXD
Lass die verbleibenden zwei Adern unverbunden und überprüfe die richtige Polarität, bevor du die Adern an den Konverter anschließt!
Das CD32 bietet keine Steuer- und Handshake-Signale, aber glücklicherweise werden diese für Debugging- und Diagnosezwecke nicht benötigt.