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
Martin M. schrieb: > * 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 Was ist mit Reset Pin 40? Sollte auch auf +5V. fchk
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
Frank K. schrieb: > Was ist mit Reset Pin 40? Sollte auch auf +5V. oh Schande schäm, den hab ich doch glatt übersehen. Nun gehts. Vielen Dank für den Tipp!!!!! Manchmal sieht man vor lauter Bäume den Wald nicht.
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
Hallo Michael, anbei der Sourcecode. Ich hoffe es hilft.... Ich verwende das 3-zelige Display nicht mehr, sondern habe mich nun für ein Grafikdisplay mit 128x64 Pixel entschieden. Gruß Martin
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.