www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Displayunterschiede 16x2 Electronic Assembly / Displaytech


Autor: Alexander G. (skragan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Alexander G. (skragan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Gast06 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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ß.

Autor: Max V. (maxv)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Alexander G. (skragan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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....

Autor: Alexander G. (skragan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 !

Autor: Toaster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: skragan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das ist möglich, je nach Displaytyp kann die durchaus negativ sein.

Autor: Thomas Aust (toastertzr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wollte nochmal nachfragen ob dein dein Display inzwischen 2-zeilig mit 
gutem Kontrast arbeitet? Und falls ja was du geändert hast?

Autor: skragan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: H. G. (ledi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe auch so ein ähnliches Problem!
Kannst Du deinen C-code bitte posten?

Danke!

Autor: Skragan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das habe ich aber in BASCOM programmiert :o)

Gruß Skragan

Autor: H. G. (ledi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das macht nichts!

Die Routinen werde ich einfach umschreiben.

Autor: Skragan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
$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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.