Problem LCD EA-123T

OP #6201109
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.
OP #6201646
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.
OP #6201672
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.
OP #6201826
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.
OP #6202375
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.

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