Hallo, ich habe nun schon viele LCD/OLED zum laufen gebracht. Aber
dieses Mal will es nicht so. Ich habe ein NHD-0420CW-AY3 4x20 Zeilen
OLED, als Ersatz für ein EA W204-XLG.
Es soll mit vier Bit parallel betrieben werden. So wie ich das
Datenblatt interpretiere, ist das dann 4-Bit-6800, wenn E zur Übernahme
der Daten/Commandos benutzt werden soll.
Demnach sind dann die Pins 1-2, 4-6 und 11-14 wie sonst auch beschaltet.
Pin 5 lege ich immer nach Masse, da ich nie lese.
Nun gibt es einige Pins mehr als üblich. Für 5 V Betrieb muss ich wohl
an Pin 3 5 V anlegen und dann auch Pin 17 und Pin 19.
Schaue ich mir das Timing an, dann ist das Timing von EA W204-XLG
identisch mit dem vom NHD-0420CW-AY3 Condition 2. Seltsamerweise hat EA
dort /CS eingezeichnet, welches bei 4 Bit not connected ist .... Ich
habe den Pin 15 bisher immer offen gelassen.
Wenn ich mir die Beispiellistings ansehe, dann kann ich
Pin 15 /CS dauerhaft auf Masse und
Pin 16 /RES dauerhaft an +5 V legen.
Das war es wohl. Allerdings macht das Teil mit dem selben Code, der beim
EAW204-XLG ohne Probleme läuft, nicht einen Mucks.
Es gibt da ein Code void init()-Beispiel. Dort wird 4-Bit eingeschaltet
und auch der Regulator für 5 V. Was ist denn nun richtig? Per Software
oder die Pins wie oben beschalten?
Gruß
Holger
Hallo, ich habe inzwischen eine Lösung gefunden. Vieleicht kann jemand
die Infos gebrauchen. Es sind auf jeden Fall sehr kontrastreiche und von
der Darstellung sehr schöne OLEDs. Und vor allem sind die PCBs deutlich
kleiner als Konkurrenzprodukte.
1. /CE und /RES können fest verdrahtet werden. Reset sollte man aber
besser programmgesteuert schalten, da sonst das Display bei einem Reset
des ATMEGA wilde Zeichen anzeigt. Eher ein optisches Problem.
2. Im vier-Bit-Modus sollte die nicht benötigten Datenbits auf GND
gelegt werden.
3. Ich kann die 5 V wie folgt anlegen. Es macht keinen Unterschied.
- 5 V an VDD und REGVDD
- 5 V nur an VDD
- 5 V nur an REGVDD
4. Timing. Pausen von 10 ms bei der Initialisierung und 10 µS für Enable
reichen. Noch weniger habe ich nicht ausprobiert. Breadboard, ATMEGA644,
16 MHz.
5. Ja, man muss die gesamte abgedruckte Initialisierungsroutine
durchlaufen. Grmmmpf.
6. Zur Initialisierung:
1
void init(){
2
3
RES = 1;//reset HIGH - inactive
4
delayms(1);//delay
5
command(0x2A);//function set (extended command set)
Moin, zum Abschluss habe ich noch I2C bzw. TWI in Assembler realisiert.
Hier zeigt sich, dass dann auch Reset pauschal auf 5 V gelegt werden
kann. Die optischen Störungen sind verschwunden. Also reichen vier
Adern.
Eine Frage bleibt noch: Was haben die Leute beim Erstellen der
Datenblätter geraucht?
Gruß
Holger
Hier im Forum:
https://forum.arduino.cc/index.php?topic=714727.15
ist eine Lib veröffendlicht (Arduino und I2C).
Ich habe die mal vor längerer Zeit probiert - scheint aber
noch "buggy" zu sein. Sprodisch wird nach dem Einschalten des
Display nur wirres Zeug angezeigt.
Ich denke es liegt an der init Sequenz.
Oder ist besser über die SW ein Reset durch zu führen ?
Im Datenblatt habe ich dazu aber nichts finden können.
Hast Du die init Sequenz unverändert aus den Datenblatt übernommen oder
noch weiter angepasst ?
Ich habe schon einiges selbst versucht - auch die init Sequenz
aus den Datenblatt, leider ist die korrekte Anzeige nach wie vor ein
Glücksspiel.
Du programmierts ja in Assembler - also irgend etwas in C zu
"Vergleichszwecke" hast Du nicht da ?
Gruß Andreas
Pin 3 ist nicht verbunden. An +5V hängen Pin 2, 16, 18. I2C an die Pins
7, 8+9, jeweils 4,7K Widerstände gegen +5V. Rest an Masse.
Wenn ich Zeit habe, werde ich mal gucken, was aus den Sequenzen raus
kann. Allerdings wird das Display derart schnell befüllt, dass ich mit
der Slow-Motion-Videoaufzeichnung meines Blödmann-Telefons nichts sehen
kann.
Gruß
Holger
Danke für die Antwort.
Ich habe noch eine weitere Library für den Arduino und für dieses
Display gefunden :
https://github.com/dcityorg/i2c-char-display-library-arduino
Die Library untertsützt das OLED Display und auch "normale" LCD.
Damit läuft das Display unter Arduino - vieleicht hilft es den einen
oder anderen bei seinen Projekte.
Bei mir war die Verdrahtung nicht so wie bei Dir - danke für die
Untertützung.
Und mit der o.g. Libs läuft es jetzt auch so wie es sein soll.
Also noch einmal herzlichen Dank !