Forum: Mikrocontroller und Digitale Elektronik Projekt mit Z80


von CE (Gast)


Lesenswert?

Hey^^

Ich muss in der Uni im nächsten Semester etwas mit dem Z80 entwerfen.
Hat vllt. jemand gute Projektideen?


MfG

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

Hmm...

Das Standard-Klischee-Z80-Projekt wäre wohl ein kleines Computersystem, 
aber davon gibt es schon viele. ;)
Ein Computersystem mit (für Z80) außergewöhnlichen Sachen wäre 
vielleicht schon etwas besser.

Spontan würde mir noch ein MP3-Player auf Z80-Basis einfallen - eine 
SD-Karte an einen Z80 zu hängen ist bestimmt interessant. Allerdings 
braucht man dazu wahrscheinlich die (relativ schlecht beziehbare) 
CMOS-Version vom Z80, um genug Datenrate hin zu bekommen.

Eine Retro-VGA-Spielekonsole mit Z80 als CPU wäre vielleicht auch ein 
ganz nettes Projekt. Zumindest, wenn man Spiele dafür hat. Der 
schwierigste Teil davon, nämlich die Grafikkarte, wird aber wohl leider 
nicht so viel mit Z80 zu tun haben, sondern eher auf modernen 
Logik-Chips oder Mikrocontrollern aufbauen.


Ich persönlich bastele gerade das Betriebssystem für mein 
Eigenbau-Z80-System, mit 1MB RAM (4MB Adressraum, Paging), Multitasking, 
Festplatte und später auch Grafikkarte... Das wird ein am x86-PC 
orientiertes System, aufgebaut mit alten Komponenten auf Lochraster. 
Vielleicht wäre diese Richtung ja auch etwas für dich.


Gruß
Jonathan

von (prx) A. K. (prx)


Lesenswert?

Es gibt Leute, die in den letzten Jahren ein komplettes Z80 Retro 
Projekt mit allen Schikanen aufgezogen haben. Wie anno Dunnemal, mit ECB 
Bus und allem Drum und Dran. Die Platinen kann man kaufen: 
http://n8vem-sbc.pbworks.com/w/page/4200908/FrontPage

von Kein Name (Gast)


Lesenswert?


von Kein Name (Gast)


Lesenswert?

Übrigens ... ein echtes Z80 Projekt braucht 1k Widerstände im Datenbus 
zwischen CPU und Ram.
http://nocash.emubase.de/zx80-sch.gif

von Lothar (Gast)


Lesenswert?

CE schrieb:
> Ich muss in der Uni im nächsten Semester etwas mit dem Z80 entwerfen.

Was für eine Uni will sowas? Sind die Intel 4004 aus?

von chris_ (Gast)


Lesenswert?

>Übrigens ... ein echtes Z80 Projekt braucht 1k Widerstände im Datenbus
>zwischen CPU und Ram.

Das glaube ich nicht. Wenn ich es richtig sehe, ist der Schaltplan an 
einen ZX81 angelehnt.

von (prx) A. K. (prx)


Lesenswert?

chris_ schrieb:
> Wenn ich es richtig sehe, ist der Schaltplan an
> einen ZX81 angelehnt.

Wie der Name schon sagt ist das der ZX80. ZX80 und ZX81 sind ja eng 
miteinander verwandt. Der ZX81 hatte aber einen Custom-Chip drauf, der 
einige der TTLs zusammenfasste.

von Frank K. (fchk)


Lesenswert?

Muss es das Original sein, oder darf es auch etwas modernes sein? Schau 
Dir den eZ80F91 an. Das könnte die Basis für eine web-basierte 
Fernsteuerung etc sein.

http://www.zilog.com/index.php?option=com_product&Itemid=26&task=parts&BL=1&familyId=130&productId=EZ80F91AZA&puqs=b3B0aW9uPWNvbV9wcm9kdWN0JnRhc2s9cHJvZHVjdCZidXNpbmVzc0xpbmU9MSZpZD03NyZwYXJlbnRfaWQ9NzcmSXRlbWlkPTU3

fchk

von Kein Name (Gast)


Lesenswert?

Der Custom-Chip war nicht die einzige Änderung - die 1k wurden durch 470 
Ohm ersetzt.
http://emu-docs.org/Sinclair%20ZX80/zx81_sch.png

Wenn schon ein Z80 Projekt, dann aber auch im 80-Jahre Stil. :-)

von Kein Name (Gast)


Lesenswert?

Ich nehme alles zurück. Auf dem Foto sehen sowohl R7-R14 als auch 
R18-R26 nach 1k aus.
http://www.flickr.com/photos/hugo_schotman/37974711/

von Matthias M. (matthias_m69)


Lesenswert?

Die Widerstände im Datenbus waren sehr wichtig. Sinclair hat damals den 
Datenbus auf 0 gezogen um die Bildschirmausgabe zu realisieren. Der Z80 
für NOPs aus währen die Display Logik aus dem ROM die Bitmuster für die 
Buchstaben ausliest. Man hat also das PC Register als Pixelzähler 
missbraucht, und das R Register als Basis für die Bitmaps. Der HALT 
Befehl hat den Prozessor dann bis zum Zeilenende angehalten. So konnte 
man den kompletten Bildschirminhalt dynamisch im RAM halten - man hatte 
ja nur 1k davon.

Der ZX80 war unheimlich gut durchdacht und hat den Heimcomputermarkt in 
Europa erst ermöglicht. Damals gab es nur den Commodore PET und den 
TRS-80, die unbezahlbar waren.

von Magic S. (magic_smoke)


Lesenswert?

Hm, gab's da nicht mal 'ne Türklingel mit Z80 oder war das ein 80486?

Könntest ja einen LED-Cube oder eine Uhr mit dem Ding bauen... das wären 
so die Standard-Projekte.

von Christian B. (casandro)


Lesenswert?

Also wenn Du was mit dem Z80 machst, würde ich vielleicht zu was 
CP/M-artigen raten. CP/M kann man prinzipiell gut an eigene Hardware 
anpassen und es ist inzwischen unter einer halbwegs freien Lizenz 
verfügbar.

Im Prinzip müsstest Du dafür nur die Hardware aufbauen und die BIOS 
Routinen schreiben. Belohnt wirst Du für den Aufwand mit einer Menge 
fertiger Software.

von Ich (Gast)


Lesenswert?

Ne DCF77 Computeruhr wär ein realistisches Projekt.

von CE (Gast)


Lesenswert?

Hey,

danke für die vielen Antworten.
Gleich mal eine Frage an Jonathan:
Wie kannst du einen 4MB Adressraum bei einer 16bit CPU haben? :D Oder 
denk ich gerade falsch? ^^

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

CE schrieb:
> Hey,
>
> danke für die vielen Antworten.
> Gleich mal eine Frage an Jonathan:
> Wie kannst du einen 4MB Adressraum bei einer 16bit CPU haben? :D Oder
> denk ich gerade falsch? ^^

Die CPU ist ja sogar nur 8 Bit, aber mit 16 Bit Adressbus. ;)

Ich hab die CPU "einfach" mit einer Platine voll Logik versehen, die 
immer vier von 256 möglichen 16kByte-Pages in den Adressraum der CPU 
einblendet. Die Software (bzw. der Betriebssystemkernel) kann dann 
selbst bestimmen, wo welcher RAM liegt. So realisiere ich (und auch fast 
jedes andere Multitasking-Betriebssystem) getrennte logische Adressräume 
für die einzelnen Prozesse und bekomme noch dazu einen (für Z80) 
riesigen Speicher. Jeder Prozess kann damit 48kByte Speicher 
gleichzeitig einblenden und nutzen, ohne dass er irgendwie auf andere 
Prozesse Rücksicht nehmen müsste. Die untersten 16kByte sind fest für 
den Kernel vorgesehen, der dort dauerhaft eingeblendet wird.

Schau mal hier: http://de.wikipedia.org/wiki/Paging


Gruß
Jonathan

von Christian B. (casandro)


Lesenswert?

Ich schrieb:
> Ne DCF77 Computeruhr wär ein realistisches Projekt.

Eine DCF77-Uhr braucht ohne µC oder µP weniger Hardware als ein Z80 
Minimalsystem.

von CE (Gast)


Lesenswert?

Interessant wäre schon etwas mit grafischer Oberfläche, wie schon die 
Retro-VGA-Spielekonsole^^
Ein Game wie Snake könnte man sicher selber proggen.

Nur wie löst man am besten den VGA Part?
Der Z80 ist ja nun kein Rechenmonster.

von Magic S. (magic_smoke)


Lesenswert?

Darum gehts hier gerade nicht. Ich hab hier noch ein selbstgebautes 
Minimalsystem mit einem 8088 und 64K RAM. Klar versägt bis auf den 
Speicher jeder ATMega das Ding locker, als einzelner Schaltkreis. Hier 
gehts aber nicht um Effizienz, sondern um die halbwegs sinnvolle 
Verwendung eines Z80.

von Jens (Gast)


Lesenswert?

CE schrieb:
> Ich muss in der Uni im nächsten Semester etwas mit dem Z80 entwerfen.

Wieder ein klassisches Beispiel für eine aktuelle und praxisorientierte 
Ausbildung an unseren Universitäten. Der Prof sollte sich seinen Z80 (am 
besten in der DIL-Variante) in irgendeine Körperöffnung schieben...

von CE (Gast)


Lesenswert?

Vllt. verstehst du es auch einfach nicht Jens? ;)

von Frank K. (fchk)


Lesenswert?

CE schrieb:
> Interessant wäre schon etwas mit grafischer Oberfläche, wie schon die
> Retro-VGA-Spielekonsole^^
> Ein Game wie Snake könnte man sicher selber proggen.
>
> Nur wie löst man am besten den VGA Part?
> Der Z80 ist ja nun kein Rechenmonster.

Der Z80, den ich Dir vorgeschlagen habe, läuft mit 50 echten MHz und 
kann 16 MByte RAM adressieren und ist dabei auf Wunsch sogar noch 
binärkompatibel mit dem alten Z80. Du kannst natürlich auch den linearen 
Modus einschalten und hast dann 24 Bit Register und noch einige andere 
Nettigkeiten mehr. Damit solltest Du schon einiges machen können.

Statt VGA nimmst Du besser ein TFT und hängst einen TFT-Controller von 
Epson 
(http://vdc.epson.com/index.php?option=com_docman&task=cat_view&gid=4&Itemid=435) 
oder Solomon Systech (www.solomon-systech.com) dran.

fchk

von Wilhelm F. (Gast)


Lesenswert?

CE schrieb:

> Hat vllt. jemand gute Projektideen?

Wie komplex bzw. aufwändig sollte es denn sein?

Im Grunde kann man vieles machen, was heute moderne µC auch können. 
Allerdings mit externen Peripheriebausteinen. Für sowas bietet sich 
gerne ein Rack für Europakarten-Einschübe an, wo man dann die 
verschiedenen Baugruppen gliedert, z.B. Zentralrechner, Memory, I/O, 
Peripherie, usw..

Der MFA-Computer war mal sowas, allerdings mit 8085, aber das ist sehr 
ähnlich.

Was heute ein kleiner µC kann, dafür brauchte man damals mal eben ein 
ganzes 19-Zoll-Rack.

Wenn ich mal sowas zu tun hatte, dann atmete ich aber auch erst mal tief 
durch, und dachte: Was ist für mich als Einzelperson vernünftig 
realisierbar? Bloß nicht was, was mich vor Aufwand noch mal an die Wand 
knallt. Manche neigen ja dazu, sich realitätsfremd voll zu übernehmen, 
bis sie es näher mit den Details zu tun bekommen.

Den MFA-Computer sah ich selbst noch. Da bauten Studenten mal jeweils 
einen Einschub für, aber nicht einer alleine den gesamten Klotz. Da 
machte einer die Windgeschwindigkeitsmessung und Windrichtung, der 
andere die Temperatur und Luftdruck, der nächste die Luftfeuchte, andere 
wiederum das Betriebssystem oder den Zentralrechner mit dem Speicher.

Eine selbst gebaute Z80-Karte ohne Betriebssystem und einfach Assembler 
programmiert, sowas bekommt man in zwei Wochen hin.

von Thomas P. (thomas_p83)


Lesenswert?

Hallo,

Ich habe nicht die geringste Ahnung aber wie wäre es irgendwas mit 
Röhren.
http://pct-server.de/~stephan/~hpage/images/1002574.jpg
Allerdings nicht nur die Zeit sondern dann auch etwas andere Daten.

Sowas finde ich extrem Schick.
Es gibt wohl auch Röhren die Buchstaben anzeigen.
Evtl kann man per Tastatur Nachrichten hinterlegen.

Keine Ahnung ob das irgendwie ausreicht, oder überhaupt damit 
realisierbar ist :)

Mit freundlichen Grüßen

von CE (Gast)


Lesenswert?

@Frank: Mit den 50Mhz lässt sich sicher mehr umsetzen, wobei die 
Komplexität doch schon wieder um einiges höher ist. Allein wenn ich 
schon 40 Pins vs 144 Pins sehe. Zumal nicht sicher ist, ob wir den 
benutzen dürfen aber ich will es mal nicht abschreiben!

@ Wilhelm: Tja wie komplex ist schwer zu sagen.
Wenn man nach ein paar Tagen schon fertig ist, dann wäre es eigentlich 
zu einfach nur Monate soll es halt auch nicht dauern.
Vllt. sollte man sich doch lieber erstmal ein "0815" Projekt aussuchen. 
Zum einen fehlt mir die Erfahrung beim Z80 und wenn es dann mal Probleme 
gibt (warum auch immer) soll die Sache nicht gleich zu groß ausarten.

von Kein Name (Gast)


Lesenswert?

> CE fragte: Nur wie löst man am besten den VGA Part?
Natürlich so. http://justc.de/2012/06/hochhaus-tetris/

Die Nixi Röhren finden viel zu viele Leute extrem Schick. Die werden zu 
Preisen gehandelt - da kann der normale Bafög Empfänger nur in die Röhre 
schauen.

von Magic S. (magic_smoke)


Lesenswert?

In ein paar Tagen baust Du kein Z80-System von Null auf. Da wäre die 
Hardware, anschließend die Programmierung. Für letzteres wirst Du 
wahrscheinlich Assembler brauchen, und damit dauerts schon ein wenig bis 
da ein paar LED-Segmente oder was immer Du nun betreiben willst 
aufleuchten.

von Frank K. (fchk)


Lesenswert?

CE schrieb:
> @Frank: Mit den 50Mhz lässt sich sicher mehr umsetzen, wobei die
> Komplexität doch schon wieder um einiges höher ist. Allein wenn ich
> schon 40 Pins vs 144 Pins sehe. Zumal nicht sicher ist, ob wir den
> benutzen dürfen aber ich will es mal nicht abschreiben!

Die Komplexität ist eher geringer. Du hast nämlich schon etliches 
eingebaut, wie Timer, serielle, I2C, SPI Schnittstellen und 256k Flash. 
Das müsstest Du sonst als separate Bausteine anschließen und dabei für 
die richtige Decodierung sorgen. Auch Interruptcontroller etc sind 
dabei. Es wird also eher einfacher. Lass Dich nicht durch die vielen 
Pins ins Bockshorn jagen.

Und das wirklich schöne sind die Debugmöglichkeiten per USB- oder 
Ethernet Debug-Probe. Das erleichtert die Sache enorm, und das hast Du 
bei den alten Bausteinen nicht. Und den C-Compiler und das 
Echtzeitbetriebssystem bekommst Du auch so von Zilog.

Der einzige Nachteil kann die fehlende Lochrasterkompatibilität und die 
3.3V-Technik sein. Wobei heutzutage so gut wie alles auf 3.3V läuft.

Wenn man Euch den eZ80 verbietet, schau mal, ob Du den Z180 verwenden 
darfst. Den gibts mit 10 MHz Takt und im 68 Pin PLCC-Gehäuse, d.h. mit 
dem passenden Sockel kannst Du den lochrastern. Der hat auch vieles 
eingebaut, was Du sonst extern hinzufügen musst. Das ist zwar auch ein 
"klassischer" Prozessor, wie Zilog sich ausdrückt, aber doch etwas 
fortgeschrittener.

Wie gesagt, wenn Du die Wahl hast, nimm den eZ80.

fchk

von Magic S. (magic_smoke)


Lesenswert?

Ich glaube die Verwendung von supergepimpten Z80-Varianten verstößt 
gegen den Grundsatz der Nostalgik.

von Frank K. (fchk)


Lesenswert?

magic smoke schrieb:
> Ich glaube die Verwendung von supergepimpten Z80-Varianten verstößt
> gegen den Grundsatz der Nostalgik.

Ja und? Spielt das bei seiner Projektarbeit an der Uni eine Rolle? Aus 
meiner Uni-Erfahrung sage ich: mit Sicherheit nicht. Es muss 
funktionieren, es muss eine gewisse fachliche Tiefe haben, und es muss 
später 1a dokumentiert sein.

fchk

von (prx) A. K. (prx)


Lesenswert?

Matthias M. schrieb:
> Man hat also das PC Register als Pixelzähler missbraucht,

Nope, der war für die Adressierung des Displayspeichers im RAM 
zuständig. Zeichenweise, nicht pixelweise. Das adressierte Zeichen 
landete zusammen mit einem diskreten Pixelzeilenzähler auf den 
ROM-Adressen, und das lieferte dann die Pixel.

Rein "zufällig" hat der M1 Zyklus 4 Takte, was zusammen mit dem 
doppelten Ursprungstakt grad für 8 Pixel reicht.

> und das R Register als Basis für die Bitmaps.

Das R Register diente auch als Interrupt-Quelle, um den Strom von NOPs 
oder HALTs passend zum Sync abzubrechen.

> Der ZX80 war unheimlich gut durchdacht

Yep. Als ich zusammen mit einem Freund dieses Funktionsprinzip 
entschlüsselt hatte war ich auch ziemlich geplättet.

von Jobst M. (jobstens-de)


Lesenswert?

Also ich würde damit einen Druckerpuffer aufbauen. Centronics ... :-)

Schau Dir mal das Buch 'Z80 Anwendungen' von Coffron an. Habt Ihr 
bestimmt in der Bücherei.


Gruß

Jobst

von Helge A. (besupreme)


Lesenswert?

Noch eine Projektidee..

Terminal "Handy-Style": Westentaschengroß, kleine Tastatur und kleines 
LCD?

Das dürfte in der einfachsten Grundversion wohl in ein paar Wochen 
machbar sein.

Läuft das Teil erstmal überhaupt, gibt es ja noch Spielereien wie 
verschiedene Terminalemulationen, Graphik, kleiner Logikanalysator oder 
ähnlich. Die Komplexität läßt sich beliebig auswalzen, falls du zu 
schnell fertig wirst.. ;)

von Manfred B. (manib)


Lesenswert?

Hi,

mein Bruder und ich hatten mal ein Lauflicht mit einem Z80 aufgebaut mit 
32k ROM, 32k RAM ,IO-Port (8255) und eine LED-Anzeige (7x60 LEDs):
http://manib.ma.funpic.de/de/uwe/LAUFSCHRIFT.HTM

Ciao,
ManiB

von Erich (Gast)


Lesenswert?


von Claus H. (Firma: 🪄 Hokuspokus 🪄) (hottab) Benutzerseite


Lesenswert?

CE schrieb:
> Hat vllt. jemand gute Projektideen?

Die interessante Z80-Idee fand ich einst hier:
http://www.jdm.homepage.dk/z80boot.htm
Es ist die minimalste Z80-Variante, die ich kenne.

Die Z80V20.PAS zu analysieren, war schon etwas knifflig, obwohl sie gut 
kommentiert ist.

Zitat JDM:
Z80 system without ROM. Using NMI, RESET and CLOCK to bootload.

von Matthias Kattelmann (Gast)


Lesenswert?

Für die UNI?
Da soll wohl am besten hinterher so richtig der Intellekt durchscheinen, 
was?
Es gibt zum Beispiel Forth Systeme für Z80.
Z80 vielleicht deswegen, weil jemand den Assembler Code lesen kann.
Außerdem hat der Z80 einen unkomplizierten verständlichen Bus.
Fast alles, was es in anderen Computersystemen auch gibt.
Forth geht gut für Robotik und Astronomie.
Ansonsten wird überall C favorisiert.
Auf jeden Fall ist gute Dokumentation vonnöten.
Mit Motorik könnte man einen Projektor bauen, oder so eine "Wischeruhr" 
mit LEDs.
Oder etwas robotisches.
Etwas mit Nutzwert wäre z.B. eine Steuerung für eine 
Aquariumsbeleuchtung/Heizung/Fütterung.
Guten Eindruck macht eine leichte Benutzbarkeit des fertigen 
Produkts/was für die Augen/Finger.
Ein kompletter Computer, z.B. für die universelle Steuerung oder 
Verarbeitung von elektrischen Zuständen, mit Klemmen an Platine, wäre 
brauchbar und realisierbar, evtl. ein Morsecodegenerator, oder ein 
Signalgenerator(Funktionsgenerator), ein Schaltgerät für elektrisches 
etc..
Viel Erfolg.

MfG

von Michael_ (Gast)


Lesenswert?

Claus H. schrieb:
> Es ist die minimalste Z80-Variante, die ich kenne.

Nö, es ist immer noch die Melodieklingel nach FuA.
Aber ich glaub, die benutzt NMI.

von Claus H. (Firma: 🪄 Hokuspokus 🪄) (hottab) Benutzerseite


Lesenswert?

Michael_ schrieb:
>> Es ist die minimalste Z80-Variante, die ich kenne.
JDM: "Z80 system without ROM"
> Nö, es ist immer noch die Melodieklingel nach FuA.
Diese war mit U880, EPROM 555 o. 2716, Takt u. diversen Bauelementen 
bestückt:
0000: LD IY, LIEDTBL ; Zeiger auf Liedertabelle - 013CH ?

>Aber ich glaub, die benutzt NMI.
Ja, der Klingelknopf löst über R vom D-Flip-Flop D174 (zum Entprellen)
einen NMI aus. Ab 66H, NMI: LD A,(IY+0) beginnt das "Musikprogramm".

Bei dem JDM-System ist keine Z80-Software nach dem Einschalten
vorhanden, dafür wird ein 6116 (2K X 8 SRAM) mit dem Bootlader
vom Host aus beschrieben. Ein großer Nachteil ist der Takt vom PC.
Ein Taktgeber kann bei Bedarf nachgerüstet werden.

Es kommt mir nicht auf die minimalste Hardware (CPU + RAM) an.
Leiterplatten kupfern und EPROM's, bzw. Programme duplizieren,
kann fast jeder hier. Man sollte auch mal "quer" denken, wie JDM,
um die Funktionsprinzipien zu verstehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.