Forum: Mikrocontroller und Digitale Elektronik Z80 und 16x2LCD PIO erforderlich?


von Gegeg J. (Gast)


Lesenswert?

Wenn ich mit einem Z80 CPU ein Standard 16x2 LCD ansteuern will, kann 
man das direkt machen, oder muss ein PIO Baustein dazwischen?

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Wenn er sauber ausdekodiert ist (nicht bei /M1, wegen 
Interruptanerkennung) sollte es eigentlich kein Problem sein.

von Gegeg J. (Gast)


Lesenswert?

ist der Z84C00-06MHZ MS-dos kompatibel?

The Extensive Instruction Set.Contains 158 Instructions,
Including the 8080A Instructions Set as a Subset

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Gegeg J. schrieb:
> ist der Z84C00-06MHZ MS-dos kompatibel?

MS-DOS erfordert eher 8086/8087. Aber CP/M sollte funktionieren.

: Bearbeitet durch User
von Horst (Gast)


Lesenswert?

Hab ich am Z80 noch nicht gemacht, am 6502 geht es.
Du mußt Dir aus !RD und !WR ein R/!W-Signal basteln und über einen 
Adressdecoder RS und E bedienen und ein wenig auf's timing achten.

von H.Joachim S. (crazyhorse)


Lesenswert?

Hm, direkt am Bus dürfte das nur mit niedrigen Taktfrequenzen des Z80 
funktionieren, da zumindest der HD44780 rel. behäbig ist.
Und da man die Lesefunktion des Displays i.a. gar nicht benötigt, reicht 
auch ein einfaches 8bit-Latch, um das Display im 4bit-Modus unabhängig 
von der CPU-Frequenz zu betreiben statt der riesigen PIO.

von S. R. (svenska)


Lesenswert?

Gegeg J. schrieb:
> Wenn ich mit einem Z80 CPU ein Standard 16x2 LCD ansteuern
> will, kann man das direkt machen, oder muss ein PIO Baustein
> dazwischen?

Hängt vom Rest des Systems ab. Wenn da sonst fast nichts hängt, reicht 
ein Latch, was du mit /IORQ und /WR passend verknotest.

Gegeg J. schrieb:
> ist der Z84C00-06MHZ MS-dos kompatibel?

Nein.

von PittyJ (Gast)


Lesenswert?

Warum sollte man das nur mit Z80 tun? Die Pio ist doch so billig, dass 
die Arbeitszeit für die komplizierte Ansteuerung doch teurer ist, als 
einen Baustein dazwischen zu setzen.

Und warum nimmt man noch eine Z80? Die hatte ich vor knapp 40 Jahren. 
Alles was man heute braucht ist doch in den billigen Atmels o.ä. viel 
besser drin: Rom, Ram, IO ...

Manchmal habe ich das Gefühl, dass hier einige Masochisten unterwegs 
sind. Die Aufgabe muss nicht schnell oder günstig erledigt werden, 
sondern möglichst kompliziert und mit uralten Bausteinen. Andererseits 
fehlt dann dafür schon das Basiswissen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

PittyJ schrieb:
> Manchmal habe ich das Gefühl, dass hier einige Masochisten unterwegs
> sind.
War ja klar, das sowas kommen musste. Wenn jemand Spass daran hat, einen 
SBC mit Z80, ein wenig ROM, Display und evtl. RAM aufzubauen, dann soll 
er das doch tun. Da kann man eine Menge über Adress- und Datenbus lernen 
und gerade beim Z80 mit I/O und Speicheradressraum und seinem guten 
Befehlssatz zu spielen.

von Gegeg J. (Gast)


Lesenswert?

"MS-DOS erfordert eher 8086/8087. Aber CP/M sollte funktionieren."
Klar geht CP/m  aber warum MSdos nicht auf 8080..mein erster IBM PC war 
ein 4,77MHz 8080, 10MB HDD MS-DOS Rechner..
Und da bei dem Z84..nicht Z80  im Datenblatt steht 8080 kompatibel, 
sollte es doch gehen?

Ach ne, sehe gerade das war wohl ein 8088:-(

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Gegeg J. schrieb:
> Ach ne, sehe gerade das war wohl ein 8088:-(

Und der war ein auf 8-bit Datenbus 'halbierter' 8086. Erst der IBM-AT 
führte dann die 'vollen' 16-Bit Datenbus mit dem 8086 ein.
Das gleiche Spielchen mit 'halbem' Datenbus hat Intel dann nochmal mit 
den 'SX' Versionen von 80386 und 80486 gemacht.

: Bearbeitet durch User
von 2^5 (Gast)


Lesenswert?

Matthias S. schrieb:
> Erst der IBM-AT führte dann die 'vollen' 16-Bit Datenbus mit dem 8086 ein.

Jain. Das mit dem 16 Bit Datenbus stimmt, aber beim AT war es schon ein 
80286

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

2^5 schrieb:
> Jain. Das mit dem 16 Bit Datenbus stimmt, aber beim AT war es schon ein
> 80286

Du hast natürlich recht. Einen PC mit dem 8086 gab es zumindest von IBM 
m.W. gar nicht.

von Klaus (Gast)


Lesenswert?

Gegeg J. schrieb:
> Wenn ich mit einem Z80 CPU ein Standard 16x2 LCD ansteuern will, kann
> man das direkt machen,

Wurde früher immer so gemacht. Geht zwar mit einem 6502 leichter, ist 
aber auch mit dem Z80 kein wirkliches Problem. Früher hat man regelmäßig 
68-er Bausteine an einem Intel Bus betrieben (6845 im PC z.B.) und 
umgekehrt. Die SW reduziert sich dann auf OUTs an die richtige Adresse.

MfG Klaus

von S. R. (svenska)


Lesenswert?

PittyJ schrieb:
> Und warum nimmt man noch eine Z80? Die hatte ich vor
> knapp 40 Jahren. Alles was man heute braucht ist doch in
> den billigen Atmels o.ä. viel besser drin: Rom, Ram, IO ...

Warum nimmt man überhaupt Atmels? Alles was man heute braucht ist doch 
in den modernen Smartphones viel besser drin: Rom, Ram, Display, Touch 
...

Und viel besser programmieren lassen die sich auch noch.

von Holm T. (Gast)


Lesenswert?

Horst schrieb:
> Hab ich am Z80 noch nicht gemacht, am 6502 geht es.
> Du mußt Dir aus !RD und !WR ein R/!W-Signal basteln und über einen
> Adressdecoder RS und E bedienen und ein wenig auf's timing achten.

In den Gängigen Datenblättern zum HD44780 finden sich eine direke 
QAnschlußvariante zu Motorola 68xx und 65xx, sowie Anschlußvarianten für 
8080/85 und Z80, jeweils mit direktem Busanschluß ohne PIA/PIO.

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

PittyJ schrieb:
> Warum sollte man das nur mit Z80 tun? Die Pio ist doch so billig, dass
> die Arbeitszeit für die komplizierte Ansteuerung doch teurer ist, als
> einen Baustein dazwischen zu setzen.

Häh?

2 Gatter teurer als ne PIO?

>
> Und warum nimmt man noch eine Z80? Die hatte ich vor knapp 40 Jahren.
> Alles was man heute braucht ist doch in den billigen Atmels o.ä. viel
> besser drin: Rom, Ram, IO ...

Mußt Du nicht wissen, verstehst Du nicht.

>
> Manchmal habe ich das Gefühl, dass hier einige Masochisten unterwegs
> sind.

Ja, sind sie und die wollen das auch so.

> Die Aufgabe muss nicht schnell oder günstig erledigt werden,
> sondern möglichst kompliziert und mit uralten Bausteinen. Andererseits
> fehlt dann dafür schon das Basiswissen.

..wie Dir auch.

Gruß,

Holm

von MaWin (Gast)


Lesenswert?

Gegeg J. schrieb:
> Wenn ich mit einem Z80 CPU ein Standard 16x2 LCD ansteuern will,
> kann
> man das direkt machen, oder muss ein PIO Baustein dazwischen?

Enable muss mindestens 300ns high sein, 100ns vorher muss RS und RW 
gültig sein, bis 10ns später müssen die Daten gültig sein.

Man müsste also bei einem I/O Write cycle /WR als E, /RD als R/W nutzen, 
dann passt es, und M1 bei Adressdcode nicht vergessen.

Gegeg J. schrieb:
> ist der Z84C00-06MHZ MS-dos kompatibel?

Jetzt wird's albern.

von Horst (Gast)


Lesenswert?

PittyJ schrieb:
> Manchmal habe ich das Gefühl, dass hier einige Masochisten unterwegs
> sind. Die Aufgabe muss nicht schnell oder günstig erledigt werden,
> sondern möglichst kompliziert und mit uralten Bausteinen.

So etwas nennt sich Hobby: Maximaler Aufwand bei Minimalem Nutzen.
Hauptsache es macht Spaß.

von Soul E. (Gast)


Lesenswert?

H.Joachim S. schrieb:

> Und da man die Lesefunktion des Displays i.a. gar nicht benötigt, reicht
> auch ein einfaches 8bit-Latch, um das Display im 4bit-Modus unabhängig
> von der CPU-Frequenz zu betreiben statt der riesigen PIO.

Und wie fragst Du Busy ab?

Mit einer worst-case Warteschleife, die den langsamstmöglichen 
HD44780-Clone berücksichtigt, verlierst Du eine Menge Zeit.

von Soul E. (Gast)


Lesenswert?

Gegeg J. schrieb:

> Und da bei dem Z84..nicht Z80  (...)

Z8400 ist die offizielle Bezeichung des Z80 von Zilog. Der von Mostek 
heisst MK3880, der von NEC upD780 und der von MME/FWE U880.

Z84C00-06 das CMOS-Derivat mit bis zu 6 MHz Taktrate.

von ... (Gast)


Lesenswert?

> Und wie fragst Du Busy ab?

> Mit einer worst-case Warteschleife, die den langsamstmöglichen
> HD44780-Clone berücksichtigt, verlierst Du eine Menge Zeit.

Wenn man aufs Busy pollt, verliert man noch mehr (CPU-)Zeit.
Man sollte das LCD daher in/mit einem Timerinterrupt ansteuern.
Daraus ergibt sich dann nahezu zwingend, dass man noch eine
Z80-CTC braucht :-).

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Beim ZX81 ging das auch ohne?

Z.B. 100Hz nach dem Gleichrichter auf Interrupt...

von Peter D. (peda)


Lesenswert?

S. R. schrieb:
> Alles was man heute braucht ist doch
> in den modernen Smartphones viel besser drin: Rom, Ram, Display, Touch
> ...

Nö, da fehlt das Wichtigste, nämlich die IO-Ports. Und wenn man an die 
Chips 5V anlegt, dann qualmen die nur.

von Stefan F. (Gast)


Lesenswert?

S. R. schrieb:
> Warum nimmt man überhaupt Atmels?

Meinst du die Frage ernst?

Zum Beispiel, weil sie billiger sind, weniger Strom verbrauchen, 
robuster sind und wegen dem geringeren Funktionsumfang und der besseren 
Doku leichter und somit auch qualitativ besser programmierbar sind.

Zeige mir mal einen Smartphone-Prozessor, der weniger als 1€ kostet und 
mit einer CR2032 Knopfzelle 5 Jahre lang im Standby läuft.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Stefanus F. schrieb:
> S. R. schrieb:
> Warum nimmt man überhaupt Atmels?
>
> Meinst du die Frage ernst?

Nein, meinte er nicht, die Frage war rein rhetorischer Natur. Er wollte 
lediglich klarstellen, dass man auch mit einem Z80 die Aufgabe lösen 
kann.

: Bearbeitet durch Moderator
von ... (Gast)


Angehängte Dateien:

Lesenswert?

> dass man auch mit einem Z80 die Aufgabe lösen kann.

Z.B. so.

von W.S. (Gast)


Lesenswert?

Matthias S. schrieb:
> Einen PC mit dem 8086 gab es zumindest von IBM
> m.W. gar nicht.

Addiere mal ne 2.

W.S.

von S. R. (svenska)


Lesenswert?

Frank M. schrieb:
> Stefanus F. schrieb:
>> Warum nimmt man überhaupt Atmels?
>> Meinst du die Frage ernst?
> Nein, meinte er nicht, die Frage war rein rhetorischer Natur.

Danke. :-)

W.S. schrieb:
> Matthias S. schrieb:
>> Einen PC mit dem 8086 gab es zumindest von IBM
>> m.W. gar nicht.
> Addiere mal ne 2.

Weil IBM's 5150, 5160 und diverse andere die kastrierte Version vom 8086 
benutzt haben? Stand schon weiter oben im Thread.

: Bearbeitet durch User
von michael_ (Gast)


Lesenswert?

Warum sollte man unbedingt eine PIO nehmen?
Komfortabel würde ich da einen 8212 o.ä. nehmen.

Aber sicher geht es auch ganz ohne Chip.
Aber nur in spartanischen Systemen.

von Doc Snyder (Gast)


Lesenswert?

> Warum sollte man unbedingt eine PIO nehmen?
Weil die den schicken Interrupt Mode 2 vom Z80 kann.

> Komfortabel würde ich da einen 8212 o.ä. nehmen.
Der 8212 ist übler Stromfresser (für seine bescheidenen 8 Bit).
Intelligentere Menschen würden heute wohl was in (74er-)CMOS nehmen.

Und der Gleichrichter in einem ZX81 kann natürlich auch keinen
Interruptvektor erzeugen. Höchtens 100x je s am INT herumpuhlen.
Das wurde genauso kaputtgespart wie der RPI4.
Naja, kommt ja auch aus der gleichen Ecke...

von michael_ (Gast)


Lesenswert?

Doc Snyder schrieb:
>> Komfortabel würde ich da einen 8212 o.ä. nehmen.
> Der 8212 ist übler Stromfresser (für seine bescheidenen 8 Bit).
> Intelligentere Menschen würden heute wohl was in (74er-)CMOS nehmen.

Ich bin aber unintelligent und von Gestern.
Stromverbrauch, war hier nicht die Rede von.
Und du brauchst mehr Bit für so ein Display?

Und such erst mal einen aus der 74er Reihe, welcher auch einen Interrupt 
generieren kann.
Ist hier aber gar nicht nötig.

von Eric B. (beric)


Lesenswert?

Matthias S. schrieb:
> Das gleiche Spielchen mit 'halbem' Datenbus hat Intel dann nochmal mit
> den 'SX' Versionen von 80386 und 80486 gemacht.

Nein, das war nur beim '386. Der '486 hatte sowohl beim SX als beim DX 
den vollen Datenbus. Dem SX fehlte der FPU.

von Rene V. (creep)


Lesenswert?

Hallo,


Gegeg J. schrieb:
> Wenn ich mit einem Z80 CPU ein Standard 16x2 LCD ansteuern will,
> kann
> man das direkt machen, oder muss ein PIO Baustein dazwischen?

klar geht das mit etwas Dekodierung und einem Latch. Funktioniert am Z80 
und 6502:

http://www.nkc-wiki.de/index.php?title=LCD

Tut mir leid, aber hier ist Layout = Schaltplan. Und bitte nicht über 
den Beispielcode lachen. Das war schnell dahinkopiert und ist es 
geblieben.

Gruß, Rene

: Bearbeitet durch User
von Christian M. (Gast)


Lesenswert?

S. R. schrieb:
> modernen Smartphones viel besser drin: Rom, Ram, Display, Touch ...
>
> Und viel besser programmieren lassen die sich auch noch.

Wie?

Gruss Chregu

von S. R. (svenska)


Lesenswert?

Christian M. schrieb:
> Wie?

Mit Verstand.

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.