Diesmal geht es um die Ansteuerung eines Displays von electronic Assembly . Die Überschrift des Artikels verrät es schon, es geht um ein EA DOGL (hier im speziellen um ein EA DOGL128W-6) mit dem ST7565R Controller. Das Display hat ist ein grafisches Dsiplay mit 128×64 Pixeln. Dabei hat das Display eine recht schlanke Bauform mit den Maßen 60,875*32,945 mm.
Angesteuert wird das Display über das Serial Peripheral Interface (kurz SPI). Das ist ein weit verbreiteter Bus Standard mit 3 Leitungen (+1 je Teilnehmer). Das Display besteht in der Regel aus zwei Komponenten, die einzeln gekauft werden müssen. Zum einen das Display selbst und zum anderen die Hintergrundbeleuchtung in verschiedenen Farben. Das Display selbst ist in fünf verschiedenen Techniken (Schwarz auf Hintergrundfarbe, Hintergrundfarbe auf Schwarz, …) erwerbbar. Hinzu kommen sieben verschiedene Farben für die Hintergrundbeleuchtung. Da allerdings nicht jede Variationen miteinander kompatibel sind, kommt man auf 20 verschiedene Konstellationen. Wem die Größe des DOGL nicht passt, der kann gerne auf die Brüder DOGM, DOGXL, … zurückgreifen (oder auch DOGS). Des Weiteren lässt sich optional noch ein analoges resistives Touchpanel auf das Display anbringen, um das Display sowohl als Ausgabe wie auch als Eingabe nutzbar zu machen.
Technisches
Wie schon in der Einleitung erwähnt wird das Display über den SPI Bus angesteuert. Das Display ist für den Betrieb an 3,3 Volt entworfen und eignet sich somit hervorragend für autarke Systeme. Wählt man eine Kombination des Displays + Hintergrundbeleuchtung, welche auch bei ausgeschalteter Beleuchtung gut ablesbar ist, so kann man ein stromsparendes mobiles System entwerfen, welches Batteriebetrieben arbeiten kann.
Und genau das habe ich in meinem Projekt Mini-Anzeige-Modul getan. Wer schon mal einen Blick in das Datenblatt geworfen hat, wird sich eventuell wundern, wie der Kontrast für das Display eingestellt wird. Von Displays mit Controllern ala HD44780 ist man es gewohnt den Kontrast mit einem Potentiometer einzustellen. Nicht aber bei diesem Display hier wird der Kontrast des Display wird per Software eingestellt.
Ansteuerung
Ich stelle euch meine Ansteuerungsroutinen für das eA DOGL Display zur Verfügung. Das von mir verwendete Display ist das EA DOGL128W-6 mit Amber-Hintergrundbeleuchtung . Ich habe mich speziell für diese Kombination entschieden, da diese Version des Display auch ohne eingeschaltete Hintergrundbeleuchtung ablesbar ist. Die hier angebotenen Routinen sind mit dem Compiler XC8 in der Version 1.6 geschrieben. Die Routinen sollten aber auch, wenn auch mit minimalen Anpassungen, mit zum Beispiel dem C18 Compiler arbeiten. Für die Kommunikation mit dem Display stehen folgende Signale zur Verfügung:
-
- CLK: Der vom Master (PIC) erzeugte Takt für die synchrone Datenübertragung
- SI: Die Datenleitung vom PIC zum Display
- CS1B: Chip Select, um den Slave für die Datenübertragung auszuwählen
- A0: Übertagung von Daten (High), Befehle (Low)
Das Angebot der hier verfügbaren Routinen beinhaltet folgende Funktionen:
-
- Initialisierung des Displays mit veränderbaren Default-Kontrast
- Löschen des gesamten Bildschirminhaltes mit anschließendem Sprung auf Zeile 0, Spalte 0
- Ausgabe einer Zeichenkette (normal/invertiert) an beliebiger Adresse
- Sprung zu einer gewünschten Adresse mit Zeile, Spalte
- Erhöhen/Verringern des Display Kontrast
Font
Im Download befindet sich eine Datei mit dem Namen font.h. Sie beinhaltet einen Zeichensatz mit variabler Zeichenbreite, die mit den Routinen für das Display zusammen arbeiten. Das folgende Foto zeigt den Zeichensatz in Aktion:
Download
Hier gibt es die Ansteuerungsroutinen samt Font als Archiv zum Download. Wenn Ihr Fehler feststellt oder Probleme mit der Ansteuerung des Displays habt, dann meldet Euch im Forum.
Bitte beachten: Die Dateien main.c und main.h dienen lediglich zum Verständnis wie die Routinen zu verwenden sind. Sie werden durch die Dateien eures Projektes ersetzt.