Forum: Mikrocontroller und Digitale Elektronik Problem LCD EA-123T


von Klaus R. (klaus2)


Lesenswert?

Hallo,

besagtes Display lag noch in der Kiste und ich wollte es verwenden, 
allerdings...nun, es gibt Probleme. Ich habe hier einen Thread gefunden, 
bei dem es diskutiert wurde und es startet auch, zeigt aber in Zeile 1 & 
3 den selben Text an - mMn, weil die Init nicht passt, ich habe sie auf 
3x12 geändert, dann geht aber gar nix mehr...

Beitrag "i2c Display EA 123A"

Damit gehts, aber halt in Z1&3 selber Inhalt:

write_i2c(0x00);  // 00 control byte
write_i2c(0x22);  // 22 funktions set 1 Linie
write_i2c(0x0E);  // 0E cursor on, display on
write_i2c(0x04);  // 04 entry mode set cursor
write_i2c(0x8B);  // 8B Anzeigepos

mMn muss da statt 22 eher 2E stehen, so findet man es auch hier:

http://goblack.de/arduino/programme/eat123A-LCD.html

...aber dann hat

write_i2c(0x40);  // controll byte

write_i2c(0xAA); // *
write_i2c(0xEF); // H
write_i2c(0xEC); // A
write_i2c(0xEC); // L
write_i2c(0xE1); // L
write_i2c(0xC8); // O
write_i2c(0xAA); // *

keine Funktion mehr.

-> Ideen?

Klaus.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo

hast Du die Schreibposition mal geändert?

"Andererseits kommt mir das 0x8B komisch vor, damit schreibst Du ja in
den nicht sichtbaren Bereich.
Beim "vierzeiligen" Display beginnen die Zeilen bei 0x00, 0x20, 0x40
und 0x60."


Mfg

von Klaus R. (klaus2)


Lesenswert?

Eigentlich schon, habe 2E statt 22 mit 00, 20, 40 versucht - denn so 
wäre es richtig. Ich vermute eine Kaskadierung von 2 Fehlern o.ä...

Klaus.

von Klaus R. (klaus2)


Lesenswert?

...also, egal was ich strukturiert versuche, es bleibt komisch.

  i2c_start_wait(LCD+I2C_WRITE);

  i2c_write(0x00);  // 00 control byte
  i2c_write(0x22);  // 2E funktions set 1 Linie (22)
  i2c_write(0x0F);  // 0F cursor blink, display on
  i2c_write(0x06);  // 06 entry mode set cursor
  i2c_write(0x01);  // 01 clear display
  i2c_write(0x02);  // 02 return home

  i2c_stop();       // set stop conditon = release bus

  _delay_ms(20);

Mit "22" schreibt er in Zeile 1 und 3 gleichzeitig den gleichen Inhalt 
(vermtl wg flaschem 1-Zeilen Modus), mit "2E" bleibt er dunkel, auch 
wenn ich im Sekundentakt alles mit * vollschreibe (getestet im Modus 
"22"), die tauchen nie auf, an keiner Adresse.

Mist, ein anderes I2C LCD habe ich gerade nicht und vor Allem würde ich 
es gerne verstehen...

Klaus.

von Klaus R. (klaus2)


Lesenswert?

Hmm...wenn ich mir meinen zitierten Fred nochmal durchlese:

"komisch ist nur, das ich auf verschiedene addressblöcke zugreifen kann.
die blink positionen sind auf den standart vom datenblatt und schreiben
kann ich auf den anderen (zeile1 80; zeile2 94; zeile3 B4)"

Das könnte erklären, weshalb ich im Modus "2E" dann nichts sehe, wenn 
man letztendlich einen ganz anderen Speicherbereich hat.

Morgen mal damit experimentieren.

Klaus.

von Fragender (Gast)


Lesenswert?

@Klaus R.

Was spricht dagegen, das Beispiel aus dem
http://goblack.de/arduino/programme/eat123A-LCD.html
zu nehmen und schjauen was passiert?

von Klaus R. (klaus2)


Lesenswert?

...Arduino spricht dagegen. Ich müsste das alles portieren und dann ist 
es nicht mehr "das Beispiel". Und ich habe mich ja mMn schon 1:1 daran 
gehalten. Ich glaube schlichtweg, dass im 4 Zeilen Modus iwie intern ein 
anderer Speicherbereich verwendet wird, den ich erst "finden" muss.

Aber so ganz "rdy to use" kommt mir das Display nicht vor, mit den 
normalen HD44780 LCDs gab es NIEMALS solche Probleme, nur wäre halt 
"Klein & I2C" gerade praktisch.

Klaus.

von Klaus R. (klaus2)


Lesenswert?

...habe noch ein Bascom Beispiel gefunden, das sieht aber ebenfalls 
gleich aus - nur wieder das Problem, dass "2E" bei mir dazu führt, dass 
das Display gar nicht aktiviert wird. Habe zwischen den INIT Befehlen 
nun auch 2ms delays eingeführt, leider ohne Ergebnis - "22" funktioniert 
weiterhin, aber passt halt nicht zum Display (von denen ich übrigens 3 
Stück habe und sich alle gleich verhalten).

EDIT: ICH flippe aus - es geht! Mit 2E ist ggü 22 die nötige 
Konstrastspg eine andere, man muss also am Poti rumdrehen...wer bitte 
erwartet den solwas :) :) :) -> Das hat wohl was mit dem MUX1:16 vs 1:32 
zu tun - irgendwie logisch, aber...

EDIT2: So, die arduino libs ließen sich auch fix konvertieren, läuft 
alles...4h Rätselraten wg so einem dämlichen Fehler :)

Klaus.

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.