Mikrocontroller-Projekte
Ronald Daleske

Startseite Impressum Warenzeichen

LCD-Controller für Display G648D

Der LCD-Controller übernimmt die Daten der Anzeige über die ITP2-Schnittstelle und zeigt sie auf dem monochromen Display G648D (640x200) an.

Inhaltsverzeichnis

1. Motivation und Zielstellung
2. Grundidee der Umsetzung
3. Hardware
4. Software
5. Lizenz


1. Motivation und Zielstellung

Hat man endlich einen eigenen CP/M Computer zusammengebaut (gemeint sind hier CPD3 und CPD5), möchte man als nächsten Schritt gern die Ergebnisse der Ausgabe (CONOUT) auf einem "eigenen" Augabemedium anzeigen. Die Anzeige über Monitore mit Kathodenröhren (wie es in den 80ger Jahren üblich war) ist heutzutage nicht mehr zeitgemäß.

Schön wäre eine Anzeige über ein LC-Display .

Ein LCD-Monitor gibt es gebraucht ab 10 €, und neu ab 100 €. Ein LCD-Bilderrahmen ist ab etwa 30 € verfügbar. So muss ein 8 bis 10 Zoll LC-Display doch günstig zu haben sein. So sind die Gedanken vieler Bastler, die sich mit dierer Materie beschäftigen.

Wenn mann dann recherchiert, stellt man schnell fest, dass die Realität etwas ander aussieht. Die meisten größeren LC-Displays sind Massenware und daher sehr günstig zu haben. Ein LCD-Monitor hat einen VGA-Anschluss. Dieser muss aber auch erst einmal mit den richtigen Signalen versorgt werden, was auch einen gewissen Aufwand erfordert (siehe VGAGEN und VGAGEN2).


2. Display und Controller-Hardware

Die Idee zum eigenen Display für den eigenen CP/M Computer ist schon älter, es fehlte aber ein passendes Display. Irgendwann wurde eine alte Telefonanlage verschrottet, dessen Display nun weiter genutzt werden soll.

Das Display selber hat keinen eigenen Display-Controller. Der war zwar auf der Leiterplatte der Telefonanlage, dort waren aber auch viele andere Baugruppen, die nicht weiter genutzt werden sollten (kein Schaltplan und viel zu groß). Auch die Hintergrundbeleuchtung mit einer Hochspannungsröhre sollte nicht weiter genutzt werden. Wird das Display richtig angestrahlt (siehe Bild), kann man die Ergebnisse auch ohne Hintergrundbeleuchtung gut erkennen.


Angaben zum Display:

Displays ohne eigenen Controller benötigen einen regelmäßigen Refresh der Daten. Dafür wird dann eine zusätzliche Baugruppe benötigt, die die Aktualisierung übernimmt. Diese Baugruppe wird in diesem Projekt mit einem ATMEGA 32 realisiert.

Der ATMEGA 8 hat für dieses Projekt zu wenig RAM-Speicher. Allein für den Bildwiederholspeicher werden schon für 78 Zeichen in 24 Zeilen = 1872 Byte benötigt.


Quelle Datenblätter unter:

1. http://www.shopeio.com/inventory/pdf/G648D.pdf

2. http://pdf.datasheetcatalog.com/datasheets2/15/1529896_1.pdf (26 Seiten)


Anschlußbelegung

Ein weiterer wichtiger Punkt auf den man bei einem Display achten muss ist, dass die Anschlüsse in einer Form vorliegen, die man auch benutzen kann. Sehr viele moderne LC-Displays verwenden mikrometer kleine, sehr spezielle Anschlußstecker (oder einfach nur Flachbandleitungen) mit denen man oft nicht viel anfangen kann.

Im Prinzip kann man sagen, dass je moderner die Displays sind, sie um so ungeeigneter für eigene Bastelprojekte sind. Die hohen Auflösungen moderner Displays erfordern zudem Bildwiederholraten, die mit den hier verwendeten Mikrokontrollern nicht mehr realisierbar sind.

Das hier verwendete Display hat einen einreihigen 14 pooligen Buchsenstecker, der sich perfekt an eine Universalleiterplatte anschliessen lässt.


Schaltplan

Schaltungstechnisch ist der LCD-Controller recht einfach gehalten. Die Daten- und Steuerleitungen des Displays werden an den ATMEGA 32 geführt und dort entsprechend bedient.

Schaltplan im PDF-Format: LCDController.pdf

Schaltplan im Eagle-Format: LCDController.zip


Kontrastspannung

Fast alle LC-Displays benötigen für die Ansteuerung der internen LCD-Baugruppen eine negative Kontrastspannung (meist -22V bis -24V). Für erste Tests kann man sicher ein externes Netzteil verwenden. Möchte man aber nur die 5V Versorgungsspannung benutzen, muss noch eine weitere Baugruppe zur Erzeugung der -24V eingeplant werden. In diesem Projekt wurde ein MC34063 genutzt. Mit dem angegebenen DC-DC-Wandlerschaltkreis konnten bei diesem Projekt maximal etwa -20 V erzeugt werden. Diese Spannung reicht aber für das genutzte Display aus. Es lohnt auf jeden Fall mit der verwendeten Spule herumzuprobieren.


Quelle Datenblätter unter:

1. http://www.mikrocontroller.net/articles/MC34063 (sehr guter Beitrag zum MC34063)

2. http://pdf.datasheetcatalog.net/datasheets/2300/501448_DS.pdf (Datenblatt)

Quelle:http://www.mikrocontroller.net/articles/MC34063 (siehe unter: Invertierende Schaltungsvariante 4 mit externem Transistor, Eigenkreation)


Schaltplan im PDF-Format: DCDC.pdf

Schaltplan im Eagle-Format: DCDC.zip


Testaufbau


4. Software


4.1 Grundprinzip der Ansteuerung

Im ersten Datenblatt zu diesem Display findet man ein gutes Prinzipschaltbild. Grundsätzlich funktionieren LC-Displays ohne Controller meist ähnlich.

Quelle: http://www.shopeio.com/inventory/pdf/G648D.pdf Seite 5 (PAGE 52)

Die Daten (meist 4 oder 8 Bit auf einmal) werden an die Datenleitungen angelegt (Display data) und werden nach einem Übernahmesignal (Display data shift clock) in die Displaytreiber geschrieben.

Weiterhin werden noch Synchronisierungsimpulse für die horizontalen (Latch signal) und die vertikalen Displaytreiber (Frame start signal, zusätzlich AC-convert signal) benötigt.

Quelle:http://pdf.datasheetcatalog.com/datasheets2/15/1529896_1.pdf Seite 7

Das Blockschaltbild zu diesem Display zeigt alle benötigten Signale und ihre Zuordnung innerhalb des Displays.


4.2 Taktdiagramm 1

Die genauen Taktflanken zu den angegebenen Signalen kann man den Taktdiagrammen entnehmen.


Quelle:http://pdf.datasheetcatalog.com/datasheets2/15/1529896_1.pdf Seite 12


4.3 Taktdiagramm 2

Quelle:http://pdf.datasheetcatalog.com/datasheets2/15/1529896_1.pdf Seite 12

In den Taktdiagrammen 1 und 2 sind alle Angaben vorhanden, die man zur Umsetzung benötigt. Alles andere ist Programmieren auf Bitebene.


Das Display muss etwa 50 mal pro Sekunde refresht werden. Bei 200 Zeilen sind das 10.000 Zeilen pro Sekunde. Das lässt sich nur in Assembler realisieren (oder zumindest die zeitkritischen Routinen müssen in Assembler geschrieben werden).

Die Grundidee stammt aus einem Artikel des www.mikrocontroller.net mit dem Namen: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus.


Die Ansteuerung dieses Displays wurde komplett in Assembler geschrieben. Wie schon erwähnt muss aus Gründen schneller Abarbeitung die Generierung der Daten- und Steuersignale immer in Assembler geschrieben werden.

Für die zeitunkritischen manipulationen des Bildwiderholspeichers (z.B. Behandlung der ESC-Sequenzen) ist es sicher einfacher, eine höhere Programmiersprache zu wählen.

Daher wurde im nächsten Projekt (LCD-Modul LCM-5430-E) hierfür der RONPAS-Compiler genutzt.

AVR-Studio Assembler Quelltext: LCDTEXT.ZIP


5. Lizenz (Assembler-Quelltext)

Creative Commons Lizenzvertrag
Diese(s) Werk bzw. Inhalt von Ronald Daleske steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Deutschland Lizenz.


keine Mängelgewähr

DIESE SOFTWARE WIRD VOM URHEBERRECHTSINHABER "OHNE MÄNGELGEWÄHR" BEREITGESTELLT. ALLE AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN, EINSCHLIESSLICH DER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK (JEDOCH NICHT DARAUF BESCHRÄNKT), WERDEN AUSGESCHLOSSEN. DER URHEBERRECHTSINHABER IST IN KEINEM FALL UND NACH KEINER HAFTUNGSTHEORIE (SEI ES AUF VERTRAGSBASIS, AUF DER BASIS STRENGER HAFTUNG ODER UNERLAUBTER HANDLUNGEN, EINSCHLIESSLICH FAHRLÄSSIGKEIT) FÜR BELIEBIGE VERURSACHTE DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE SCHÄDEN ODER FOLGESCHÄDEN (EINSCHLIESSLICH, JEDOCH NICHT BESCHRÄNKT AUF BESCHAFFUNG VON ERSATZPRODUKTEN ODER -LEISTUNGEN, NUTZUNGSAUSFALL, DATEN- UND GEWINNVERLUST ODER GESCHÄFTSAUSFALL) HAFTBAR, DIE AUFGRUND DER VERWENDUNG DIESER SOFTWARE ENTSTEHEN KÖNNEN. DIES GILT AUCH, WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



Startseite Impressum Warenzeichen