Hallo Leute, ich sitze hier vor einer Schaltung, wie sie bereits zu mehreren hundert gebaut wurde. Bislang habe ich immer ein EA W162B-N3LW eingesetzt, welches ja einen HD44780 drauf hat. Nun habe ich eine neue Variante aufgebaut, auf dieser sitzt jetzt ein Displaytech 162B in grün, welches einen ST7066 verwendet. Die Schaltung wird mit BASCOM auf einem Mega128 programmiert, das funktionierte bislang auch immer gut. Das Display wird über den 4-bit Modus angesteuert, die Library lcd4busy.lib habe ich für den Einsatz bei 16MHz entsprechend geändert. Wie gesagt, lief immer gut. Auf der neuen Schaltung macht das Displaytech nun folgende Dinge: - Mal startet es ganz normal mit hervorragendem Kontrast, zeigt aber leider die zweite Zeile nicht an - Mal startet es mit ganz schwachem Kontrast, zeigt aber beide Zeilen korrekt an - Führt man manuell per Tastendruck ein erneutes initlcd durch, steigt ab und an der komplette Controller aus und wird nicht einmal vom Watchdog wiederbelebt Geprüft habe ich: - Kalte Lötstellen (2 Schaltungen vorhanden, beide gleiches Verhalten) - Anderes Display (2 Displaytech, gleiche Fehler, 1 EA, fehlerfreies Verhalten) - Verlangsamung der lcdbusy Abfrage in der lcd4busy.lib (90us laut Angabe Datenblatt Displaytech) Wenn dazu jemand eine Idee hat, würde ich mich riesig freuen... Gruß, Alex
Das wird ein Timing-Problem sein, die Enable-Leitung ist dahingehen recht empfindlich. Vergrößere mal die Zeitabschnitte von Anlegen der Daten -> Enable -> Umschalten der Daten. Führe eine lange Software-Init ohne Berücksichtigung des Power-Up-Reset durch. Nur diese funktioniert immer.
Hi und danke für die Anregung. Leider bislang ohne Erfolg, ich habe 3 verschiedene Datenblätter durchgearbeitet und die Zeiten entsprechend den Vorgaben in der Library geändert. Das Displaytech Modul läuft immer noch unzuverlässig, das EA ohne Probleme. Weiterhin habe ich eine halbe Sekunde "Power on" warten eingefügt, damit die Betriebsspannung auch stabil über 4,5V ist, bevor das Modul angesprochen wird. Hauptfehler sind immernoch, daß das LCD entweder richtig mit beiden Zeilen läuft, der Kontrast aber ganz schlecht ist ODER der Kontrast gut ist, dafür aber die zweite Zeile fehlt. Ein Suchen in den Datenblättern des ST7066U hat mir ebenfalls keine Erkenntnis gebracht, wir sitzen auch mit zwei Leuten dran und finden das Problem (bzw. die Lösung) einfach nicht.
Wie steht es mit der Kontrast-Spannung/Einstellung? Ich habe da schon einige Unterschiede zum HD44780 gefunden, hat man schon dort mal nachgemessen? Leider gibt es Kontroller (sogar bei EA-Modulen) bei den sich die Kontrastspannung nicht einfach mit einem Poti zwischen Versorgung und Masse einstellen ließ.
>Das alphanumerische LCD-Modul 162B von Displaytech verfügt über zwei Zeilen >mit
jeweils 16 Zeichen und verwendet den Controller KS0070B, der kompatibel >zum
Industriestandard HD44780 ist.
Das stimmt so nicht ganz, ich hab bis jetzt nur in C programmiert, aber
da habe ich mich ca 4Wochen versucht mit einem Code für den HD44780 das
Display anzusprechen, alle Versuche erfolglos.
Display in die Ecke geworfen, was anderes gemacht und nach nem halben
jahr neu angefangen.
Diesmal mit Code der für den Ks0070B war.
Ergebnis: hat sofort funktioniert.
Also wirklich Kompatibel sind die nicht.
MfG
Ja, wir haben jetzt auch die komplette Initialisierungsroutine dem Datenblatt des KS0070 entsprechend neu geschrieben, das Display läuft auch - aber eben ab und an mit einer Zeile und gutem Kontrast und ein andermal mit zwei Zeilen und schlechtem Kontrast... Ich habe keine Ahnung....
HA ! Problem gelöst: Tatsächlich ein init-Problem. Entgegen dem Datenblatt haben wir zusätzlich nochmal 3 weitere "SW-Resets" vor die Befehlskette gehängt (8-bit Mode Befehl), bevor wir das Display auf 4-Bit umschalten. Nun startet es immer im zweizeiligen Modus mit schlechtem Kontrast, aber das ist ja ein Gleichspannungsproblem ;) Travel Rec. hat also Recht gehabt und wir offenbar einen Programmierfehler ;) Danke allen !
Hallo, ich hab ähnliche Probleme, wenn ich mein 2x16 Display einzeilig initialisiere hat es einen super Kontrast, zweizeilig sieht man praktisch nichts. Brauche ich eine negative Kontrastspannung? warum tut es dann einzeilig? MfG Thomas
Ja, das ist möglich, je nach Displaytyp kann die durchaus negativ sein.
Wollte nochmal nachfragen ob dein dein Display inzwischen 2-zeilig mit gutem Kontrast arbeitet? Und falls ja was du geändert hast?
Ich habe die Kontrastspannung geändert (0V) und eine saubere Initialisierung (per Software) implementiert, nun klappts. Das war aber nur sportlicher Ehrgeiz, ich werde in Zukunft trotzdem nur noch das EA Modul einsetzen, weil es einfach deutlich schneller ist.
Hallo! Ich habe auch so ein ähnliches Problem! Kannst Du deinen C-code bitte posten? Danke!
Hi, das habe ich aber in BASCOM programmiert :o) Gruß Skragan
Das macht nichts! Die Routinen werde ich einfach umschreiben.
$initmicro 'LCD INITIALISIERUNG IN DER UNTERROUTINE: _init_micro Dann: '**** LCD ********************************************************************** _init_micro: $lib "lcd4busy16new.lib" 'angepasste Displayroutine 16MHz f¸r EA und Displaytech Module Const _lcdport = Portc Const _lcdddr = Ddrc Const _lcdin = Pinc Const _lcd_e = 1 Const _lcd_rw = 2 Const _lcd_rs = 3 Waitms 50 Config Lcd = 16 * 2 Return Die Displayroutine hängt als pdf an.
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.