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
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.
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
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
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.
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?
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.
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
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...
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
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.