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.
Z80 NOP Generator
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.
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 hier die Gerber-Daten und den Quellcode zum Download.
6502 NOP Generator
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).
Anstelle eines teuren ZIF-Sockels kann auch ein Präzisionssockel verwendet werden. Die Bauteilkosten liegen jeweils bei ca. 5-6 EUR zzgl. Platine. Sofern ich noch Platinen übrig habe, gebe ich die gerne zum Selbstkostenpreis ab. Über eine Rückmeldung würde ich mich sehr freuen. Auch Verbesserungsvorschläge sind sehr willkommen.
Wer den 6502 CPU NOP-Generator nachbauen möchte findet hier die Gerber-Daten und den Quellcode zum Download.
Pingback: 6502 and Z80 CPU Testers | Zuzebox's Blog