Nachdem ich für einen Bekannten ein Nokia N95 8GB neu aufgesetzt und seine Daten überspielt hatte, war ich von dem verbauten Display überrascht. Die für ein Handy recht große Displayfläche und gute Auflösung machen das Display für eigene Entwicklungen interessant. Auf der Suche nach Informationen bin ich im Internet auf die Seiten von Andy Brown gestoßen. Auf diesem beschreibt er, wie er verschiedene Nokia-Displays einem Reverse Engineering unterzogen hat und dadurch die Ansteuerung bzw. den Displaycontroller ermitteln konnte. Das größte Display seiner Nokia-Serie stammt glücklich weiße aus einem N95 8GB. Daraufhin habe ich mich mit diesem Display etwas näher auseinander gesetzt und die Ergebnisse auf dieser Seite dokumentiert.
Detailinformationen zum Display
Herkunft: | Nokia N95 8GB (überarbeitete Version des N95) |
Display-Anzeigefläche: | 57 x 42 mm - 2,8" |
Display-Auflösung: | 320 x 240 Pixel - QVGA |
Display-Farben: | 16.777.216 Farben |
Display-Modul Maße: | 67 x 47 x 2 mm |
Display-Beleuchtung: | Transflektiv |
Display-Controller: | LDS285 |
Nokia N95 8GB Display-Modul im Größenvergleich mit einer Euromünze |
Wie man auf dem Foto sehen kann, ist das Display sehr kompakt. Besonders die geringe Dicke von nur ca. 2 mm ermöglicht den Einbau in besonders kleine und flache Geräte.
Rückseite des Nokia N95 8GB Display-Modul |
Steckverbinder
Das Display-Modul des Nokia N95 8GB kommt im Gegensatz zum Display des Vorgänger-Handys N95 mit einem 24 poligen Steckverbinder am FPC. Dadurch lässt sich dieses etwas besser in eigene Schaltungen integrieren.
Steckverbinder des Nokia N95 8GB Displays |
Das notwendige Steckersystem ist vom Typ JST 24R. Pitch ist 0,4 mm. Die folgenden Bilder zeigen die passende Buchse zum Display-Stecker.
Display-Adapter
Der Versuch, dünne Litze direkt an die Buchse an zulöten, ist gescheitert, da sich die einzelnen Pins schon bei minimaler Belastung aus dem Steckverbinder lösen. Deshalb habe ich eine Adapterplatine erstellt, welche die Signalleitungen des Displays im gut zu verarbeitenden 2,54 Raster zur Verfügung stellt. Dadurch kann das Display auf Lochrasterplatinen oder mit Pfostensteckverbindern mit der Zielhardware verbunden werden. Damit ließen sich dann einfach eigene Versuche mit dem Display durchführen.
![]() |
Schaltplan des Display-Adapters |
Generell handelt es sich um einen 1:1 Adapter, der jeden einzelnen Pin des Displaysteckers zur Verfügung stellt. Dies hat den großen Vorteil, dass die Platine auch universell für andere Nokia Displays dieser Serie mit gleichem Steckverbinder genutzt werden kann, die zum Teil eine abweichende Pin-Belegung besitzen. Speziell für das N95 8GB Display können die vier Bauelemente R1 und C1-C3 in der Bauform SMD 0805 auf der Platine bestückt werden, welche die Versorgungsspannung puffern und den RD/Reset Pin beschalten. Über die optionale Lötstelle SJ1 lässt sich Pin 1 des Displays auf Masse legen und mit SJ2 können die getrennten Versorgungsspannungen VBAT und VIO_APE miteinander verbunden werden.
![]() | ||
Layout des Display-Adapters |
Vorder- und Rückseite der Platine |
bestückte Platine |
Von den Adapterplatinen habe ich aufgrund der geringen Größe einige mehr fertigen lassen. Bei Interesse an einer Platine oder dem passenden Displaystecker könnt Ihr über das Kontaktformular unter About mit mir Kontakt aufnehmen. Solange der Vorrat reicht.
Verbindung mit STM32F4 Discovery
Die Verbindung mit dem STM32F4 Discovery Board ist denkbar einfach. Folgende Tabelle zeigt die notwendigen Verbindungen am Beispiel eines STM32F4-Discovery-Evaluation-Boards.
Display Pinbelegung an Adapterplatine | STM32F4 Discovery Pin |
Pin 1: KBBC | GND |
Pin 2: GND | GND |
Pin 3: WR (Write Enable) | PD5 |
Pin 4: CS (Chip Select) | PD7 |
Pin 5: D6 | PE9 |
Pin 6: D4 | PE7 |
Pin 7: D2 | PD0 |
Pin 8: D0 | PD14 |
Pin 9: GND | GND |
Pin 10: 3V3 (VIO_APE) | 3V3 |
Pin 11: GND | GND |
Pin 12: 3V3 (VBAT) | 3V3 |
Pin 13: 3V3 (VBAT) | 3V3 |
Pin 14: GND | GND |
Pin 15: TE (Tearing Effect) | --- |
Pin 16: RES (Reset) | PE1 |
Pin 17: D1 | PD15 |
Pin 18: D3 | PD1 |
Pin 19: D5 | PE8 |
Pin 20: D7 | PE10 |
Pin 21: RS (Register Select) | PD11 |
Pin 22: RD (Read Enable) | PD4 |
Pin 23: GND | GND |
Pin 24: 3V3 (VIO_APE) | 3V3 |
Die GND-Pins sind im Display miteinander verbunden. Mittels SJ2 können auch alle 3V3 Pins auf der Platine miteinander verbunden werden. Somit müssen nicht alle Versorgungs-Pins der Platine verbunden werden. Die Nummerierung der Stiftleiste ist auf der Platine gekennzeichnet und identisch mit der Nummerierung des Display-Steckers.
![]() |
Anzeige von Text |
![]() |
Darstellung von Bildern |
Anbei noch ein kurzes Video des Displays im Betrieb mit der Adapter-Platine am STM32F4 Discovery:
STM32F4-Discovery LCD-Shield
Neben der universell einsetzbaren Adapterplatine habe ich noch ein LCD-Shield konstruiert, welches die Nutzung speziell in Verbindung mit dem F4-Discovery-Board vereinfacht. Somit lässt sich das Display einfach als Shield auf das Discovery-Board aufstecken.
Ein optionaler 3.3V Regler auf der Platine kann aus der 5V Versorgungsspannung des Discovery-Boards die notwendige Displayspannung erzeugen. Alternativ können kann aber auch die 3V des Discovery-Boards durchverbunden werden. Ebenfalls optional können die Buttons "User" und "Reset" sowie die vier Discovery LEDs bestückt werden, welche durch die Shield-Platine verdeckt sind. Die Breite des Shields ist identisch mit der des Discovery Boards.
Da das Display leider nicht wirklich zwischen die beiden 50-poligen Stiftleisten des Discovery-Boards passt, wurden diese zum Shield durchverbunden und etwas nach außen gesetzt (im 2,54 Raster). Die Beschriftung der einzelnen Pins auf dem Shield wurde als Bestückungsdruck hinzugefügt. Das Display kann bspw. mit einem Stück doppelseitigen Klebeband mit der Platine verbunden werden. Alternativ existieren vier Lötpunkte an den Ecken. Das Shield besitzt eine größere Ausfräsung an der Stelle des Kopfhörer-Anschlusses. Auch von den Shield-Platinen habe ich noch ein paar Platinen zu vergeben. Bei Interesse einfach melden.
![]() |
unbestückte Shield Platine |
![]() |
N95 8GB Shield auf STM32F4-Discovery |
![]() |
N95 Shield in Betrieb |
Anbei noch ein kurzes Video des Displays im Betrieb mit der Adapter-Platine am STM32F4 Discovery:
Software
Wie bereits erwähnt, lohnt sich ein Besuch der Seiten von Andy Brown (Suchmaschine). Er hat eine sehr umfangreiche C++ Library für verschiedene Display Typen mit unterschiedlichen Controller entwickelt, welche die Ansteuerung sehr einfach und komfortabel gestalten. An dieser Stelle nochmals vielen Dank an Andy Brown für das Reverse Engineering und den Code. Ohne diese Vorarbeit wäre diese Software nicht entstanden.
Da ich momentan in vielen Projekten mit C statt mit C++ programmiere, habe ich mich dazu entschieden, die generelle Ansteuerung des Displays nach C zu portieren. Nach einigen Versuchen ist mir dies auch gelungen. So könnt ihr auf meiner Seite ein C-Variante herunterladen, welche die grundlegende Initialisierung und Ansteuerung des Displays erlaubt.
Den aktuellen Source Code findet Ihr unter folgendem Link:
http://www.mikrocontroller.net/topic/320791
Zum Kompilieren verwende ich den GCC und die Yagarto Toolchain. Es sollte mit geringen Anpassungen aber auch mit anderen Entwicklungsumgebungen laufen. Zusätzlich wird die kostenfreie ST Firmware Bibliothek benötigt. Das STM32F4 Discovery Board sollte auf eine Taktfrequenz von 168 MHz konfiguriert werden.
Für die Ansteuerung des Displays wird der FSMC Bus der STM32F4 Controller verwendet. Alle Funktionen und Treiber befinden sich in den zugehörigen *.c/*.h Files. Die Initialisierung erfolgt über den Aufruf der Funktion LDS285_Init_Display(); und eine kurze Demonstration ist über den Aufruf der Funktion LDS285_Demo(); möglich.
Der Code ist kommentiert und sollte sich soweit von selbst erklären. Funktionen zum Zeichnen von geometrischen Formen, zur Ausgabe von Text oder zur Darstellung von Abbildungen wie im Video lassen sich einfach aus anderen Display-Projekten integrieren. Diese sind jedoch im Code nicht enthalten.
Zusammenfassung
Das Handy-Display eignet sich aus meiner Sicht sehr gut für eigene Projekte, vor allem bei mobilen, batteriebetriebenen Geräten mit geringem Platz. Prinzipiell kann man es mit dem S65-Display vergleichen. Ich habe die positiven und negativen Punkte in einer Tabelle zusammen getragen, gerade auch im Bezug auf die vielen günstigen Displays aus China, welche gleiche Auflösungen bieten.
Vorteile:
- Versorgungsspannung von 3,3V ausreichend auch für Hintergrundbeleuchtung
- gute Bildqualität, Auflösung und Farbdarstellung etc.
- geringes Gewicht und Abmessungen
- günstiger Preis (als Ersatzteil auf Auktionsseiten um die 10€)
- einfache und schnelle Ansteuerung mit wenigen Pins (FSMC 8-Databits)
Nachteile:
- die Displayoberfläche ist ohne Schutzfolie empfindlich für Kratzer
- kein Touch-Screen
Damit bleibt mir nur noch viel Erfolg beim Einsatz in eigenen Projekten zu wünschen!
Bei Fragen könnt Ihr mit mir unter About über ein Mail-Formular in Kontakt treten.