www.mikrocontroller.net

LCD

Inhaltsverzeichnis

[bearbeiten] Aufbau

Liquid Crystal Displays kurz LCDs bestehen aus einer großen Fläche von Flüssigkristallen, die unter Einwirkung eines elektrischen Feldes die Polarisationsebene des Lichts drehen. Wird ein solches Display von bereits polarisiertem Licht durchleuchtet, dann erscheinen diese Kristalle mehr oder weniger hell oder dunkel. Die angelegte Spannung ist sehr gering, es muss sich aber um eine Wechselspannung handeln, da eine Gleichspannung die Kristalle zersetzt.

[bearbeiten] Beleuchtung

Die Beleuchtung eines LCDs kann durch verschiedenfarbige LEDs erfolgen. Auch floureszierende Materialien können zur Erhellung verwendet werden. Früher wurden CCFL Folien (Leuchtröhren-Technik) und somit Hochspannung dafür genutzt.

[bearbeiten] Schnittstellen

Die gängigen Schnittstellen zu einem LCD-Controller sind ein 8bit, 4bit oder serielles Interface.

Bei vielen "8bit"-LCDs ist es mögliche bei der Konfiguration festzulegen, dass auf 4bit Datenleitungen jeweils 2 nibble hintereinander gesendet werden. Dies spart Anschlüsse auf der Datensteuterungseinheit (PC, µC, etc). Bei 4-Bit-Ansteuerung darauf achten, dass die Datenpins 4-7 und nicht die Datenpins 0-3 des Displays an den µC angeschlossen werden müssen!

[bearbeiten] Touchscreen

Ein LCD kann auch mit Touchscreen- oder Touch Panel-Funktion hergestellt werden, um eine Eingabe zu ermöglichen. Dazu wird das Display mit einer berührempfindlichen, aber transparenten Oberfläche hergestellt. Ein Selbstbauvorschlag und Links zu einigen kommerziellen Lösungen findet sich hier.

[bearbeiten] Hacks

Eine bei Handybastlern bekannte Spielerei ist das Abziehen der Polarisationsfolie vom LCD und dem um 90° gedrehten Aufkleben der alten oder einer neuen Folie. Dies führt zu einem hardwaremäßigen Invertieren der LCD Anzeige.

[bearbeiten] Handy LCDs

Es gibt noch eine bei Bastlern vergleichsweise beliebte Alternative zu den "normal" gekauften LCDs. Hier werden Ersatz-LCD´s bestimmter Handytypen hergenommen und per µC angesteuert. Dadurch hat man einige Vorteile: Die Controller sind oft (eigentlich immer) bereits integriert, die Größe des gesamten Systems ist meist minimal und die LCD´s sind teilweise unverschämt günstig im Vergleich zu KSS0066er oder HD44780er LCDs. Als Beispiel: Ein 132x176 Pixel LCD mit 60k Farben (!!!) für das Siemens S65 Handy kostet inzwischen bei Ebay um die 10 Euronen + Versand und die benötigte Ansteuerung dazu hat einen Materialwert von maximal nochmal 10 Euro. Das kann man mit gekauften LCD´s oder TFT´s bei Reichelt & Co. nicht mehr vergleichen. Allerdings kauft man sich auch ein paar Nachteile: Es gibt teilweise (noch) keine sauberen Companionboards, daß resultiert vor Allem dann in Arbeit, wenn die LCD´s mehrere Spannungen zum Laufen benötigen (oft +10V und +3,3V) oder spezielle Anschlüsse von Nöten sind (SMD-Adapter bspw.) und man somit um eine eigens entwickelte Platine schwer rumkommt. Allerdings beschäftigen sich viele Leute damit, von daher wird man oft etwas kopieren können. Als eine Auswahl an beliebten Handy-LCDs hier eine Auflistung von Displays, mit denen oft gearbeitet wird (daher findet man hier auch massenhaft Infos im Forum).

Nokia 3310 & kompatible LCD: S/W mit 48x84 Pixeln und per SPI ansteuerbar. Hier gibt es MASSIG Software und Hardware. Im Forum einfach mal suchen oder sich hier umschauen: serdisp3310 Auch avrfreaks und weitere Bastler beschäfitgen sich sehr viel mit diesem sehr günstigen Display (durchschnittlich 5€ bei Ebay). Hier bspw. gibts ein passendes PCB dazu.

Nokia 6100 & kompatible: 132x132 Pixel mit 4096 Farben und ebenfalls SPI. Ein sehr beliebtes Display, mit dem sich ebenfalls sehr viele beschäftigen. Einziges Hauptproblem: Es gibt zwei unterschiedliche Controller (Epson S1D15G10 und Philips PCF8833) für den selben Display, die allerdings *nicht* kompatibel angesteuert werden! Von daher ist Vorsicht geboten. Zu kaufen gibt es die Displays ab etwa 15€. Man benötigt unter Umständen noch einen SMD-Adapter, den es für etwa 4€ gibt (je nach gekaufter Anzahl). Infos gibts hier: serdisp6100 sparkfun ThomasPfeifer und (wie sollte es anders sein) natürlich direkt vor Ort: Forumsbeitrag

UPDATE 17.10.2007: Neuerdings ist ein zusätzlicher (und damit dritter) Controllerchip recht beliebt geworden: Epson S1D15G17 (also G17 statt G10). Das Tolle hierbei: Dieser ist zu keinem der anderen Controller voll kompatibel, sondern teilt sich nur einige Befehle. Und zudem gibts bisher noch sehr wenig Infos zu diesem Controller. Also noch mehr aufpassen beim Kauf bzw. dem Ansteuern!

Siemens S65 & kompatible: 132x176 Pixel mit 60k Farben und wiederum SPI. Ein vergleichsweise neues LCD, daß erst seit etwa ein/zwei Jahren erfolgreich angesteuert wird, *obwoooohoool* man nicht einmal den verbauten Controller kennt! Re-Engineering sei Dank! Dieses Display gibt es momentan noch unverschämt günstig für etwa 10€, nur die benötigten Spannungen machen Kopfweh (10V für die HG-Beleuchtung und 2,8V für den LCD-Controller). Das Display ist wirklich vergleichsweise groß (das Größte aller hier vorgestellten) und auch noch aus einer größeren Entfernung wunderbar zu lesen/sehen. Einziges Problem: Da pro Pixel zwei volle Bytes gesendet werden müssen, benötigt ein komplett zu beschriftender Bildschirm mit 8 MHz SPI etwa 50 ms für einen Refresh. Das sieht man bspw. bei einem Übergang von schwarz auf weiß schon relativ deutlich. Infos gibt es momentan noch relativ sporadisch, aber natürlich wieder hier: Forumsbeitrag ChristianKranz

Zum Abschluss eine Anmerkung: Falls man noch keinen LCD angesteuert hat, BLOß NICHT mit Handy-LCDs anfangen! Man sollte hier schon einige Erfahrung mitbringen und die kleinen Probleme des Alltags selbst aus dem Weg räumen können. PCB-Design und ein gutes Verständnis der SPI-Schnittstelle sollten ebenfalls vorhanden sein, dann kriegt man das auch gebacken.

[bearbeiten] Ansteuerung

Direkt hinter der Dot-Matrix sitzen nur ein paar Treiber, die auch die Leitungen bündeln. Das Interface daran bietet keine "Intelligenz", es werden Signale für Vertical Sync / Horizontal Sync (also Spalten/Zeilenumbruch) sowie ein Clock Signal benötigt. Es werden nacheinander alle Pixel gescant und über eine Signalleitung an/aus mitgeteilt. Da deshalb ein konstanter (hoher) Datenfluss und ein nicht geringer Speicher (Framebuffer) benötigt wird, ist es für Mikrocontroller eher weniger geeignet.

Zur Ansteuerung von LCDs gibt es spezielle LCD Controller, fertige Module mit Controller und einige Prozessoren mit integrierter Ansteuerung (z.B. aus der MSP430-Serie, oder AVR wie der ATmega169 ). LCD-Module mit eingebautem Controller lassen sich meist einfach mit einem Mikrocontroller ansteuern.

Text (character) LCDs verwenden meistens den HD44780 oder einen kompatiblen Controller (z.B KS0066). Das KS0066 Timing und die Init-Sequenz weichen stark vom Timing des HD44780 ab! Es gibt gute Application Notes zu Displays (mit KS0066) von Hitachi. 1x16 LCDs werden oft wie 2x8 betrieben! D.h. es ist ein 'Zeilenwechsel' an Position (z.B. 0x40) nötig.

Grafik (graphic) LCDs verwenden z.B. den T6963, den SED1330 oder den KS0108 Controller.

Bei LCDs ohne eigenen Controller (Laptop-LCDs z.B.) ist die direkte Ansteuerung sehr schwierig (weil zeitkritisch), allerdings lässt sich in manchen Fällen ein Standard-Controller nachrüsten.

Wenn die Ansteuerung des Displays gemeistert wurde, muss als nächstes die höheren Grafikfunktionen (Pixel an/aus, Linie, Rechteck, Kreis,...) gemeistert werden. Die entsprechenden Funktionen zum Rastern sind für qC recht resourcenfressend. Auch das abspeichern kompletter Bitmaps im ROM ist bei größeren Displays nicht wirklich praktikabel so das die Anbindung an ein größeren Speicher meistens Not tut.

[bearbeiten] FAQ

Wie kann ich was auf ein LCD ausgeben?
Gute Frage! Eine Methode ist sich als Einzelkämpfer durchzubeißen. Dabei helfen Datenblätter und Handbücher sowie die Suche nach Tutorials, Forenbeiträgen und ähnlichen Projekten. Oder man fragt in einem Forum. Dabei steigen die Erfolgsaussichten auf eine hilfreiche Antwort enorm, wenn man seine Hausaufgaben gemacht hat. Also Links zu Datenblättern angeben! Schaltplan beilegen! Vorhandenen Sourcecode beilegen! ...

Wie kann ich Zahlen auf LCD/UART ausgeben?
Siehe die Artikel zur allgemeinen FAQ und zur Festkommaarithmetik.

Egal was ich mache auf dem Display erscheinen keine Zeichen! Was ist los?
Möglicherweise ist einfach nur der Kontrast unpassend eingestellt. Es gibt auch LCDs z.B. POWERTIP PC1602LRM-LSO-C von Pollin, die eine negative Kontrastspannung benötigen (Forenbeitrag von Thorsten); näheres kann das Datenblatt klären.

R/W Leitung vom Text-LCD ist fix mit GND verbunden und die Ansteuerung mit der LCD/AVR-Library von Peter Fleury funktioniert nicht! Was ist los?
Die Fleury Library erwartet, dass R/W nicht fix ist, sondern vom Programm gesteuert werden kann. Das muss auch so sein, denn Peter liest das Busy Flag aus, um Warteschleifen zu vermeiden.

[bearbeiten] Projekte

[bearbeiten] Projekte mit Text-LCD

[bearbeiten] Projekte mit Grafik-LCD

[bearbeiten] Weblinks

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net