PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2.4" OLEd Display (S6E63D6 Controller) mit Raspberry verbinden.


tsaG
2014-06-26, 22:38:05
Hallo,

Ich möchte dieses Display mit meinem Raspberry verbinden.
http://www.ebay.de/itm/181297639621?ru=http%3A%2F%2Fwww.ebay.de%2Fsch%2Fi.html%3F_sacat%3D0%26_from%3DR 40%26_nkw%3D181297639621%26_rdc%3D1


Bisher habe ich schon mehrere TFT Displays ausprobiert, jedoch waren
alle zu Lichtschwach.

Nun habe ich dieses OLED. Vorher habe ich das ganze mit einem Arduino
Due realisiert, jedoch brauche ich für die Erweiterungen noch etwas mehr
Power, daher der PI

Das Display arbeitet mit einem S6E63D6 Display Controller von Samsung
http://www.4dsystems.com.au/downloads/Displays/OLE...

Leider bin ich noch ein Neuling im Bereich Linux Hardware. Mein Programm
habe ich bisher schon auf Phyton geportet und es funktioniert auch
soweit (zumindest ohne Display).

Weiss also jemand wie ich dieses Display an meinen Raspberry
anschliesse? Soweit ich gesehen habe nutzt es auch SPI (?). Mein Ziel
ist es ein kleines GUI zu gestalten (inkl Touchscreen). Dazu wollte ich
Pygame verwenden da es im Embedded Stil direkt beim Booten starten soll,
dadurch spare ich mir auch den Desktopmanager (X brauche ich jedoch
sowieso (soweit ich das verstanden habe)).

Angehangen ein Screenshot meines bisherigen Projektes mittels Arm
Prozessor (arduino Due) und LCD Display.

Auf dem Raspberry läuft Wheezy minimal. Im Internet habe ich auch noch diesen Treiber/library (?) gefunden, ich weiss nicht ob es hilft.
https://github.com/lentinj/u-boot/blob/master/drivers/video/s6e63d6.c

Leider habe ich, wie gesagt, keine Ahnung wie man soetwas unter Linux implementiert, bzw einen Treiber erstellt/schreibt. Ist es aufwendig/möglich einen Treiber für dieses Display zu schreiben?

-tsaG

Gauron Kampeck
2014-06-27, 21:05:31
Möglich wird es sicherlich sein, ein wenig Arbeit wirds aber wohl schon sein, wenn es nicht bereits einen Linux-Treiber gibt;) Je nach Qualität des Datenblatts/ReferenceManual sollte man eigentlich nicht mehr als eben dieses Dokument benötigen und zusätzlich noch ein wenig Linux-Treiber-Know-How mitbringen.
Zunächst sollte das Display natürlich hardwareseitig vernünfig angebunden sein. Vielleicht gibt es Application Notes dazu oder es wird bei anderen Dev-Boards verwendet, dann kann man vieles da abschauen.

Zur Linux-Treiber-Entwicklung gibt es unter folgendem Link eine ältere Einführung, die aber im wesentlichen nach wie vor noch gilt:
ftp://mail.tm.informatik.uni-frankfurt.de/pub/papers/ir/kernelbook.pdf
Dabei erhält man recht schnell ein simples Treiberskelet.

Dieses Skelet sollte man dann durch die im Datenblatt beschriebene SW-Ansteuerung (Initialisierung, SPI-Protokoll, etc.) mit Leben füllen. Für den SPI-Part solltest du das SPI-Subsystem benutzen, das natürlich im Kernel bzw. als nachladbares Modul aktiv sein sollte. Beispiele zum Verwenden des Subsystems finden sich in etlichen anderen Treibern. Der Kernel bietet darüber hinaus noch etliche Synchronisierungs-, Timer- oder Speicherfunktionen, die man nach Bedarf einsetzen sollte.

Damit sollte die Anbindung "nach unten" zur Hardware durch sein. Danach solltest du dir Gedanken machen, wie du den Treiber zum User-Space darstellst, d.h. ein Interface über das Device-File und wahrscheinlich auch sysfs definieren. Damit solltest du dem Treiber Konfiguration (sysfs) und Display-Inhalt (Device-File) übergeben können.
Alternativ bietet Linux auch bereits ein Framebuffer-Device-Framework als Standard. Beispiel-Treiber dazu finden sich im Kernel-Repository unter /drivers/video/fbdev. Das hat den Vorteil, dass man viele Tools/Bibliotheken nutzen kann, die auf Framebuffern auffsetzen (z.B. Framebuffer-Konsolen, DirectFB, X-Server).

Die Touchscreen-Ansteuerung ist wahrscheinlich getrennt vom Display und benötigt wohl einen eigenen Teiber der das Input-Subsystem nutzt (Kernel-Repository drivers/input/touchscreen).

Wenn es schon einen Treiber gibt für Linux, ersparst du dir den ganzen Kram natürlich;)