Forum: Mikrocontroller und Digitale Elektronik Initialisierungsfolge fuer EA DOGM 163 SPI 3.3V


von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hallo Forum,

ich hab etliche alte Threads gewaelzt und versucht, herauszufinden, 
welche Initialisierungsfolge man braucht, um das EA DOGM 163 (3 Zeilen) 
per SPI und 3.3V anzusteuern.

Leider funktioniert nichts von dem, was ich ausgegraben habe, selbst mit 
grosszuegigen timings. Ach die Beispielfolgen aus dem Datenblatt wollen 
nicht tun bei mir.

Generelle Fehler bei der Datenuebertragung kann ich nunmehr zumindest 
ausschliessen - das ist OK. Ich waere dankbar, wenn mal jemand eine 
C-Routine bzw. seine Initialisierungsroutine posten koennte.

Aber bitte GENAU fuer dieses Display und bei dieser Spannung, denn die 
Initialisierung ist bei 5V anders als bei 3.3V.

Schonmal danke.
Michael

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

AHA... ich seh grad dass das Display offensichtlich initialisiert ist 
aber der Kontrast quasi auf Null ist...!

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Also am Kontrast liegt es offensichtlich auch nicht, da keine 
Einstellung zum Erfolg fuehrt... :( Ich hab zwar statt den 3Ohm fuer das 
Display 10Ohm verwendet, da ich nichts kleineres hatte, aber das kann ja 
wohl nicht das Problem sein, da die Beleuchtung sehr hell ist. Worin 
koennte also das Problem bestehen?

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Naja offensichtlich erbarmt sich keiner... ich denk ich bin jetzt auch 
bald am Ende fuer heute. Wuesste nicht, was ich noch ausprobieren soll.

von Daniel R. (sliderbor)


Angehängte Dateien:

Lesenswert?

Hast du schon das Datenblatt des Displaycontrollers gefunden? Da steht 
auch ein Initialisierungsbeispiel für SPI drin und alle möglichen 
Timings usw.

Ich überlege auch gerade, ob ich mir dieses Display zu Übungszwecken 
kaufen soll, denn das S65 Display bekomme ich an meinem 8051er nicht so 
einfach zum Laufen. Bei diesem steht aber sogar ein Programmbeispiel für 
die Initialisierung mit dem 8051er über SPI im Datenblatt des 
Controllers.

Habs mal angehangen...

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Daniel, danke. Natuerlich hab ich das Datenblatt.
Ich hab das Display auch soweit dass es etwas anzeigt, aber fast 
unsichtbar. Das scheint mir ein Problem mit dem Kontrast oder sonst 
irgendeiner Einstellung zu sein. An den Timings kann es nicht liegen, da 
ich testweise 10ms (und mehr) Verzoegerung eingebaut habe.

Bloederweise scheint jeder ne andere Initialisierungsfolge zu verwenden. 
Ich habe auch schon versucht an den Kontrastwerten usw. zu drehen, 
leider ohne Erfolg. Anscheinend haben andere mit der 
Initialisierungsfolge aus dem Datenblatt auch schon Probleme gehabt. 
Dann muss es ja ein Problem mit der Schaltung sein bei mir. Aber das 
glaub ich dann auch wieder nicht, da die Daten ja ankommen und 
ausgewertet werden...

von Daniel R. (sliderbor)


Lesenswert?

Ok, war nur so einen Idee, da das Datenblatt nur indirekt verlinkt war. 
=)

Mal ne andere Frage... Nach dem, was in dem Datenblatt vom Controller 
steht, müsste man das Display doch auch mit 3V betreiben können, oder?

Oder gibt es noch andere wichtige Komponenten im Display, die unbedingt 
die 3,3V brauchen?

Die Hintergrundbeleuchtung (weiß) hat 3,2V Forward Voltage, sollte also 
auch direkt mit 3V gehen, nur eben nicht ganz so hell, oder?

Habe mir soeben auch das Display bestellt, da ich es sehr schick finde 
und schön kompakt ist.
Problem ist, dass mein Testboard (womit ich das Display nutzen will) mit 
3V läuft. Im Notfall könnte ich den 3V Regler gegen einen 3,3V Regler 
austauschen, aber nur ungerne.

Und noch was: Mit welcher Frequenz betreibst du das SPI Interface?

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Daniel Reinke wrote:
> Ok, war nur so einen Idee, da das Datenblatt nur indirekt verlinkt war.
> =)

Joa das wesentliche aus diesem Datenblatt steht ja auch schon im 
"Datenblatt" zu dem Display selbst ;) Ich mein das meiste dort bezieht 
sich auf die Verwendung des Controllers, das ist aber recht uwesentlich 
fuer meine Applikation, da ich ja kein Display entwickeln will.

> Mal ne andere Frage... Nach dem, was in dem Datenblatt vom Controller
> steht, müsste man das Display doch auch mit 3V betreiben können, oder?

Man kann es mit 3.3V betreiben, ja.

> Oder gibt es noch andere wichtige Komponenten im Display, die unbedingt
> die 3,3V brauchen?
>
> Die Hintergrundbeleuchtung (weiß) hat 3,2V Forward Voltage, sollte also
> auch direkt mit 3V gehen, nur eben nicht ganz so hell, oder?

Mit 3V wird da garnichts gehen. Mit 3.3V und einem entsprechend kleinem 
Widerstand geht es allerdings.

> Habe mir soeben auch das Display bestellt, da ich es sehr schick finde
> und schön kompakt ist.

Welches? Ich hoffe Du hast auch das Beleuchtungsmodul mitbestellt? ;)

> Problem ist, dass mein Testboard (womit ich das Display nutzen will) mit
> 3V läuft. Im Notfall könnte ich den 3V Regler gegen einen 3,3V Regler
> austauschen, aber nur ungerne.

Ne mit 3V geht da nichts.

> Und noch was: Mit welcher Frequenz betreibst du das SPI Interface?

250KHz.

Gruss,
Michael

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ach ja... hier mal mein Schaltplan.

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Tuedeldue und hier das Board...

von Daniel R. (sliderbor)


Lesenswert?

Ok, im Notfall muss ich dann halt nen 3,3V Regler auflöten.

Hintergrundbeleuchtung hab ich natürlich mitbestellt! Habe die schwarze 
Version genommen mit weißer Hintergrundbeleuchtung.

Hast du die Codebeispiele aus den anderen Threads hier im Forum schon 
ausprobiert?

Wie sehen eigentlich die Pins vom Display aus, kann man die auf eine 
Sockelleiste mit runden Löchern stecken? Wäre sehr praktisch...

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich hab auch die schwarze Version - Vordergrund weiss (es gibt ja auch 
eine mit Vordergrund schwarz).

OK momchen ich mach mal ein Bild...

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Guckst Du ;)
Auf so ne runde Sockelleiste wird es nicht reinpassen - Pins sind zu 
breit.

von Daniel R. (sliderbor)


Lesenswert?

Ich habe das "EA DOGM163S-A  DOG-Serie 3,3V Hintergrund: schwarz" von 
Reichelt bestellt. Also das, wo nur die Schrift weiß ist. Finde ich sehr 
schick, daher hab ich das bestellt.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Joa es muesste nur noch funktionieren, dann waere es sicher toll ;P

von Daniel R. (sliderbor)


Lesenswert?

Danke für das Bild! Aber leider kann ich nicht genau erkennen, ob die 
Pins rund oder flach (wie bei DIP ICs) sind. Sorry... =(

EDIT: Ahh, hast deinen Beitrag überarbeitet. Alles klar!

Wie kann ich denn dann das Display "wiederverwendbar" machen?

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hm also ich hab den Beitrag nacheditiert, hast wahrscheinlich nicht 
gesehen: Mit Aufstecken wirste zumindest bei den runden Stiftleisten 
(wie bei den Praezisionssockeln) keine Chance haben. Schau genau hin 
dann siehst es ;)

Bzw. halt ma... das koennte sogar funktionieren!

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Schreiben wir mal kurz per ICQ? 307682079
Waere gut wenn wir hier nicht zu weit abschweifen wuerden...

von Marvin M. (Gast)


Lesenswert?

Ich habe schon die verschiedensten DOGM von Reichelt verwendet (auch die 
Grafik-Typen) und ich habe immer mit der Initialisierung aus dem 
mitgelieferten Datenblatt erfolg gehabt.
Irgendwas muss an der Hard- oder Software faul sein.
- alle Kondensatoren richtig angeschlossen (sind für die 
Kontrastspannung wichtig!)
- Phasenlage der SPI richtig?
- Spannungsversorgung sauber? (Abblockkondensatoren)

von Gast (Gast)


Lesenswert?

Die Displays passen in Sockelleisten mit runden Löchern, bei heraus 
hebeln muss man nur sehr vorsichtig vorgehen.

von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Die Beschaltung von C3 und der PINS 24,25 ist falsch. Reset sollte auf H 
liegen, der C ist nicht erforderlich.

Als Anlage ein Beispiel für alle 1-3 Zeilige DOG-M Displays in C mit 
Soft-SPI für 8051 µC. Kannst Du leicht auf AVR anpassen.

von Thomas O. (tarzanwiejane)


Angehängte Dateien:

Lesenswert?

@michael g.
Ich habe dir mal meine c routine rangehaengt. Funktioniert bei mir 
wunderbar. Cpu ist ein atmega16.
System ist fuer 3.3V und Anschluss an das Hardware-SPI vom Atmega.

cu Tarzanwiejane

von Thilo M. (Gast)


Lesenswert?

Ich habe hier
Beitrag "Dog-M / ST7036 Routine für 1-Zeiliges Display SPI-Mode"
mal meinen Displaytreiber für das dreizeilige Teil gpostet.
Per SPI für 'nen ATmega32@16MHz. Ist für 5V, aber die Beschaltung für 
3.3V sollte kein Problem darstellen.

Vielleicht hilft dir das weiter.

von Thomas O. (tarzanwiejane)


Angehängte Dateien:

Lesenswert?

@thilo
naja die Beschaltung mit 3.3V und 5V ist auch softwaretechnisch anders 
zu behandeln. -> Ladungspumpe an oder aus halt.

Zum Thema Display in Praezisionsfassungen stecken (die runden) -> jupp 
geht habe ich gemacht. Natuerlich nicht so schoen smoothig wie wenns 
runde Kontakte waeren, aber geht.

cu Tarzanwiejane

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hi Leute,

heute nacht waren anscheinend die Klabautermaenner bei mir. Hab das Teil 
eingeschalten und auf einmal tut es... und zwar reproduzierbar und nicht 
sporadisch! Und das obwohl ich seit gestern nichts mehr geaendert habe. 
Auch toll :P

Ach ja: Ich verwende momentan die im EA Datenblatt ausgezogene 
Initialisierungsfolge (0x39, 0x15, 0x55, 0x6E, 0x72, ...).

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Matthias wrote:
> Die Beschaltung von C3 und der PINS 24,25 ist falsch. Reset sollte auf H
> liegen, der C ist nicht erforderlich.
>
> Als Anlage ein Beispiel für alle 1-3 Zeilige DOG-M Displays in C mit
> Soft-SPI für 8051 µC. Kannst Du leicht auf AVR anpassen.

Danke Matthias ;) Deinen Code hatte ich auch bereits ausgegraben aus der 
Codesammlung - ist nicht schlecht. Sogar mal gut lesbar im Vergleich zu 
manch anderen Beitraegen. Du hast auch die Initialisierungsfolge aus dem 
Datenblatt verwendet, die ja auch tatsaechlich tut.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Matthias wrote:
> Die Beschaltung von C3 und der PINS 24,25 ist falsch. Reset sollte auf H
> liegen, der C ist nicht erforderlich.

Erm was soll daran falsch sein? Und Reset liegt auf High!

Gruss,
Michael

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier noch der Beweis ;)

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

OMG jetzt seh ich grad wo das Prob is!!!!
Dieses vermaledeite STK500 hat einfach seine Target-Spannung auf 5V 
erhoeht... :( Das is jetzt nicht wirklich kritisch fuer diese Schaltung 
aber das is nen "bissel" scheise :(

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Matthias wrote:
> Die Beschaltung von C3 und der PINS 24,25 ist falsch. Reset sollte auf H
> liegen, der C ist nicht erforderlich.

OK Matthias.
Ich hab C3 jetzt korrekt angeschlossen (- auf VIN, + auf VOUT, 3V3 an 
VIN).
Leider hat es nichts geholfen :( Selbe symptomatik wie zuvor :/

von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

> Die Beschaltung von C3 und der PINS 24,25 ist falsch. Reset sollte auf H
> liegen, der C ist nicht erforderlich.

@ Michael G.
> Erm was soll daran falsch sein? Und Reset liegt auf High!

+3V3 muss an VIN (Pin 25) nicht an VOUT! Das Reset nicht auf H liegt 
habe ich nicht geschrieben, nur das der C nicht sein muss.

von Matthias (Gast)


Lesenswert?

ups, da warst Du schneller als ich. Vielleicht hast Du damit das Display 
gekillt? (Eigentlich sind die DOGM erstaunlich robust!)

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Meinste dass man es damit killen kann?
Auf 5V laeuft es... wuerde es denn auf 5V dann laufen?
Oh man so nen shice :/

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Naja theoretisch kann ich das Board mit 5V laufen lassen und nen 
level-shifter benutzen fuer das TWI. Das is allerdings schon nen bissel 
kacka jetzt alles. Aber wenn's anders nich geht...

von Matthias (Gast)


Lesenswert?

Vielleicht hast Du die interne Ladungspumpe, die nur bei 3.3V gebraucht 
wird, zerschossen(?)

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Moeglich waer's... :/
Nu gut dann mach ich die ganze Schese halt auf 5V.

von Matthias (Gast)


Lesenswert?

Mess mal die Spannung am Vout-Pin bei 3.3V Betrieb. Wenn die 
Ladungspumpe läuft, sollte dort eine Spannung >5V entstehen.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Zu spaet... jetzt hab ich die Geschichte auf 5V umgestellt.
Is mir alles nen bissel zu langweilig geworden in Zwischenzeit hehe :P

P.S. ich mess spaeter mal wenn der Lack trocken ist...

von Puppetmaster (Gast)


Lesenswert?

Kannst du vllt mal deinen Code posten mit dem es jetzt auf 5V läuft da 
ich leider auch schon erfolglos seit einiger Zeit versuche so ein 
Display zum laufen zu bekommen und ich mich inzwischen frage ob das 
überhaupt noch geht.
Wäre echt nett von dir.

Grüße Puppetmaster

von Christian K. (mick-roc)


Angehängte Dateien:

Lesenswert?

So, habe jetzt alles versucht was ihr hier und anderweitig geschireben 
habt und es tut bei mir trotzdem nicht!!!
Ich benutze ein DOGM163, welches ich über SPI von einem Pic18f25K20 
ansteuern will...
Hier mein aktueller Source Code:

#include <p18f25k20.h>
#include "system.h"

#define  CSB  LATCbits.LATC2
#define  RS  LATCbits.LATC1

void main(void)
{
TRISCbits.TRISC1 = 0;
TRISCbits.TRISC2 = 0;
TRISCbits.TRISC3 = 0;
TRISCbits.TRISC4 = 1;
TRISCbits.TRISC5 = 0;        //x, x, SDO, SDI, SCK, CSB, RS, x
SSPCON1 = 0x30;            //x, x, SPI-Portfreigabe, Ruhetakt high, 
Clock = max
SSPSTATbits.SMP = 0;
SSPSTATbits.CKE = 1;

CSB = 0;
RS = 0;

send(0x39);
send(0x15);
send(0x55);
send(0x6E);
send(0x72);
send(0x38);
send(0x0F);
send(0x01);
send(0x06);
RS = 1;
send(0x41);
while(1);
}


unsigned char text;
int bin;
void send(unsigned char text)
  {

  CSB = 0;
     SSPBUF = text;
  while(!SSPSTATbits.BF);
  bin = SSPBUF;
  CSB = 1;
  }

hab jetzt mal alles in ein File gemacht um meinen Code vollständig 
zeigen zu können...
in system.h deklariere ich nur die erzeugten Funktionen....
im Anhang dann noch mein Schaltplan dazu

Habe schon überlegt ob das Problem an der Dimensionierung der Display 
Kondensatoren liegt, aber sie bewegen sich beide im vorgegebenen 
Bereich, was meint ihr?

schonmal ein großes Dankeschön an diejanigen, die sich die Zeit nehmen 
nem Verzweifelten zu helfen^^

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hm den Post vom Puppenmeister hab ich leider nich mehr mitbekommen. Hier 
mal die Initialisierungsfolge, die ich verwendet habe:
1
void display_init(void)
2
{
3
#if BOARD_VOLTAGE == 33
4
  display_send(0x39, CMD); // 8 bits data length, 2 rows, instruction table 1
5
  display_send(0x15, CMD); // bias 1/5, 3 rows
6
  display_send(0x55, CMD); // booster on (3V3=>5V), contrast to internal follower mode
7
  display_send(0x6E, CMD); // follower control
8
  _delay_ms(200);          // wait until the voltage is stable
9
  display_send(0x72, CMD); // set contrast
10
#elif BOARD_VOLTAGE == 50
11
  display_send(0x39, CMD); // 8 bits data length, 2 rows, instruction table 1
12
  display_send(0x1D, CMD); // bias 1/4, 3 rows
13
  display_send(0x50, CMD); // booster off, contrast to internal follower mode
14
  display_send(0x6C, CMD); // follower control
15
  display_send(0x7B, CMD); // set contrast
16
#else
17
# error "Invalid BOARD_VOLTAGE, use 33 for 3V3 and 50 for 5V."
18
#endif
19
20
  display_send(0x38, CMD); // back to instruction table 0
21
  display_cursor(0);       // display on, cursor off
22
  display_clear();         // clear display and return to home position
23
}

von Karel M. (marsalek)


Lesenswert?

Obwohl der Beitrag schon sehr alt ist, muss ich hier bemerken,

dass in dem Schema von Linuxgeek (derjenige, dem das Display nicht 
laufen wollte), der R/!W Pin (Nr. 37) fälschlich auf High geschaltet ist 
und somit auf lesen statt schreiben.

Karel

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Oh da wurde mal wieder ein alter Fred von mir ausgegraben :P
Beitrag "Re: Initialisierungsfolge fuer EA DOGM 163 SPI 3.3V"

Das funktioniert schon. Ich weiss jetzt allerdings nicht, wie weit ich 
da Code und Schaltung noch geaendert habe...

Schaltung und Code sind jedenfalls in einer funktionsfaehigen Form hier:
http://svn.coremelt.net/avr/display_module/

Greets,
Michael

von Tino K. (blumengiesser)


Angehängte Dateien:

Lesenswert?

Auch ich habe nach langen suchen und von diesem Display angenervt sein 
ein eigenes c/h-file erstellt. Wie ich finde besser als alles andere 
dokumentiert und auch fast alle Funktionen aus dem Handbuch. Die da 
wären:

spi_init
void spi_transmit
reset_CSB
write_instruction
write_char
write_string
init_3lines
init_doublehigh_upper
init_doublehigh_lower
set_cursor
clear
cursor_home
cursorON_blinkOFF
cursorON_blinkON
cursorOFF_blinkOFF
cursorOFF_blinkON
turnOFF
set_contrast
set_character

geschrieben für Hardware SPI.

von Tino K. (blumengiesser)


Angehängte Dateien:

Lesenswert?

So, ich bin total angenervt aber aber ich habe mein eigenes c/h-file 
erstellt. Wie ich finde besser als alles andere dokumentiert und auch 
fast alle Funktionen aus dem Handbuch. Die da wären:

spi_init
void spi_transmit
reset_CSB
write_instruction
write_char
write_string
init_3lines
init_doublehigh_upper
init_doublehigh_lower
set_cursor
clear
cursor_home
cursorON_blinkOFF
cursorON_blinkON
cursorOFF_blinkOFF
cursorOFF_blinkON
turnOFF
set_contrast
set_character

geschrieben für Hardware SPI.

von Deimi (Gast)


Lesenswert?

Daniel R. schrieb:
> Ich habe das "EA DOGM163S-A  DOG-Serie 3,3V Hintergrund: schwarz"
> von Reichelt bestellt. Also das, wo nur die Schrift weiß ist. Finde ich
> sehr schick, daher hab ich das bestellt.

Ich würde gerne dieses Display ohne Hintergrundbeleuchtung verwenden. 
Wie sind eure Erfahrungen dazu? Ist der Text unter normalem 
Umgebungslicht lesbar? Ich möchte extra auf backlight verzichten, da das 
Display nachts stören würde. Ein E-ink Display erscheint mir für meine 
Aufgabe zu träge, deshalb denke ich dass das Dogm163s mit weissem 
Vordergrund optimal wäre. Ich habe nur wegen der Leslichkeit ohne 
Hintergrundbeleuchtug Bedenken.

von Tino K. (blumengiesser)


Angehängte Dateien:

Lesenswert?

https://www.lcd-module.de/pdf/doma/dog-m.pdf

Seite 3 sind alle Kombinationen aufgelistet. Schwarzer Hintergrund 
braucht eine Beleuchtung... Am besten ausprobieren.

Habe noch ein Bild, Schwarzer Grund und grüne Beleuchtung.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.