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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.