How to: Nokia 6100 Display (Kurz-Tutorial) 7


–> new: english version

Das Ansteuern des Nokia 6100 LCDs ist zugegebener Maßen einwenig tricky. Deswegen möchte ich heute ein paar Webseiten, sowie ein von mir geschriebenes Software-Tool vorstellen, die alles zu einem Kinderspiel werden lassen.

Also, was brauchen wir alles?
1. Das Display selbst, das bekommt man günstig beim Auktionshaus des Vertrauens (ebay.de o. ä.).
2. Noch ein bißchen Hardware (einen AVR-Mikrocontroller (wie den ATmega32) zum Ansteuern des LCD und wer sich die fieselige Lötarbeit am Display ersparen und nicht noch eine zweite Spannung mit einem zweiten Netzteil zur Verfügung stellen will, der kauft noch bei Sparkfun.com eine Anschlussplatine für das LCD (http://www.sparkfun.com/).
3. Dann brauchen wir noch den Sourcecode zum Ansteuern des Displays. Hier sollte man darauf achten, ob man bei Ebay ein LCD mit einer braunen oder einer grünen Platine ersteigert hat. Denn diese haben unterschiedliche Controller.
Zum Code für die braune Platine bitte hier entlang: braune Platine
Zum Code für die grüne Platine bitte hier klicken: grüne Platine
(Bei dem Link zur grünen Platine gibt es noch einen Schaltplan (welcher die Anschlussplatine von Sparkfun vorraussetzt).)

Ich selber habe nur mit der grünen Platine und dem dazugehörigen Code gearbeitet. Der Sourcecode bietet nur die Möglichkeit, die Pixel einzeln auf dem Display anzusteuern. Nun wäre es ja überaus geschickt eigene Bilder anzuzeigen. Wie löst man nun dieses Problem?
Ganz einfach, man nimmt mein „Bitmap to RGB8 Converter“-Tool. Es erzeugt aus einem Bitmap-File ein h.-File mit einem Array aus RGB8-Bytes. Dieses bindet man einfach in das Projekt ein und sendet über die „LCD_put_pixel(color, x, y)“-Funktion die Bitmap-Pixel an das LCD. Mit den beiden #defines image_height, image_width lassen sich die beiden Parameter (Bildhöhe und Bildweite) in der for-Schleife elegant steuern (siehe Codebeispiel unten).

Download:
Bitmap2RBG8-Konvertierungstool

(Hinweis: Das Programm ist in C# geschrieben worden und benötigt das neueste .net-Framework, bitte beachte auch das Licence-File)


/*
  Auszug Quelltext
  Enthält angepassten Code der der Seite http://www.e-dsp.com/controlling-a-
  color-graphic-lcd-epson-s1d15g10-controller-with-an-atmel-avr-atmega32l/
*/

/*
die beiden defines aus dem vom Bitmap2RBG8-Konvertierungstool erstellten *.h-File

#define image_width
#define image_height
*/

for (y = 0; y < (image_width); y++) {   for (x = image_height; x > 0; x--)
  {
    LCD_put_pixel(0x0, x-1, y);
  }
}


Kommentar erstellen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

7 Gedanken zu “How to: Nokia 6100 Display (Kurz-Tutorial)

  • Kurt

    Ich habe mit auch mit dem Nokia 6100 mit Epson Chip befasst. Laut Epson Datenblatt und Publikation von James P. Lynch http://www.sparkfun.com/tutorial/Nokia%206100%20LCD%20Display%20Driver.pdf kann man den Chip mit 8, 12 oder 16 Bits pro Pixel ansteuern.
    Alle Beispiele die ich bis jetzt gesehen haben arbeiten systematisch mit 12 Bits ausser Deins. Ich bringe leider den Chip unmöglich auf den 8 Bit Modus zu arbeiten!! Dein Beispiel scheint aber mit 8 Bits zu funktionieren. Ich benütze exact die gleiche Init Sequenz wie Du! Hattest Du nie Init schwierigkeiten?
    Mit 12 Bits läuft alles perfekt.

  • Kurt

    Ja, habe ich.
    Mit dem 12 Bits Interface funktioniert es sehr gut.
    Inzwischen habe ich schon ganze Menüs die gut funktionieren.
    Musste lediglich die Pixelsetzfunktion anpassen.

  • mostafa

    my lcd cant work at 8 bit color interface
    my lcd work well at 12 bit color interface
    and now i want a softwear can convert bmp2rgb12 or rgb8 2 rgb12 convertor
    can you make this softweare
    thanks

    • SES

      Hi Mostafa,

      I will put the sourcecode of the converter tool online, so you can adjust the programm if you want.

      You’ll only need Visual C# Express from Microsoft.

      Sebastian

  • Martin

    Dein Link zu dem Epson code für das nokia 6100 geht nciht mehr …
    kannst du mir den code und ein Beispiel für einen atmega per Mail schicken?

    danke martin