Sonntag, 16. Januar 2011

Z80 Computer

Der Z80 ist ein 8-Bit Prozessor aus dem Jahre 1976. Verwendet wird/wurde er z.B. im Nintendo Gameboy, TI-Taschenrechnern und vielen Arcade-Game-Automaten. Er ist leistungsmäßig verlgeichbar mit dem 6502, der in C64 Computern zu finden ist.

Z80 im 40 Pin DIP-Gehäuse

Mein Ziel ist es, einen kleinen funktionsfähigen Computer um diese CPU herum zu bauen. Ich habe mir diesen Prozessor ausgesucht, weil der Chip noch gut für einen Hobbybastler zu "handlen" ist, und auch der Verdrahtungsaufwand - im Gegensatz zu moderneren Chips - relativ gering ist. Die Z80-CPU besitzt einen 8-Bit Datenbus und einen 16-Bit Adressbus. Es können also bis maximal 64kB RAM direkt adressiert werden. In meinem ersten Design soll er mit 1 MHz betrieben werden.

Und dies ist das Pinout des guten Stücks:

Die Ax-Leitungen sind die Adressleitungen, Dx sind die Datenleitungen. An die Phi-Leitung wird der CPU-Takt angelegt.

Für ein Minimalsystem muss ROM und RAM angeschlossen werden. Das ROM enthält den "Bootstrap"-Code, um den Rechner zu starten. In diesem Projekt wird es wohl gleich das ganze Betriebssystem sein :-)
In den RAM können dann weitere Programme aus externen Quellen nachgeladen werden und er wird als Arbeitsspeicher benutzt.

Wird die CPU neu gestartet, liest sie vom Byte an Adresse 0 (dem ersten Byte des Speichers, in diesem Projekt liegt es im EEPROM) an den Speicher aus. Das "Betriebssystem" muss also gleich am Anfang des Speichers liegen. Wie kommt es dort hin? Dafür werde ich einen Mikrocontroller vorsehen, der über eine serielle Schnittstelle mit einem PC verbunden ist. Auf dem PC wird man so die Software entwickeln und kompilieren können, um sie dann in den EEPROM zu schreiben. Der µC wird ebenfalls den RAM lesen und schreiben können. So werde ich dann auch anfangs die Funktion der CPU prüfen können, da sie ja noch keine Schnittstelle zur Aussenwelt hat.

Ich teile das Projekt für den Anfang erstmal auf zwei Karten auf: Die Prozessorkarte, auf der die CPU, der 1MHz-Quarz und Bustreiber sitzen. Auf der anderen wiederum Bustreiber, EEPROM, RAM und der Controller.

Folgende Bauteile habe ich ausgewählt:
  • Zilog Z80 CPU 4MHz
  • 1 MHz Quarz
  • Invertierender Schmitt-Trigger 74HC14
  • Bustreiber 74HC244, 74HC245
  • Controller dsPIC30F4012
  • 8kB EEPROM Atmel 28c64
  • 128kB RAM 628128
  • NAND 74LS00
  • OR 74LS32
...sowie natürlich die obligatorischen 100nF an jedem IC.

Das Ganze werde ich auf Lochrasterplatinen aufbauen und mit Kupferlackdraht verdrahten.

1 Kommentar:

  1. Hallo, in meinem Blog findet ihr auch eine kurze zusammenfassung wie ein Prozessor funktioniert, http://goo.gl/TlJ7v5 <- würde mich über einen besuch freuen. Außerdem findet ihr viele Infos zu Technik Gadgets und vieles mehr :)

    AntwortenLöschen