DOGM163B, 5V, SPI: Initialisierung geht nicht

OP #1736823
Lesenswert?

Hallo,

ich bin fast am Verzweifeln. Ich habe ein Display EA DOGM163B, bei dem 
schon die Initialisierung nicht funktioniert. Es gibt zwar im Forum 
einige Beiträge, aber alles was ich versucht habe, geht nicht.

* Ansteuerung mit ATmega128
* Display versorgt mit 5V
* 100nF Abblock-Kondensator an Versorgungspins vom Display
* Beleuchtung ist an
* Hardware-SPI vom AVR (Pegel und Phasenlage gemäß Oszi OK)
* SPI-Takt 115,2 kHz (mit Oszi nachgemessen)
* RS und CS-Pins sind während dem Initialisieren immer auf Low
* Beschaltung des Displays wie folgt:
+5V: Pin 24, 25, 26, 30...37
GND: Pin 23, 27
NC: Pin 21, 22
MOSI-Signal vom AVR: Pin 28
SCK-Signal vom AVR: Pin 29
RS-Signal vom AVR: Pin 39
CS-Signal vom AVR: Pin 38


Hier die Initialisierung gemäß Display-Controller, die eigentlich so 
funktionieren sollte (die Zeit der Funktion "delay_DOGM" beträgt ca. 
100µs):

spi_fuer_DOGM(0b00111001);  // Function set
delay_DOGM();        // mind. 26,3µs warten
spi_fuer_DOGM(0b00111001);  // nochmals Function set
delay_DOGM();        // mind. 26,3µs warten
spi_fuer_DOGM(0b00011101);  // int Oszillatorfrequenz wählen
delay_DOGM();        // mind. 26,3µs warten
spi_fuer_DOGM(0b01111100);  // Contrast setzen  0x50
delay_DOGM();        // mind. 26,3µs warten
spi_fuer_DOGM(0b01010000);  // Power/ICON/Contrast Control
delay_DOGM();        // mind. 26,3µs warten
spi_fuer_DOGM(0b01101100);  // Follower Control  // 0x6C

volatile unsigned int ucTimer;
// mind. 200 ms warten
for (ucTimer = 0 ; ucTimer < 2000 ; ucTimer++)
  delay_DOGM();    // 100µs

spi_fuer_DOGM(0b00001111);  // Display on/off-Control
delay_DOGM();        // mind. 26,3µs warten
spi_fuer_DOGM(0b00000110);  // Entry Mode (Cursor Auto increment)
delay_DOGM();        // mind. 26,3µs warten
spi_fuer_DOGM(0b00000001);  // Display löschen
delay_DOGM();        // mind. 26,3µs warten


... aber das Display bleibt davon unbeeindruckt. Es sollte ja der Cursor 
auftauchen.

Das Display ist aber nicht defekt. Wenn ich es in das USB-Testboard vom 
Displayhersteller stecke, funktioniert es problemlos.
Ich hoffe es kann mir jemand weiter helfen.

Gruß
Martin
#1737091
Lesenswert?

Was mir sonst noch auffällt: Deine Initialisierungssequenz ist ein klein 
wenig anders als im Datenblatt von EA beschrieben:
0x39,0x1d,0x50,0x6c,0x7c,0x0f,0x01,0x06

Keine Ahnung, ob das wichtig ist, aber ansonsten finde ich beim 
Rüberschauen nichts, was sonst falsch sein könnte.

fchk
#1804658
Lesenswert?

Hallo Martin,

würdest du eventuell deinen gesamten Quellcode bezüglich SPI und 
Display-steuerung hier veröffentlichen?

Ich versuche gerade mit einem Atmega8 einen Konverter von RS232 auf SPI 
zu realisieren, um dann ein DOGM-Display vom PC aus anzusteuern. Dabei 
wäre es eine super Sache mal in deinen Code rein zu schauen.

viele Grüße

Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren