LCD an 8bit Bus

Mit dem verlinken geht klar. Habe ja nicht umsonst Copyright-Infos drin ;)

Mein Bussystem kann mit der Taktfrequenz von ZX81 locker mithalten. Im Besten Fall, schafft es bis zu 3,5 MHz. Beim Z80 war ja MEMREQ und IOREQ nötig, da beides auf den gleichen Leitungen liefen. Das brauche ich ja nicht. Mit einer gültigen Adresse und dem RD oder WR wird dann das nötige CS oder Enable-Signal erzeugt. Siehe meinen Erweiterungsmodulen.

Aber nun zurück zum Thema. Welches war es noch gleich? Achso. LCD-Ansteuerung.

@matthias122:
Kannst du mal einen Schaltplan posten, wie du das Display genau angeschlossen hast. Mir ist irgendwie nicht klar, ob du es nur über einen einfachen Port oder als Teil des SRAMs steuern willst.

In meinen Lehrgängen habe ich das unter anderem auch das 204 von EA getestet. Ich hatte da keine Probleme.
 
Hallo,

@matthias122:
Kannst du mal einen Schaltplan posten, wie du das Display genau angeschlossen hast. Mir ist irgendwie nicht klar, ob du es nur über einen einfachen Port oder als Teil des SRAMs steuern willst.

In meinen Lehrgängen habe ich das unter anderem auch das 204 von EA getestet. Ich hatte da keine Probleme.
ich schätze mal, er hat in seiner Schaltung Probleme das Timing des
R/W- und des EX-Pins für die Anzeige zu erzeugen. Die Impulse müssen
nämlich aus der Adressdecodierung erzeugt werden und nicht aus dem
Datenstrom für die Anzeige. Außerdem braucht er eine Adressleitung (A0)
für die Umschaltung der Datten-/Command-Registersätze der Anzeige.

Gruß
Dino
 
Wenn er das LCD wirklich am Speicherinterface hat. Muss er wohl oder übel die Steuerung selbst übernehmen. Das Speicherinterface kann man mit normalen mitteln leider nicht so weit runter bremsen, dass es fürs LCD reicht :(

Verstehe da die Industrie auch nicht. Sollte heutzutage doch möglich sein, kompatible Controller zu entwerfen, die um einiges schneller sind.
 
LCD-Controller

Hallo allerseits,
es geht nicht prinzipiell um das Controller-Design im MC-Interface-Bereich, das ginge auch bis zu Gigahertz-Taktfrequenzen, nein, es handelt sich um die generelle Trägheit der LC-Anzeige.
Damit überhaupt etwas auf dem Display erscheint,
muß ein ständiger Umladeprozeß stattfinden, der die Polarisationsebenen-Drehungs-etc. Effekte bewirkt. Das erreicht man mit einem in mehreren Stufen in Amplitude und Polarität wechselnden Rechteckimpulsmuster. Eine reine Gleichspannungsansteuerung funktionierte wegen der dann noch länger dauern würdenden Umladeprozesse überhaupt nicht mehr einigermaßen zufriedenstellend.
Diese LC-Ansteuerungsimpulsmustergenerierung ist die Hauptaufgabe des Controllers,
das Bus-Interfacing ist dagegen geradezu ein Klacks.
(Mein Display verarbeitet zum Beispiel im Vierbit-Modus noch direkt 9K6-Baud-
serielle Telegramme, ohne Empfangspuffer. Kann maximal mit MCs mit 2 MHz
am Bus direkt kommunizieren.)


Auch halte ich es für unwahrscheinlich, daß bei vierzeiligen Displays nur ein Controller verwendet wird. Das Kriterium ist der eingeschränkte Adressbereich.
Der wird dann auf mehrere Controller pro Zeileneinheit verteilt.
Die meisten Controller sind für 40 Zeichen pro Zeile ausgelegt.
Dann ist der Adressbereich ausgeschöpft. Oder man verwendet sogenannte Expandermodule. Die sind auch direkt mit den meisten Controllern kompatibel.
Hier muß die Ansteuersoftware dann angepaßt werden.
Im einfachsten Falle eben mehrere Enable-(Chip-Select)-Impulse, die den Modulen zugeordnet werden.
Das Datenblatt des tatsächlich verwendeten LCDisplays müßte aber hier ausreichend dokumentieren und Aufschluß geben. (Die Unterschiede sind aber nicht so groß vom Prinzip her.)

Gruß von Oskar01
 

Anhänge

  • frame1.png
    frame1.png
    4,8 KB · Aufrufe: 10
Hi Matthias,

so hier mal meinen schaltplan
:eek: :stupido3: :confused: Au weia !

Das ist weder ein Bus-Betrieb noch eine normale Software-Ansteuerung. :(

Was sollen die NAND-Bausteine vor dem Execute-Anschluß ?
!( !( !( PG0/RD & PG1/WR ) & PC7/A15 ) ) => E

Was soll da rauskommen ?

Außerdem ist der Anschluß Vee nicht mit nem Poti für die Kontrastspannung
verbunden. Kein Wunder das da nix zu sehen ist. Selbst wenn die Initialisierung
funktionieren würde.

Tut mir leid wenn ich das so sagen muß, aber so wird das nix ...
Dabei stehen im Datenblatt der Controller so schöne Beispiele drin.

Gruß
Dino
 
Sorry. Dann ists kein Wunder, dass sogar die Beispiele von meiner Seite nicht funktionieren.

Ich würde raten: Nehme die E-Leitung, hänge diese an einen einzelnen Port. Dann dürften auch die meisten Beispiele, die sich im Netz verstecken, funktionieren. Die entsprechenden Daten-/Steuerleitungen musst du natürlich entsprechend deiner Beschaltung ändern.

warum muss es denn unbedingt am Speicherinterface sein? Das SRAM-Interface muss ja auch per Software noch aktiviert werden.
 
Hallo,

ich will dich nicht ganz im Regen stehen lassen ;)

Hier mal 2 Dateien ...
Anhang anzeigen HD44780_Ulrich_Radig.pdf
Anhang anzeigen HD44780U_Hitachi_LCD-II_60s.pdf

Im Datenblatt des Controllers stehen auf den Seiten 45+46 die 4Bit- und die
8-Bit-Initialisierung.

Bei dem was du vorhattest müßte man folgendes machen damit es läuft ...

=== LCD am externen SRAM-Interface ===
1. Prozessor auf maximal 1MHz takten (wegen Timing - eher 500kHz)
2. ein 74573 Adress-Latch an PA0/AD0..PA7/AD7 => siehe TKRoth seinen
Beetle (für Adress-Speicherung)
3. Datenbus (DB0..7) des LCDs an PA0/AD0..PA7/AD7 (für Daten)
4. PG2/ALE an an CLK des 74573 (Adressen eintakten)
5. Q0 (=Adress-Bit0) des 74573 an RS (Register-Select)
6. PG0 (WR) an LCD R/W
7. Mit nem Adressdekoder (zB 74688) eine passende Adresse aus dem
Speicherbereich suchen und als positiven Decoder(Match)-Puls auf E des
LCDs legen. 74573 Q1..7 und PC7/A15 auf den 74688 legen um in den oberen
SRAM-Bereich (obere 32k-Hälfte) zu kommen. Dann kollidiert man nicht mit
dem internen SRAM.

Das sollte so dann auch am extSRAM-Interface laufen. Aber keine Garantie
da ich mir das grad mal im Kopf zusammengereimt habe. So hab ichs damals
mal an nem ZX-Spectrum (Z80A mit 2,5MHz) zum laufen gebracht.

Damit kann man dann die Register des LCD-Controllers wie SRAM-Zellen
der AVR-CPU ansprechen.

Denn mal viel Spaß :D

Zum Schaltplan malen hatte ich heute keine Lust mehr :sleep:

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)