mca651-an658-fig1.jpg

Zahlreiche technische Neuerungen der letzten Jahre haben dafür gesorgt, dass LCDs immer beliebter wurden. Einer der Gründe: Die Ansteuerung dieser Anzeigenbausteine hat sich vereinfacht, denn die Treiberlogik ist zunehmend in marktverfügbaren 8-Bit-Mikrocontrollern (MCUs) bereits enthalten. Zu den Funktionen solcher LCD-Controller zählen Kontraststeuerung, Treibersignalerzeugung, Biasing sowie verschiedene Power-Betriebsarten. Diese Bausteine können Segment-Displays mit Buchstaben, Zahlen, Zeichen und Symbolen direkt ansteuern und erfüllen die Anforderungen an ein kostengünstiges Design. Beispiele sind die PIC-MCUs von Microchip, die in Gehäusen mit 28, 40, 64, 80 und 100 Pins zur Verfügung stehen und mehrere externe Bausteine erübrigen. Das LCD-Treiber-Modul in den MCUs sorgt für das Timing der Ansteuerung statischer oder gemultiplexter LCD-Panels und unterstützt bis zu 64 Segmente, die mit bis zu vier oder acht gemeinsamen Anoden beziehungsweise Kathoden (Commons) gemultiplext sind. Bild 1 zeigt das Blockdiagramm eines solchen LCD-Moduls.

Bild 1: Das LCD-Modul enthält Timing- und Datenblock, Bias- und Takterzeugung sowie Multiplexer und Logikschaltungen.

Bild 1: Das LCD-Modul enthält Timing- und Datenblock, Bias- und Takterzeugung sowie Multiplexer und Logikschaltungen. Microchip

Im Timing-Steuerblock laufen alle Fäden zusammen

Die Zahl der LCD-Register hängt von der maximalen Zahl von Commons und Segmenten ab, die von der MCU angesteuert werden können. Wie aus Bild 1 ersichtlich, besteht der Timing-Steuerblock aus dem LCD-Steuerregister (LCDCON), dem LCD-Phasenregister (LCDPS) und den LCD-Segment-Enable-Registern (LCDSEx). Das LCDCON steuert den Gesamtbetrieb des Moduls. Nach der Konfiguration des Moduls aktiviert oder deaktiviert das LCDEn-Bit das LCD-Modul.

Das LCD-Panel lässt sich auch in den Sleep-Modus versetzen, indem man das SLPEn-Bit löscht. Die Bits bestimmen die LCD-Taktquelle, und die Konfiguration muss mit dem LCD-Glastreiberschema übereinstimmen. Das LCDPS-Register konfiguriert den LCD-Taktquellen-Prescaler und die Art der Signalform. Die vom Prescaler gewählten Bits wirken sich direkt auf die LCD-Bildfrequenz aus. Sie müssen entsprechend gesetzt werden, um Geisterbilder oder Flackern auf dem Display zu vermeiden. Die LCDSEx-Register konfigurieren die Funktionen der Port-Pins. Das Setzen des Segment-Enable-Bit für ein bestimmtes Segment konfiguriert dieses Pin als LCD-Treiber. Ebenso erlaubt das Löschen des Segment-Enable-Bits dem Pin, als I/O-Port zu fungieren.

Der Datenblock bestimmt den Bildschirminhalt

Wie der Timing-Steuerblock ist auch der Datenblock in Bild 1 in allen PIC-LCD-Modulen vorhanden. Er besteht aus den LCDDATAx-Registern. Nachdem das Modul für das LCD-Panel initialisiert wurde, werden die einzelnen Bits des LCDDATAx-Registers gelöscht oder gesetzt, um ein durchsichtiges beziehungsweise schwarzes Pixel darzustellen. Spezielle Gruppen von Registern werden mit bestimmten Segmenten und Common-Signalen verwendet. Aus der Gesamtheit der Bits eines Segments, die mit einer bestimmten Common verbunden sind, ergibt sich jeweils eine spezifische Kombination.

Kontrastregelung per Software

Es gibt zwei wesentliche Methoden zur Erzeugung von Bias-Spannungen: Widerstandsteiler und Ladungspumpe. Die hier besprochenen Bausteine unterstützen beide Möglichkeiten sowohl extern als auch intern. Das LCDref-Register legt fest, ob externes oder internes Widerstands-Biasing verwendet wird. Das Setzen des LCDIRE-Bits aktiviert das interne Biasing. Ist die interne Referenz aktiv, so lässt sich der Kontrast per Software regeln, indem die LCDCST-Bits konfiguriert werden. In einigen Bausteinen sind diese in einem separaten Register abgelegt.

Eckdaten

MCUs mit integriertem LCD-Controller bieten hohe Designflexibilität und zudem eine einfache Möglichkeit, LCDs anzusteuern. Integriertes Biasing, Kontrastregelung und Stromsparfunktionen im LCD-Modul machen externe Bauelemente überflüssig, ohne dass dadurch die Funktionalität oder die Bildqualität beeinträchtigt würde. 

Die Stromquelle für die Kontrastregelung lässt sich über das LCDIRS-Bit auswählen. Das LCDref-Register bestimmt auch, welche Bias-Pins intern oder extern für die verschiedenen Bias-Werte genutzt werden. Das LCDRL-Register regelt die verschiedenen Power-Modi des Widerstandsteilers sowie das Zeitintervall für jede Power-Betriebsart.

Mit einer Ladungspumpe muss nur das LCDreg-Register konfiguriert werden. Ist die Ladungspumpe aktiv, so lässt sich der Kontrast über die Bias-Bits regeln. Durch Setzen oder Löschen des entsprechenden Bits unterstützt der Regler entweder 1/3 oder statisches Biasing. Der Regler muss über CLKSEL-Bits mit einem eigenen Takt versorgt werden. Die LCD-Bildfrequenz ist die Geschwindigkeit, mit der sich die Common- und Segment-Ausgänge ändern. Die Taktquelle hängt von den konfigurierten Taktquellen-Select-Bits des Bausteins ab. PIC-MCUs bieten für LCD-Module drei Taktquellen zur Auswahl. Der Bildfrequenzbereich erstreckt sich von 25 bis 250 Hz; die gängigsten Werte liegen zwischen 50 und 150 Hz. Höhere Frequenzen verursachen einen höheren Stromverbrauch und Geisterbilder, niedrigere Frequenzen können zu Flackern führen.

Bild 2: Die LCD-Takterzeugung speist sich aus drei Taktquellen, von denen zumeist zwei diskret implementiert sind.

Bild 2: Die LCD-Takterzeugung speist sich aus drei Taktquellen, von denen zumeist zwei diskret implementiert sind.Microchip

Takt zur Auswahl

Für die Module stehen drei mögliche Taktquellen zur Auswahl: ein schneller interner RC-(FRC-)Oszillator, ein sekundärer Oszillator (SOSC) und ein interner LPRC-Oszillator. Einige Bausteine nutzen allerdings den Systemtakt, den Timer-1-Oszillator oder den internen RC-Oszillator als Taktquelle. Bild 2 beschreibt, wie der Takt für die LCD-Peripherie erzeugt wird.

Bei den drei Taktquellen stellt ein Teiler einen 1-kHz-Ausgang bereit. Ist die Taktquelle zum Beispiel ein 8-MHz-FRC-Oszillator, so muss sie durch 8192 geteilt werden, um 1 kHz bereitzustellen. Dieser Teiler ist nicht programmierbar. Stattdessen werden die LCD-Prescaler-Bits des LCDPS-Registers für die Bildtaktrate verwendet. Diese Bits bestimmen die Prescaler-Zuordnung und das -Verhältnis. Befindet sich der Prozessor im Sleep-Modus, so werden meist zwei der Taktquellen diskret verwendet, um den LCD-Betrieb aufrecht zu erhalten.

Bild 3: Zwei Alternativen für die Ansteuerung von LCD: Bei Signalform A wechselt die Phase in jedem Common, während sie sich bei Signalform B an jeder Bildrahmengrenze ändert.

Bild 3: Zwei Alternativen für die Ansteuerung von LCD: Bei Signalform A wechselt die Phase in jedem Common, während sie sich bei Signalform B an jeder Bildrahmengrenze ändert.Microchip

Alternativen für die Ansteuerung

Ein LCD lässt sich also über die Parameter MUX-Verhältnis und Biasing charakterisieren. Es fehlt noch die Signalform für die Ansteuerung: Das Signal soll eine maximale Wechselspannung über dem dunklen Pixel und eine minimale Wechselspannung über dem durchsichtigen Pixel aufweisen. Die Gleichspannung über jedem Pixel sollte gleich Null sein. LCDs können durch Signalformen des Typs A oder B angesteuert werden. Bei Typ A ändert sich die Phase in jedem Common; bei Typ B an jeder Bildrahmengrenze. Typ-A-Signalformen halten deshalb 0 VDC über einen Bildrahmen, während Typ-B-Signale zwei Bildrahmen einnehmen. Bild 3 zeigt beide Signalformen für 1/3 MUX und 1/3 Bias.

Die an einem bestimmten Pixel angelegte Spannung ist die Spannung am COM-Pin minus der Spannung am SEG-Pin. Liegt die resultierende Spannung über der Von-Schwelle, so ist das Pixel sichtbar; liegt sie darunter, ist das Pixel nicht sichtbar. Der Kontrast eines LCD lässt sich durch die Berechnung des Trennvermögens bestimmen, dem Verhältnis zwischen der Effektivspannung eines aktivierten Pixels und der Effektivspannung eines deaktivierten Pixels. Segment-Mapping bietet dabei eine einfache Möglichkeit zu bestimmen, welche Pixel ein- oder ausgeschaltet sein sollten.

Biasing: Interne oder externe Widerstandskombinationen möglich

Der Widerstandsteiler ist die am häufigsten genutzte Methode für höhere VDD-Spannungen. Die verschiedenen LCD-Spannungen lassen sich dabei mittels kostengünstiger Widerstände erzeugen. Unabhängig von der Anzahl der zu versorgenden Pixel bleibt der Strom konstant. Die Widerstandswerte ergeben sich aus der geforderten Bildqualität und dem Stromverbrauch.

Die Bildqualität ist eine Funktion des LCD-Ansteuersignals. Da das LCD-Panel eine kapazitive Last darstellt, verzerren die Lade- und Entladeströme das Signal. Diese Verzerrung lässt sich durch einen niedrigeren Widerstandswert verringern. Ein niedriger Widerstand erhöht jedoch den Stromverbrauch, da mehr Strom durch die Widerstände fließt. Nimmt die Panel-Größe zu, so ist der Widerstandswert zu verringern, um die Bildqualität zu erhalten. In manchen Fällen lassen sich die Verzerrungen auch dadurch verringern, dass man Kapazitäten zu den Widerständen parallel schaltet. Dieser Effekt ist jedoch begrenzt, da ein großer Widerstand und ein großer Kondensator eine Verschiebung des Spannungspegels verursachen, die sich negativ auf die Bildqualität auswirkt.

Eine externe Kontrastregelung lässt sich durch Hinzufügen eines Potentiometers realisieren. Um das Hinzufügen externer Bauelemente zu vermeiden und bis zu drei Pins für die Spannungserzeugung einzusparen, bieten PIC-MCUs internes Widerstands-Biasing und eine integrierte Kontrastregelung. Dabei kommen keine Widerstände zum Einsatz, sondern interne Widerstandsteiler, an denen die Bias-Spannung abfällt. Der interne Widerstandsteiler teilt die LCD-Bias-Spannung auf zwei oder drei gleich große Spannungen auf, die an den LCD-Segment-Pins zur Verfügung stehen. Der Widerstandsteiler besteht dafür aus drei angepassten Widerständen. Im 1/2-Bias-Modus wird der mittlere Widerstand des Teilers kurzgeschlossen, sodass nur zwei Spannungen erzeugt werden. Dieser Modus verringert den Teilerwiderstand, erhöht aber den Stromverbrauch.

Mary Tamar Tan

ist Applications Engineer bei Microchip Technology.

Rodger Richey

ist Director Engineering and New Product Development bei Microchip Technology.

(ch/lei)

Sie möchten gerne weiterlesen?