Skip to content

petersieg/Mini-Z80

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mini-Z80

Bild

Nach dem Z80 Tester wollte ich schon lange mal ein richtiges, minimales Z80 System (Einplatinencomputer) bauen. Ein bestimmtes Ziel sollte das System nicht verfolgen. Hauptsache Z80, Rom, Ram und I/O. Ideal zum reinschnuppern und um ggf. mal spaeter mit Logikanalyzer dran zu arbeiten. Trotz alle dem, kann man schon ein Menge aus so einem kleinem System her ausholen. Wuerfel; Mastermind; 4 gewinnt oder im Prinzip sogar ein Schachspiel sollten moeglich sein.

Pin 16,17,24,25 der Z80 CPU an +5V legen - und GND u. VCC ebenfalls nicht vergessen. In der Lektuere "Mikrocomputer selbstgebaut und programmiert" von Rolf Dieter Klein (SEHR empfehlenswert!) und verschiedenen Z80 Systemen aus dem Internet (http://www.z80.info/z80_mp.htm), habe ich mich zu folgender Startkonfiguration entschieden.

Z80 CPU

4093 Oszillator (R=10k; C=1nf; f=ca. 500khz): http://www.janson-soft.de/pe/pek08.pdf

Rom = 27C256 32k Eprom

Ram = 62256 32k SRam

ACHTUNG: Die Eagle PCB enthält Fehler! Bitte PDF lesen und beachten!

EDIT: z80 mini pcb corrected.zip enthaelt eine fehlerbereinigte Version inkl. Elecrow Gerber Dateien. Masse: 100x66mm. ABER!! Diese, korrigierte Version ist NICHT getestet!!

EDIT2: Neue PCB aufgebaut und getestet - alles ist nun ok! Daher bitte NUR die neue PCB verwenden! Anstatt 27C256 sollte sich der Pinkompatible AT29C256 Flash verwenden können. Beim AT28C256 sind Änderungen erforderlich (A14 umlegen + /WE auf +5V legen)

EDIT3: Habe die PCB noch etwas erweitert. Dezimalpunkt ist nun auch angeschlossen. Und Pullup Array am Input Port inkl. GND+VCC. PCB Dateien sind im Mini-Z80-v3.zip. Top+Bot.png zeigen die Änderungen für 28C256. Rot = trennen. Grün = verbinden.

Die beschriebenen Testprogramme sind im z80 mini software.zip

Als Assembler diente der Arnold Assembler: http://john.ccac.rwth-aachen.de:8000/as/

Batch-Datei zum assemblieren:

..\as\bin\as %1 -L

..\as\bin\p2bin %1 -r $-$


Unter Linux ist auch schön geeignet Z80-ASM:

http://wwwhomes.uni-bielefeld.de/achim/z80-asm.html

z80-asm -l test3.asm :test.z80 >test3.lst

Die Datei *.z80 enthält einen 10 Byte Header, den man vor dem Brennen in einem Eprom noch entfernen muss!

#!/bin/sh
dd if=$1.z80 of=$1.bin bs=1 skip=10

File Extensionen (.asm u. .z80) müssen angegeben werden!

Das Paket hat mit z80-mon auch einen schönen Simulator/Debugger.

b2s.c compiliert wandelt eine Binärdatei in Hex-Kommandos für den Arduino Mega EEprommer:

b2s test3.bin >test3.eep => (Waaa:dddddddd...)

Damit kann man auch ohne EEprommer.exe oder Python Script ein Eprom z.B. mittels minicom brennen. (Datei einfügen)


Warum gerade/genau diese Version?

Nun ich wollte einen Z80 Einplatinenrechner:

  • der nur Standardbauteile und keinen programmierbaren Hilfschip (Propeller, AVR, ..) hat. Also nur CPU, Ram, Rom, TTL.
  • der keine Video, Tastatur (z.B. PS/2) und auch keine serielle Anbindung hatte. I/O nur 'statisch' - 8-bit.
  • der Takt sollte ggf. auch weit herunter zu takten sein.
  • er sollte einfach, nachvollziehbar, gut zu testen sein.
  • bare metal programmierbar - ohne Monitorprogramm.

Daher ist er so, wie er ist ;-)

Man kann sich trotzdem z.B. obige Erweiterungen vorstellen. Z.B. sollte es möglich sein, einen AVR an den I/O Port + /IO + /WR + /RD anzuschließen um von dort dann eine serielle Schnittstelle abzubilden. Mit einem Monitorprogramm im Rom, wäre dann serielle Bedienung und Upload von Programmen ins Ram denkbar. Anstatt 7-Segment kann man sich LCD im 4-bit Modus vorstellen etc. pp.

Das evtl. schwieriger zu lokalisierende Bauteile dürfte heute die 7-Segmentanzeige sein. Jede kompatible, baugleiche sollte gehen. Wichtig sind Pinout und gemeinsame Anode. Ich habe zuletzt GNS-3611BD genommen (Wichtig: B!). Ich habe davor von Conrad: Kingbright: SA36-11GWA gruen und SA36-11SRWA rot verwendet (gemeinsame Anode).

7-Segment

8k SRam verwenden (Natürlich hat man dann nur 8KB SRam, der 4x im 32KB Adressbereich gespiegelt ist):

sram

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published