Wenn ich mit einem Z80 CPU ein Standard 16x2 LCD ansteuern will, kann man das direkt machen, oder muss ein PIO Baustein dazwischen?
Wenn er sauber ausdekodiert ist (nicht bei /M1, wegen Interruptanerkennung) sollte es eigentlich kein Problem sein.
ist der Z84C00-06MHZ MS-dos kompatibel? The Extensive Instruction Set.Contains 158 Instructions, Including the 8080A Instructions Set as a Subset
Gegeg J. schrieb: > ist der Z84C00-06MHZ MS-dos kompatibel? MS-DOS erfordert eher 8086/8087. Aber CP/M sollte funktionieren.
:
Bearbeitet durch User
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.
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.
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.
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.
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.
"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:-(
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
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
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.
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
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.
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
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
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.
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ß.
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.
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.
> 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 :-).
Beim ZX81 ging das auch ohne? Z.B. 100Hz nach dem Gleichrichter auf Interrupt...
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.
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.
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
> dass man auch mit einem Z80 die Aufgabe lösen kann.
Z.B. so.
Matthias S. schrieb: > Einen PC mit dem 8086 gab es zumindest von IBM > m.W. gar nicht. Addiere mal ne 2. W.S.
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
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.
> 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...
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.
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.
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
S. R. schrieb: > modernen Smartphones viel besser drin: Rom, Ram, Display, Touch ... > > Und viel besser programmieren lassen die sich auch noch. Wie? Gruss Chregu
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.