Hallo, warum befindet sich ab und zu noch ein Latch oder ein Octal Bus Transceiver zwischen dem LCD Controller und dem eigentlichem µC? Ich möchte gern eine Verbindung vom µC über den Datenbus herstellen. Olaf
Ein Mikroprozessor hatte noch keine eingebauten Ports, da mußte man den Port noch mit einem externen Register nachrüsten. Für ein Speichererweiterung zum Beispiel am ATmga8515 macht man das immer noch, da die Portleitungen nicht für 8 Daten und 16 Adressleitungen plus RD,WR,CE reichen würden.
d.h. um einen größeren Addressraum realisieren zu können... also wenn der µC den Daten- und Addressbus hat (von der größe her), dann braucht man auch nichts dergleichen dazwischen zu schalten... sondern dann gehts direkt vom µC zum LCD-Display...
installiert man bei jedem Out/Input beim LCD auch einen 10kOhm Pulldown-Widerstand zu GND, um die logische 0 sicher zu bekommen?
Man kann ein Text-LCD auf mehrere Arten anbinden. - Mit normalen I/O-Ports, wie bei AVRs meist der Fall. Dann meist in der 4bit-Variante um Pins zu sparen. - Als Peripheriebaustein an einem externen Adress/Daten-Bus, so vorhanden. Für diese Variante ist so ein HD44780 ursprünglich konzipiert worden. Dann meist in der 8bit-Variante. Ein externer Bus überträgt oft Adressen und Daten auf den gleichen Leitungen, um Pins zu sparen. Im Jargon ist das ein gemultiplexter Bus. Will man Flash-ROMs oder SRAMs daran anschliessen, muss man die Adressleitungen erst einmal aus diesem Multiplexbus rausfischen. Dazu dient das externe Latch, meist vom Typ '573. Zudem kann man mit externen Registern oder Latches fehlende Portleitungen nachrüsten. Auch das kommt hier in Frage.
> installiert man bei jedem Out/Input beim LCD auch einen 10kOhm > Pulldown-Widerstand zu GND, um die logische 0 sicher zu bekommen? Wozu 0? Die Datenleitungen eines Text-LCD werden vom LCD-Controller selbst schon auf 1 gezogen, um offene Eingänge mit einem sauberen Pegel zu versorgen - was im 4bit-Modus nötig ist. Einzig bei E könnte man theoretisch dran denken, es bis zur Initialisierung des Controllers auf 0 zu ziehen um irgendwelche Zufallswirkungen auszuschliessen. Ist aber effektiv überflüssig.
Mit diese Pulldowns will der Autor wahrscheinlich erreichen, dass alle Anschlüssen im offenen Zustand einen sauberen 0-Pegel haben. Ironischerweise erreicht er damit dank der internen Pullups (50-250µA) genau das Gegenteil.
Noch ein Grund, ein Latch zu verwenden: Bei µP kann es durchaus vorkommen, dass das Timing auf dem Bus einfach zu schnell für das LCD ist. In diesem Fall kann man mit dem Latch die Signale etwas strecken.
wie nennt sich denn die Zeit, welche besagt, in welchem Rhythmus das LCD Signale an seinen Inputs bzw. Datenbus verarbeiten kann? Olaf
> Welche internen Pullups?
HD44780 und KS0066 haben auf allen Interface-Leitungen ausser E interne
Pullups. Steht im Datasheet.
> wie nennt sich denn die Zeit, welche besagt, in welchem Rhythmus das LCD > Signale an seinen Inputs bzw. Datenbus verarbeiten kann? Es wäre mal an der Zeit, den Typ des LCD-Controllers zu verraten. Grafik-LCDs arbeiten da etwas anders als Text-LCDs. Und was die üblichen Text-LCDs mit HD44780 oder KS0066 angeht: Steht im Manual. Gibt einerseits die Zeitbeziehungen zwischen den Signalen selbst, andererseits die Laufzeit der LCD-Befehle.
Marvin M. wrote: > Noch ein Grund, ein Latch zu verwenden: Bei µP kann es durchaus > vorkommen, dass das Timing auf dem Bus einfach zu schnell für das LCD > ist. In diesem Fall kann man mit dem Latch die Signale etwas strecken. Aber doch nicht bei Mikrocontrollern...
@Simon Küppers: Durchaus. Ein M16C30245 @16Mhz, bei dem ein Standard HD44... LCD an den externen Adress/Datenbus angeschlossen wurde, war einfach zu schnell, trotz der maximalen Waitstates. Bei der Ursprungsfrage ging es genau darum: Anschluss an den Datenbus. Hierbei unterscheiden sich µP und µC kaum voneinander, nur darin, dass man theoretisch für die Dauer des Zugriffs den Daten/Adressbus als ordinären Port verwendet. Aber dann wäre ja der Vorteil des einfachen Zugriffs per Schreib/Lese-Befehl von der Software aus dahin.
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.