Forum: Mikrocontroller und Digitale Elektronik LCD Ansteuerung erlernen.


von Ralf J. (cosmicos)


Lesenswert?

Hallo zusammen,

ich habe mir "auf gut Glück" bei Pollin ein LCD-Dispay mitbestellt:

http://www.pollin.de/shop/dt/Mjk2ODc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_NAN_YA_LTC79H202T50K_240x320.html

Nun stellt sich heraus, dass es für dieses Display keine Librarys gibt. 
So wie ich das interpretiere, hat das Display keinen Grafikkontroller, 
sondern lediglich Zeilen- und Spaltentreiber, so dass der uC alles 
machen muss.

Meine Frage ist nun, wo man die Programmierung eines entsprechenden 
Treibers bzw. einer Library erlernen kann. Das Datenblatt habe ich mir 
zu Gemüte geführt, werde aber (mangels Kenntnissen & Erfahrung) nicht 
schlau draus.

Die LCD-Tutorials hier im Board helfen da auch nicht weiter.

Wo lernt man so etwas "von der Pike auf"??

Bin für Tipps dankbar.
Gruß
Ralf

: Bearbeitet durch User
von Nico (nico123)


Lesenswert?

Richtig, das Display hat keinen Grafikkontroller! Du musst praktisch 
jeden Pixel einzeln ansteuern.
Für einen Anfänge ist das aus meiner Sicht einfach zu schwer!

Mit welchem Kontroller willst Du das denn umsetzen? Kennst Du dich mit 
Programmierung aus?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ralf J. schrieb:
> Die LCD-Tutorials hier im Board helfen da auch nicht weiter.

Aber mögl. das Projekt von Benedikt, der solche Displays, also 
'controllerlose', mit einem AVR antreibt:
Beitrag "Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen"

Klar, das jedes Display andere Zeilen und Spaltenanzahl hat, man muss 
anpassen, aber da du ja auf gut Glück gerordert hast, ist jetzt ein 
wenig Eigenarbeit angesagt.

Der FLM ist sozusagen das 'Bild fängt an' Signal und markiert die erste 
Zeile. Dann wird mit jedem Datalatch Signal der Wert an D0-D3 eingelesen 
und mit Shiftclock zum nächten Pixel gewechselt - nur mal grob. 
Benedikts Software ist mittlerweile recht umfangreich, es lohnt sich 
sicher, da mal reinzuschauen. Ich habe den Umgang mit diesen Dingern 
anhand eines uCSimm gelernt, ein kleiner Linux Rechner mit Dragonball 
Controller (wie im Palm III), für den ich einen Framebuffer Treiber 
schrieb.
Der Dragonball hatte die Hardware für controllerlose LCD allerdings 
schon eingebaut.

von holger (Gast)


Lesenswert?


von Ralf J. (cosmicos)


Lesenswert?

Nico .. schrieb:
> Richtig, das Display hat keinen Grafikkontroller! Du musst praktisch
> jeden Pixel einzeln ansteuern.
> Für einen Anfänge ist das aus meiner Sicht einfach zu schwer!
>
> Mit welchem Kontroller willst Du das denn umsetzen? Kennst Du dich mit
> Programmierung aus?

Dass das schwer wird, habe ich mir gedacht. Ich probiere so etwas aber 
dennoch gerne aus.

Im Moment habe ich das Display testweise an einen Mega 2560 
angeschlossen. Zu meinem Erfahrungshintergrund: Anfänger! 3-4 Projekte 
in C gemacht, viel durch "Abschauen" gelernt. Hauptsächlich Arduino, ein 
wenig AVR.

von Ralf J. (cosmicos)


Lesenswert?

Matthias S. schrieb:
> Ralf J. schrieb:
>> Die LCD-Tutorials hier im Board helfen da auch nicht weiter.
>
> Aber mögl. das Projekt von Benedikt, der solche Displays, also
> 'controllerlose', mit einem AVR antreibt:
> Beitrag "Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen"

OK, das schaue ich mir an!

>
> Klar, das jedes Display andere Zeilen und Spaltenanzahl hat, man muss
> anpassen, aber da du ja auf gut Glück gerordert hast, ist jetzt ein
> wenig Eigenarbeit angesagt.
>

Genau, macht ja auch Spaß :-)

> Der FLM ist sozusagen das 'Bild fängt an' Signal und markiert die erste
> Zeile. Dann wird mit jedem Datalatch Signal der Wert an D0-D3 eingelesen
> und mit Shiftclock zum nächten Pixel gewechselt - nur mal grob.

Gut. So in etwa hatte den "Timing Chart" auch interpretiert. Hört sich 
ja eigentlich nicht soooo schwer an.

> Benedikts Software ist mittlerweile recht umfangreich, es lohnt sich
> sicher, da mal reinzuschauen. Ich habe den Umgang mit diesen Dingern
> anhand eines uCSimm gelernt, ein kleiner Linux Rechner mit Dragonball
> Controller (wie im Palm III), für den ich einen Framebuffer Treiber
> schrieb.
> Der Dragonball hatte die Hardware für controllerlose LCD allerdings
> schon eingebaut.

Was für eine Hardware? Muss man Hardware als Treiber zusammenlöten oder 
reicht es das rein per Software z.B. vom Arduino oder vom Atmega aus zu 
machen?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Ralf J. schrieb:
> Hauptsächlich Arduino, ein wenig AVR.

Immerhin sind das (bis auf den Arduino Due) die selben Prozesoren und 
der selbe Compiler, jedenfalls wenn du den GCC genutzt hast ;-)

von Ralf J. (cosmicos)


Lesenswert?

Wolfgang schrieb:
> Immerhin sind das (bis auf den Arduino Due) die selben Prozesoren und
> der selbe Compiler, jedenfalls wenn du den GCC genutzt hast ;-)

Ja, ich arbeite ausschließlich unter Linux und daher auch mit dem GCC 
:-)

Danke für die Tipps! Ich sitze schon wieder am Display und lese und 
probiere...  :-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ralf J. schrieb:
>> Der Dragonball hatte die Hardware für controllerlose LCD allerdings
>> schon eingebaut.
>
> Was für eine Hardware?

Beim Dragonball waren es programmierbare Zähler für Spalten und Zeilen, 
eine DMA Anordnung, um Daten aus dem Hauptspeicher ans Display zu 
schicken und eine Zugriffslogik, damit CPU und DMA auf den Framebuffer 
RAM zugreifen konnten, ohne sich ins Gehege zu kommen. Ausserdem konnte 
man die Datenbreite des LCD einstellen (von 1 - 4 Bit) und die 
Anfangsadresse des Framebuffers. Das ganze wurde dann einmal angeschubst 
und lief im Hintergrund weiter.

: Bearbeitet durch User
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.