Forum: Mikrocontroller und Digitale Elektronik Frage zu LCD Controllern


von Johannes (Gast)


Lesenswert?

Hallo

Ich habe ein LCD Display mit aktiver Matrix. Dieses möchte ich nun 
ansteuern. Hierzu habe ich von Epson folgenden LCD-Controller gefunden.

Epson S1D13513

Ich habe mal die Beispielprogramme heruntergeladen und festgestellt das 
dort Quellcodedatein (c und h Files) vorhanden sind. In der Beschreibung 
steht das die Quellcodedatein in ANSI C geschrieben sind und mit jedem 
Compiler übersetzt werden kann.

Als ich die Doku durchgelsen hatte habe ich noch mal nachgedacht und bin 
zu folgenden Fragen gekommen:

1. Muss ich denn so einen LCD-Controller von Epson nehmen oder kann ich 
jeden beliebigen 32Bit µC z.B. einen von Atmel, Freescale oder NXP 
kaufen?

2. Hat der LCD-Controller besondere Hardwarevorteile gegenüber den 
anderen µC.

3. Welchen C-Compiler muss ich nehmen?

4. Gehen die Vorteile des LCD-Controllers nicht verloren wenn ich einen 
Standard C-Compiler benutze? (da dieser ja nicht auf die Hardware 
zugeschnitten ist)

5. Kann ich die Quellcodefunktionen auch auf einen Atmel 32 Bit µC 
benutzen?

Schon vielen Dank für Eure Antworten

Grüße

Johannes

von Star K. (starkeeper)


Lesenswert?

Hi,
ich glaube dein problem ist, dass du nicht genau weisst was ein 
LCD-Controller macht..

Der LCD-Controller ist in der Regel dazu da die Pixel des Displays 
anzusteuern und diese regelmäßig zu refreschen, damit das Bild sichtbar 
bleibt. Viele Displays haben so einen Controller schon drauf, auch der 
von dir genannte Controller macht das. Der Controller kann nicht 
programmiert werden, sondern lediglich gesteuert über seine Port Pins.

Du möchstest also ein LCD ansteuern, da frag ich mich womit und zu 
welchem Zweck?

Willst du den Epson S1D13513 verwenden bruachst du im normalfall noch 
einen Microcontroller der dann die darzustellenden Inhalte generiert. 
Für einen solchen IC sind wahrscheinlich auch die Quelltexte die du 
hast. Und mit der Wahl des microcontrollers steht dann auch fest welchen 
compiler du nehmen musst.

von Johannes (Gast)


Lesenswert?

Deiner Meinung ist da schon eine Firmware installisert.

Kann man das auch mit einem 32Bit µC von Atmel schaffen oder sind die zu 
langsam um das Bild regelmäßig zu refreshen?

Grüsse

Johannes

von Christian Erker (Gast)


Lesenswert?

AVR32 hat einen LCD-Controller on chip:

http://img508.imageshack.us/img508/2488/lpic0040ty5.jpg (Hier bei mir in 
Aktion)

Geht allerdings nur mit TFT o. STN mit paralleler Ansteuerung, LVDS kann 
er nicht. Ich weiss nun nicht wie es bei den AVR32 Controllern ist, also 
den AT32UC3 oder wie die heissen, der AVR32AP7000 (eine CPU) kann es 
aber.

Gruß,
Christian

von Simon K. (simon) Benutzerseite


Lesenswert?

Christian Erker wrote:
> AVR32 hat einen LCD-Controller on chip:
>
> http://img508.imageshack.us/img508/2488/lpic0040ty5.jpg (Hier bei mir in
> Aktion)
>
> Geht allerdings nur mit TFT o. STN mit paralleler Ansteuerung, LVDS kann
> er nicht. Ich weiss nun nicht wie es bei den AVR32 Controllern ist, also
> den AT32UC3 oder wie die heissen, der AVR32AP7000 (eine CPU) kann es
> aber.
>
> Gruß,
> Christian

AT32UC3 kann's nicht :D Nett mal jemanden zu lesen, der auch mit sowas 
rumfingert.

von Johannes (Gast)


Lesenswert?

Der Epson LCD Controller hat ein parrallels Interface an dem ein µC 
angeschlossen werden kann.

Sehe ich das richtig das mit Hilfes des µC der LCD Controller gesteuert 
wird?

Reicht für die Steuerung eines LCD ein 8Bit AVR von Atmel oder ist der 
durch die 8 Bit zulangsam?

Woran erkennt denn der LCD Controller das ich jetzt Daten übermittel 
oder Steuersignale?

Der LCD-Controller hat ein SRAM, in dem die Daten für das Display 
gespeichert sind. Wenn ich also das 1. Bild übertrage und anschließend 
das 2. wie gehe ich dann vor? Schreibe ich den 1. Datensatz zuerst ind 
ein großes Array und anschließend den 2. Datensatz in ein 2. Array und 
teile den LCD-Controller per Steuerbefehl mit das er jetzt die Daten aus 
dem 2. Array anzeigen soll?

Gibt es einige Tutorials wie man LCD-Controller benutzt?

von Johannes (Gast)


Lesenswert?

Ich bin schon ganz heiß drauf etwas auf dem Display auszugeben :-)

von Benedikt K. (benedikt)


Lesenswert?

Ich sags mal so wie es ist:
Du scheint wenig bis absolut garkeine Ahnung von dem Thema zu haben.
Der S1D13513 ist ein ziemlich großer LCD Controller der mit SDRAM 
arbeitet.

Ich glaube es wäre sinnvoller, wenn du erstmal klein anfangen würdest. 
Einem Fahranfänger kauft man normalerweise auch nicht direkt einen 
Ferrari...

Die Ansteuerung mit einem AVR ist möglich, wenn auch nicht unbedingt 
sinnvoll, da der Controller nur 16bit Transefers unterstützt. Solch ein 
LCD Controller wird üblicherweise eher in Embedded PCs oder ähnlichem 
verwendet.

von Johannes (Gast)


Lesenswert?

Ich habe schon mit dem AVR gearbeitet. Es mag sein das dieser 
LCD-Controller recht mächtig ist, aber ich habe keine  Wahl mit etwas 
kleinerem anzufangen. Wenn mein Chef sagt steuer dieses Display an dann 
gebe ich alles um dies möglichst schnell zu schaffen. Hierzu habe ich 
Internet gegoogelt und nach LCD-Controllern gesucht. Da ich eine das 
Kamerabild auf diesem Display ausgeben soll, habe ich mich für diesen 
entschieden. Zuvor wollte ich einen LCD-Controller nehmen der in Handys 
eingesetzt wird. Davon hat mir aber der Händler abgeraten, da ich da 
mehrere 1000 Stück auf einmal kaufen muss. Daher dieser LCD-Controller 
von Epson.

Es mag sein das ich noch nicht so viel Ahnung von diesem IC besitze aber 
das hattest Du am Anfang sicherlich auch nicht. Jedoch hast Du es mit 
viel Fleiß und Schweiß geschaft. (meinen Glückwunsch) Dies will ich auch 
schaffen. Ein Evolution Board habe ich bereits auch gefunden (ca 300 
Euro)

Jetzt benötige ich nur noch einen 32Bit µC der die Ansteuerung des LCD 
Controllers übernimmt. Ich denke mal das ich da einen Atmel, Freescale 
oder NXP verwenden werde.

Vielleicht hast Du ja noch ein paar Links wo ich mich ein wenig über 
LCD-Controller belesen kann

Grüsse

Johannes

von Johannes (Gast)


Lesenswert?

Welchen LCD Controller hast Du denn benutzt?

von Benedikt K. (benedikt)


Lesenswert?

Ich habe schon viele der Epson Controller angesteuert (sowohl kleinere 
S1D17xx als auch größere aus der S1D137xx und S1D1350x Reihe). Einige 
Controller haben, ich nenn sie mal "Features" über die man erstmal 
stolpern muss, damit man die Controller zum laufen bekommt: Wenn sich 
die Register garnicht ansprechen lassen, meist gibt es einen Powersave 
Mode, der standardmäßig an ist und daher den Zugriff auf die Register 
sperrt. Irgendwo im Datenblatt gibt es dazu meist eine Fußnote. Ob das 
beim 13513 auch so ist weiß ich nicht, ich denke aber schon.

Die Software schreiben ist eine Seite von der Ansteuerung, aber dieses 
ist ja vermutlich eher kein allzugroßes Problem für dich.
Du brauchst also nur einen entsprechenden µC an dessen Datenbus der LCD 
Controller kommt. Da es auch hier wieder verschiedene Standards gibt, 
hat der LCD Controller verschiedenste Config Bits, über die die 
Schnittstellenparameter eingestellt werden.
Das Layout wird auch nicht einfach, immerhin hat das Ding viele Pins. 
Und es werden meherere Betriebsspannungen benötigt. Insgesamt also ein 
ziemlicher Aufwend, den dir ein fertiges Evaluation Board erstmal 
abnimmt. Damit sind schonmal viele Fehlerqueller weg. (dafür kostet es 
halt etwas mehr.)

Wenn das geschafft ist, und der µC mit dem externen Bus entsprechend 
konfiguriert ist, kannst du den LCD Controller ganz einfach ansprechen.

Als nächstes kommt jetzt der LCD/TFT spezifische Teil:
Ein wenig Grundwissen zum Thema LCD/TFT (was es so an Typen 
(aktiv/passiv) gibt und wie diese angesteuert werden (welche Takt und 
Datenleitungen es gibt, und wie das Timing aussieht) ist vorteilhaft 
bzw. zumindest von dem Display das du ansteuern willst, notwendig.
Es wird vermutlich so sein, dass du das Display ansteuerst, aber dieses 
nur Streifen, oder garnichts anzeigt. Dann ist es nämlich gut zu wissen, 
wie das Timing aussehen sollte, wenn man sich die vom LCD Controller 
erzeugten Signale auf dem Oszilloskop ansieht.
Es gibt Tools von Epson, um die ganzen Einstellungen zu erzeugen. 
Meistens funktionieren die, manchmal erzeugen sie aber auch etwas 
falsche Einstellungen, also notfalls per Hand nachprüfen.
Und dieses Beispielprogramm mit der HAL von Epson, naja ich habe dieses 
zumindest noch nie verwendet, da es meiner Meinung nach schneller geht 
eine eigene Software zu schreiben als dies von Epson anzupassen. 
Außerdem versteht man dann wenigstens auch, was man gemacht hat.

Wo man generelle Infos zum Thema LCD Controller und LCDs herbekommt weiß 
ich auch nicht. Das Problem ist, dass viele Hersteller nur das nötigste 
rausgeben. Bei Epson gibt es etliche Datenblätter, die nur nach 
Registrierung oder nur nach Anfrage rausgegeben werden. Und selbst dann 
beinhalten diese nur das nötigste. Um etwas über die inneren Abläufe zu 
erfahren, muss man schon gute connections zu Epson haben, aber selbst 
dann kann es Monate dauern...

Ich kann dir nur eines eEmpfehlen: Les dir das Datenblatt vom Controller 
komplett durch, auch wenn dies sehr lange dauert. Vor allem achte auf 
die Fußnoten, und merke dir diejenigen, die für deine Anwendung benötigt 
werden.
Ich habe auch schon Tage damit zugebracht, nichts anderes zu machen als 
nur die Datenblätter zu studieren...

von Johannes (Gast)


Lesenswert?

Ich denke mal das ist bei 99% alle µC, das man das Datenblatt mehr als 
nur einmal durchlesen muss. Ich habe schon mal in den Funktionen 
gstöbert, die vorhanden sind.

Von Epson gibt es ein Testinit.c File. Dies greift auf den vorhandenen 
Quellcode zu. Wenn ich dann mein Evaluation Board hier habe werde ich 
das Display anschließend. So wie ich es verstanden habe, schließe ich 
das Evaluation Board an den PC an. Compiliere die Datei Testinit.c und 
führe die Testinit.exe aus. Dann sollte auf dem initialisiertem Display 
"Hallo Welt" stehen.

Epson stellt folgeden Datein zur Verfügung:

#include "hcl.h"
#include "i2c.h"
#include "camera.h"
#include "display.h"
#include "pip.h"
#include "resizer.h"
#include "yrc.h"
#include "ydo.h"
#include "yuv.h"
#include "interrupts.h"
#include "clock.h"
#include "pwm.h"
#include "blt.h"
#include "sprite.h"
#include "dmac.h"

Hierzu gibt es noch die passenden C-Files.

Jetzt zu der alles entscheidenen Frage. Kann ich die Funktionen einfach 
so in den µC implementieren oder sind diese nur für den PC gedacht?

Außerdem liefert Epson dieses von Dir angesprochene Programm "cdg.exe" 
mit. Damit soll man den LCD-Controller konfigurieren können. Muss ich 
dies bei dem Neustart machen oder werden diese Einstellungen in einem 
EEPROM gespeichert?

Vielleicht könnte man sich ja mal für 15 Minuten über Skype oder per 
Telefon unterhalten. Dies würde mir sicherlich sehr viel weiterhelfen

Grüsse

Johannes

von Benedikt K. (benedikt)


Lesenswert?

Johannes wrote:

> Von Epson gibt es ein Testinit.c File. Dies greift auf den vorhandenen
> Quellcode zu. Wenn ich dann mein Evaluation Board hier habe werde ich
> das Display anschließend. So wie ich es verstanden habe, schließe ich
> das Evaluation Board an den PC an. Compiliere die Datei Testinit.c und
> führe die Testinit.exe aus. Dann sollte auf dem initialisiertem Display
> "Hallo Welt" stehen.

So einfach ist es leider nicht. Ich kenne dein Evaluation Board nicht, 
aber bei den anderen Controllern ist es so, dass diese sich auf einer 
ISA Grafikkarte befinden, die in den PC gesteckt wird. Das Programm 
funktioniert also nur, wenn du genau diese Karte im PC hast.

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
Noch kein Account? Hier anmelden.