Z80 / 6502 CPU NOP-Generator zum Selberbauen

Oft steht man vor dem Problem schnell die CPU eines nicht funktionierenden Computers testen zu wollen. Zwar kann man diese auch in einen anderen Computer einbauen und so prüfen, ob dieser mit der CPU startet, aber bequem ist anders.

Mit einem NOP-Generator ist es möglich schnell optisch zu prüfen, ob eine CPU generell noch in der Lage ist Kommandos auszuführen. Der Generator liefert der CPU bei jedem Speicherzugriff ein NOP („No Operation“) Kommando, d.h. im Idealfall zählt die CPU einfach die Adressen hoch. Durch LEDs wird dabei der Zustand der Adressleitungen visualisiert. Zählen die Adressen binär hoch, was gut an den LEDs zu verfolgen ist, ist die CPU mit hoher Wahrscheinlichkeit in Ordnung. Leuchten nach einem Reset einige LEDs dauerhaft (oder auch gar nicht), ist die CPU sehr wahrscheinlich defekt.

Das folgende Video zeigt, wie der Test für eine funktionsfähige CPU aussieht.

Z80 CPU NOP-Generator

Der hier vorgestellte NOP-Generator funktioniert nur mit Z80 CPUs. Da die CPU sehr langsam getaktet wird, weit außerhalb der Spezifikation, ist es durchaus möglich, dass auch eine eigentlich funktionsfähige CPU nicht mit dem NOP-Generator funktioniert. Die Funktionsweise ist sehr einfach: Die Datenleitungen werden durch Pull-Down-Widerstände auf Masse gezogen, so dass die CPU bei einem lesenden Speicherzugriff ein NOP (Opcode 0x00) liest. Nach einem Reset fängt die CPU an diese Kommandos ab Adresse 0 auszuführen.

Wer den Z80 CPU NOP-Generator nachbauen möchte findet am Ende des Beitrags die Gerber-Daten zum Download. Benötigt werden nur ein paar wenige Bauteile:

Ref Qnty Value Bemerkung
C1 1 1uF
C2 1 10nF
C3 1 10uF
D1-D8 8 LED 5mm
J1 1 USB_B_Micro 2pol. USB Stecker
R1-R5 5 10K
R6 1 1K
R7 1 3.3K
RN1 1 4,7K SIP 9 oder SIP 10 (letzter Widerstand wird nicht benötigt)
RN2 1 470 SIP 9 oder SIP 10 (letzter Widerstand wird nicht benötigt)
RV1 1 10K Potentiometer RM-065
SW1 1 RESET 6mm Push Button
U1 1 Sockel DIP40 ZIF oder Präzisionssockel
U2 1 NE555

Eine ähnliche Platine habe ich auch für die 6502 CPU vorbereitet. Der 6502 NOP Generator liefert den Opcode 0xEA, welches einem NOP beim 6502 entspricht. Nach einem Reset beginnt der 6502 NOP-Generator ab Adresse 0xEAEA zu zählen (nach einem Reset liest die CPU aus den Adressen 0xFFFC-0xFFFD die reale Startadresse ab und da diese immer 0xEA liest, ist dieses die 0xEAEA). Die LEDs sollten somit bei 11101010‬ beginnen zu zählen.

Das folgende Video zeigt, wie der Test für eine funktionsfähige CPU aussieht. Sehr schön zu sehen ist, wie nach dem Reset zuerst auf die Adressen 0xFFFC und 0xFFFD zugegriffen wird (davor noch ein wenig Initialisierung der CPU), um danach ab 0xEAEA zu zählen (LEDs: FC, FD, E9, E7, EA, E9, FD, [FF]FC, [FF]FD, [EA]EA, EB, EC, ED, EE, EF, F0, F1…, in eckigen Klammern die oberen 8 Bits zum Verständnis ergänzt).

6502 CPU NOP-Generator

Wer den Z80 CPU NOP-Generator nachbauen möchte findet am Ende des Beitrags die Gerber-Daten zum Download. Benötigt werden nur ein paar wenige Bauteile:

Ref Qnty Value Bemerkung
C1 1 10nF
C2 1 10uF
C3 1 1uF
D1-D8 8 LED 5mm
J1 1 USB_B_Micro 2pol. USB Stecker
R1 1 1K
R2 1 3.3K
R3-R15 5 10K
RN1 1 470 SIP 9 oder SIP 10 (letzter Widerstand wird nicht benötigt)
RV1 1 10K Potentiometer RM-065
SW1 1 RESET 6mm Push Button
U1 1 NE555
U2 1 Sockel DIP40 ZIF oder Präzisionssockel

Anstelle eines teuren ZIF-Sockels kann auch ein Präzisionssockel verwendet werden. Die Bauteilkosten liegen jeweils bei ca. 5-6 EUR zzgl. Platine. Über eine Rückmeldung würde ich mich sehr freuen. Auch Verbesserungsvorschläge sind sehr willkommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.