Forum: Mikrocontroller und Digitale Elektronik Pollin LCD Display geht nicht


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich habe ein kleines Problem, da bei Pollin LCD-Displays im Angebot 
gewesen sind, welche mit dem HD44780 kompatibel sein sollen. Darum habe 
ich, davon welche gekauft und wollte es heute mal ausprobieren, aber 
keine Chance die Initialisierung geht nicht, da in der oberen Zeile noch 
die Schwarze Klötzchen bleiben.
Das Programm ist für einen 16F716 geschrieben und der RW Pin vom Display 
ist auf Masse geschaltet. Vielleicht hat jemand eine Idee woran es 
liegen könnte, weil das Programm läuft mit einem HD44780 Display ohne 
Probleme.
VG-Luca

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Luca L. schrieb:
> da bei Pollin LCD-Displays im Angebot gewesen sind, welche mit dem
> HD44780 kompatibel sein sollen
Gibts dafür auch eine Artikelbezeichnung oder gar einen Link?

> Vielleicht hat jemand eine Idee woran es liegen könnte
Miss mal mit einem Oszi, ob an jedem Pin das ihm zugehörige Signal 
ankommt. Bei verdrillten lackisoliertem und gleichfarbigen Drähten 
kann man da schon mal durcheinanderkommen...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Zeig mal die Platine des MC von unten. Als erstes fällt mir nämlich auf, 
das kein Abblockkondensator zu sehen ist und auch keine Last-C am Quarz. 
Da stellt sich die Frage, ab der MC überhaupt losrennt.

Lothar M. schrieb:
> Bei verdrillten lackisoliertem und gleichfarbigen Drähten
> kann man da schon mal durcheinanderkommen

Halte ich auch für maximal fehlerträchtig. Ausserdem haben wir da auch 
noch Übersprechen, ist allerdings bei der Länge vermutlich nicht so 
wichtig.

: Bearbeitet durch User
von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Lesenswert?

Lothar M. schrieb:
> Luca L. schrieb:
>> da bei Pollin LCD-Displays im Angebot gewesen sind, welche mit dem
>> HD44780 kompatibel sein sollen
> Gibts dafür auch eine Artikelbezeichnung oder gar einen Link?
>
https://www.pollin.de/p/anag-vision-lcd-modul-av1623yfty-sjw-16x2-121714?utm_source=google&utm_medium=fshopping&gclid=EAIaIQobChMI0pf8qsL0_QIVAszVCh1L_w_-EAQYASABEgKg8PD_BwE

> Miss mal mit einem Oszi, ob an jedem Pin das ihm zugehörige Signal
> ankommt. Bei verdrillten lackisoliertem und gleichfarbigen Drähten
> kann man da schon mal durcheinanderkommen...

Ich habe die Drähte nacheinander angelötet und jetzt schon zum dritten 
mal mit Multimeter in durchgangsprüfunge gemessen da sollte es zu keinem 
fehler gekommen sein wenn ich mit dem Oszi messe habe ich die passenden 
Signale an den Display pins anliegen.
VG-Luca

von Wendels B. (wendelsberg)


Lesenswert?

Luca L. schrieb:
> der RW Pin vom Display
> ist auf Masse geschaltet

heisst READ - wieso willst Du lesen?

von Anselm 6. (anselm68)


Lesenswert?

Hast du auch einen Schaltplan deines Aufbaus?
Vielleicht ist dort ein Fehler versteckt.

Anselm

von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Lesenswert?

Matthias S. schrieb:
> Zeig mal die Platine des MC von unten. Als erstes fällt mir nämlich auf,
> das kein Abblockkondensator zu sehen ist und auch keine Last-C am Quarz.
> Da stellt sich die Frage, ab der MC überhaupt losrennt.
>

Hi,
Ist auf dem Foto vielleicht etwas schlecht zu erkenn aber die Gelben 
Punkte neben dem Quarz sind jeweils 22pF Kermaik´kondensatoren welche 
aus last laut Datenblatt geeignet sind und ich Kann mit dem Oszi ja die 
Passenden Signale am Display messen aus diesem grund vermute ich mal 
stark das der MC losrennt und auch am laufen bleibt.
VG-Luca

von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Lesenswert?

Wendels B. schrieb:
> Luca L. schrieb:
>> der RW Pin vom Display
>> ist auf Masse geschaltet
>
> heisst READ - wieso willst Du lesen?

Hi,
der RW Pin ist wenn auf Masse gelegt auf 0 und es wird geschrieben wenn 
man den auf 1 also 5V legt wird gelesen.
VG-Luca

von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Lesenswert?

Anselm 6. schrieb:
> Hast du auch einen Schaltplan deines Aufbaus?
> Vielleicht ist dort ein Fehler versteckt.
>
> Anselm

Hi,
Zu beginn der ASM Datei ist eine beschreibung der Pinbelegung das sind 
die Pins welche am MC angeschlossen sind der RA4 ist noch nicht belegt 
das ist noch von einem Alten Projekt.
VG-Luca

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Luca L. schrieb:
> jetzt schon zum dritten mal mit Multimeter in durchgangsprüfunge gemessen
Du hast kontrolliert, ob eine Verbindung ist, wo eine sein soll.

Hast du aber auch mal kontrolliert, ob da keine Verbindung ist, wo 
keine sein darf, nämlich zwischen den Leitungen.

> mit dem Oszi messe habe ich die passenden Signale an den Display pins
> anliegen.
Auch keine "Zwischenpegel"? Wie "knapp" ist das Timing?

Wendels B. schrieb:
> Luca L. schrieb:
>> der RW Pin vom Display ist auf Masse geschaltet
> heisst READ - wieso willst Du lesen?
Der Pin heißt R/W also "Read, Not Write". Bei Low-Pegel wird also nur 
geschrieben.

: Bearbeitet durch Moderator
von H. H. (Gast)


Lesenswert?

Er hat wohl dieses:

https://www.pollin.de/p/anag-vision-lcd-modul-av1623yfty-sjw-16x2-121714

Und gerade bei der Initialisierung gibts es kleine Unterschiede zwischen 
den sonst kompatiblen Controllern.

von Harald K. (kirnbichler)


Lesenswert?

Lothar M. schrieb:
> Der Pin heißt R/W also "Read, Not Write".

Wobei über dem "W" noch ein Querstrich steht:

   R/W̅

Der Querstrich signalisiert die Negierung.

(Als Eingabehilfe kann man diese Webseite hier verwenden: 
https://instafonts.io/font/overline-)

: Bearbeitet durch User
von Johannes F. (jofe)


Lesenswert?

H. H. schrieb:
> Er hat wohl dieses:
>
> https://www.pollin.de/p/anag-vision-lcd-modul-av1623yfty-sjw-16x2-121714
>
> Und gerade bei der Initialisierung gibts es kleine Unterschiede zwischen
> den sonst kompatiblen Controllern.

Davon habe ich auch einige, bei mir keinerlei Probleme mit 
Initialisierung etc. Ich benutze die Standard-Routinen aus dem 
AVR-Tutorial: LCD.

Daher wird es wohl wahrscheinlich an dem „Versuchsaufbau“ des TO liegen.

von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Lesenswert?

Lothar M. schrieb:
> Luca L. schrieb:
>> jetzt schon zum dritten mal mit Multimeter in durchgangsprüfunge gemessen
> Du hast kontrolliert, ob eine Verbindung ist, wo eine sein soll.
>
> Hast du aber auch mal kontrolliert, ob da keine Verbindung ist, wo
> keine sein darf, nämlich zwischen den Leitungen.
>
>> mit dem Oszi messe habe ich die passenden Signale an den Display pins
>> anliegen.
> Auch keine "Zwischenpegel"? Wie "knapp" ist das Timing?

Ja nur die Sachen welche verbunden sein sollen sind verbunden ich habe 
auch mal ausprobiert was ist wenn man das Timing etwas lockerer macht 
das ich dem ganzen viel mehr zeit gebe aber auch das hat nichts gebracht 
:(

von 🕵︎ Joachim L. (Gast)


Lesenswert?

Hatten wir schonmal:

Beitrag "LCD (Ks0066) initialisieren"

Zitat: 1. Poti an Pin3 hängen um Kontrast einstellen zu können. Die 
Displays
sind nur in einem sehr schmalen Band "sehbar" justierbar. Wenn der Pin
gegen GND oder 5V geschalten wird, sieht man in beiden Fällen gar
nichts.

2. Mein Datenblatt war in Punkto Initialisierung falsch. Ich habe dann
nach KS0066U gegoogelt und mir das Samsung Datenblatt heruntergeladen.
Siehe da, ein komplett anderer Initialisierungsablauf mit dem es dann
funktionierte.
   2.1. Power ON
   2.2. Wait > 30ms
   2.3. Function Set & wait > 39us   (nicht 3x wie so oft angegeben)
   2.4. Display on/off control & wait > 39us
   2.5. Display clear & wait > 1.53ms
   2.6. Entry Mode Set

3. Das blaue Display (RS Part Numer 532-6593). Hat einen Fehler im
Function Set Register. Das Bit DB3 (Line Mode) ist hier entgegen allen
Datenblättern invertiert. Schreibt man eine 1, so erhält man nicht zwei
sondern nur eine Zeile initialisiert!!!
Das grüne/gelbe Display zeigt diesen Fehler nicht.

Nach Behebung dieser Fehler laufen beide Displays einwandfrei.

von H. H. (Gast)


Angehängte Dateien:

Lesenswert?

🕵︎ Joachim L. schrieb:
> 2. Mein Datenblatt war in Punkto Initialisierung falsch. Ich habe dann
> nach KS0066U gegoogelt und mir das Samsung Datenblatt heruntergeladen.
> Siehe da, ein komplett anderer Initialisierungsablauf mit dem es dann
> funktionierte.
>    2.1. Power ON
>    2.2. Wait > 30ms
>    2.3. Function Set & wait > 39us   (nicht 3x wie so oft angegeben)
>    2.4. Display on/off control & wait > 39us
>    2.5. Display clear & wait > 1.53ms
>    2.6. Entry Mode Set

Anbei das Datenblatt des Schwestermodells AV1624 von Anag Vision, mit 
Initialisierung.

von Hugo H. (hugo_hu)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Harald K. schrieb:
> Wobei über dem "W" noch ein Querstrich steht:
> R/W̅
> Der Querstrich signalisiert die Negierung.
Diesen Querstrich konnte man früher(tm) im ASCII-Zeichensatz nicht 
darstellen. Sie wurde deshalb durch den vorangestellten Schrägsstrich 
dargestellt.
Das R/W Signal hat also 2 Funktionen:
- R  --> high aktives Read
- /W --> low aktives Write

Und ich spreche diese "Schrägstrich-Negierung" dann auch explizit aus: 
das Signal heißt bei mir immer "ernotwe" und eben nicht nur "erwe" oder 
"readwrite".

: Bearbeitet durch Moderator
von Harald K. (kirnbichler)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Sie wurde deshalb durch den vorangestellten Schrägsstrich
> dargestellt.

Das ist so aber nur ein Notbehelf gewesen. Betrachtet man alte 
Datenblätter*, dann sah das wie im Anhang aus, der das Pinout eines 
MC6809 zeigt.

Deutlich zu sehen sind diverse mit Überstrich versehene Signale, R/W̅ 
und auch ein Signal, bei dem sowohl der Text vor, als auch nach dem 
Schrägstrich einen Überstrich erhält: D̅M̅A̅/̅B̅R̅E̅Q̅

Und diese Schreibweise zieht sich konsequent durch das ganze Datenblatt.

*) Beispiel aus 
https://colorcomputerarchive.com/repo/Documents/Datasheets/MC6809%20HMOS%208%20Bit%20Microprocessor%20(Motorola).pdf

von Rainer W. (rawi)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Das R/W Signal hat also 2 Funktionen:
> - R  --> high aktives Read
> - /W --> low aktives Write

Genau :-(
Und R/W̅ steht für was?
Ist da die Negierung wieder aufgehoben?

Der "/" dient zur Trennung der Bezeichnung der beiden Zustände und hat 
mit Negation überhaupt nichts zu tun.

von Joachim B. (jar)


Lesenswert?

Rainer W. schrieb:
> Und R/W̅ steht für was?

RR manno, du krümelst.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich hatte vor Äonen mal ein ähnliches Problem.

Es stellte sich am Ende heraus, dass die Kontasteinstellung falsch war, 
so dass die eigentich völlig korrekt funktionierende Anzeige nur nicht 
zu sehen war.

Hast du das mal geprüft?

von Mi N. (msx)


Lesenswert?

Frank E. schrieb:
> Hast du das mal geprüft?

Wenn schwarze Klötzchen zu sehen sind, müßten auch Zeichen erscheinen.

Rainer W. schrieb:
> Genau :-(

Wenn jemand die Grafik "genau" beachtet, sieht er/sie/es, daß die 
Datenleitungen invers zur normalen Pinbelegung sind.
Da würde ich ansetzen.

von Ozvald K. (Firma: Privat) (ozvaldk)


Lesenswert?

Frank E. schrieb:
> völlig korrekt funktionierende Anzeige nur nicht
> zu sehen war.
>
> Hast du das mal geprüft?

So wie es am Bild aussieht (nur eine Zeile), ist typisch für nicht 
initialisiertes Display, hat mit Kontrast nichts zu tun. Wenn die 
Verdrahtung in Ordnung, dann

H. H. schrieb:
> Und gerade bei der Initialisierung gibts es kleine Unterschiede zwischen
> den sonst kompatiblen Controllern.

 würde ich auch auf Timing tippen. Hatte ich auch schon, dass ein 
Display langsamer war. Nachdem die Zeiten ein wenig "gestreckt" habe, 
war plötzlich in Ordnung.

von Johannes F. (jofe)


Angehängte Dateien:

Lesenswert?

Luca L. schrieb:
> Wendels B. schrieb:
>> Luca L. schrieb:
>>> der RW Pin vom Display
>>> ist auf Masse geschaltet
>>
>> heisst READ - wieso willst Du lesen?
>
> Hi,
> der RW Pin ist wenn auf Masse gelegt auf 0 und es wird geschrieben wenn
> man den auf 1 also 5V legt wird gelesen.
> VG-Luca

@Luca L.:
Hast du nun den R/W-Eingang des Displays auf GND=0 gelegt?
Das ist wichtig, sonst treibt das LCD den Datenbus, statt zu lesen.
Das Read/Write bezieht sich auf die MCU, nicht auf das Display.

Der einzige mögliche Fallstrick bei diesem Display ist eigentlich, dass 
die Nummerierung der Pins für einen von oben eingesetzten Wannenstecker 
gilt, und man bei nach unten montiertem Stecker (wie man es ja bei LCDs 
normalerweise haben will) die aufeinanderfolgenden geraden und ungeraden 
Pins paarweise vertauschen muss.

Aber da der TO keinen Wannenstecker + Flachbandkabel verwendet, ist das 
ja irrelevant. Die Pinangabe im Datenblatt stimmt jedenfalls.

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Mi N. schrieb:
> Frank E. schrieb:
>> Hast du das mal geprüft?
>
> Wenn schwarze Klötzchen zu sehen sind, müßten auch Zeichen erscheinen.
>
Nein, müsste genau nicht. Bei mir war es damals so, dass die falsche 
Kontrasteinstellung zu ebendiesen vollkommen schwarzen Kästchen führte.

Nach Reduzierung des Kontrasts waren die jeweils nicht genutzen Pixel 
eben nicht mehr genau so schwarz wie die ungenutzten und die gesetzten 
Zeichen wurden darurch sichtbar ...

: Bearbeitet durch User
von Karl B. (gustav)


Lesenswert?

Johannes F. schrieb:
> Aber da der TO keinen Wannenstecker + Flachbandkabel verwendet, ist das
> ja irrelevant. Die Pinangabe im Datenblatt stimmt jedenfalls.

Hi, meins geht. Aber die Routinen für Init sind identisch wie bei den 
anderen. Das ist nicht das Killerkriterium. Bei den Zeitschleifen sollte 
man nicht geizen.  Und nicht temp Register nehmen, die nicht vorher 
gepopt /gepushed wurden.
Das war nämlich mal mein Fehler.
Zeig doch mal die Routine als Programm. Als  Code hochladen.
Dann sehen wir weiter.

ciao
gustav

von H. H. (Gast)


Lesenswert?

Karl B. schrieb:
> Zeig doch mal die Routine als Programm. Als  Code hochladen.

Hat er doch.

Du kannst Assembler für die kleinen PICs?

von Wolfgang S. (wolfgang_s278)


Lesenswert?

Genau das Display habe ich schon mehrfach verbaut.
Läuft ohne Probleme.

Schließe doch mal an einen PIN eine LED an und lass diese lgleichzeitig 
im Sekundentakt blinken, nur um zu sehen, ob der Controller überhaupt 
läuft.

von H. H. (Gast)


Lesenswert?

Ich hab mir den Code mal angesehen, und der kann ja so gar nicht 
funktionieren. Du hast wohl E und RS vertauscht.

von Karl B. (gustav)


Lesenswert?

Also doch Code.

von Peter N. (alv)


Lesenswert?

H. H. schrieb:
> Du hast wohl E und RS vertauscht.

Wenn nur ein LCD am "Bus" hängt, kann man dann Enable nicht auch fest 
auf gnd legen?

von H. H. (Gast)


Lesenswert?

Peter N. schrieb:
> H. H. schrieb:
>> Du hast wohl E und RS vertauscht.
>
> Wenn nur ein LCD am "Bus" hängt, kann man dann Enable nicht auch fest
> auf gnd legen?

Nein.

von Johannes F. (jofe)


Lesenswert?

Peter N. schrieb:
> Wenn nur ein LCD am "Bus" hängt, kann man dann Enable nicht auch fest
> auf gnd legen?

Nein. Der LCD-Controller braucht die Enable-Flanken als Bus-Takt, um die 
anliegenden Werte in die internen Register zu übernehmen.

von Ozvald K. (Firma: Privat) (ozvaldk)


Lesenswert?

Auf der Pollin Webseite bei den Bewertungen steht, dass der Pinout bei 
diesem Display falsch ausgeführt ist.
@TO: "blöde Frage": wurde das bei der Verdrahtung berücksichtigt?

von H. H. (Gast)


Lesenswert?

Ozvald K. schrieb:
> Auf der Pollin Webseite bei den Bewertungen steht, dass der Pinout bei
> diesem Display falsch ausgeführt ist.
> @TO: "blöde Frage": wurde das bei der Verdrahtung berücksichtigt?

Hat er wohl beachtet, sonst wäre das Display wohl schon kaputt, wegen 
verpolter Versorgungsspannung.

von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Lesenswert?

Ich habe den Fehler gefunden es sind 4 von 10 Displays defekt :(

Was kann bei so einem Display kaputt gehen ? die sind eigentlich neu 
oder ich denke Mal dass die neu sind bei Pollini werden die als neu 
verkauft.

Jemand eine Idee ob man die Displays noch reparieren kann ?

von Hmmm (hmmm)


Lesenswert?

🕵︎ Joachim L. schrieb:
> 2.3. Function Set & wait > 39us   (nicht 3x wie so oft angegeben)

Das wird üblicherweise 3x gesendet, damit es auch dann funktioniert, 
wenn das LCD nicht (wie beim Power-on-Reset üblich) im 8-Bit-Modus, 
sondern bereits im 4-Bit-Modus ist.

Kann z.B. dann passieren, wenn Dein Controller einen Brownout-Reset 
macht, aber das LCD unbeeindruckt weiterläuft.

von Jörg R. (solar77)


Lesenswert?

Luca L. schrieb:
> Ich habe den Fehler gefunden es sind 4 von 10 Displays defekt :(

> Jemand eine Idee ob man die Displays noch reparieren kann ?

Was willst Du bei 2,- Euro/Stück reparieren? Wenn Du keine Fehler 
gemacht hast, wie Verpolung, zu hohe Versorgungsspannung usw., dann 
reklamiere die Displays bei Pollin.

von Johannes F. (jofe)


Lesenswert?

Luca L. schrieb:
> Ich habe den Fehler gefunden es sind 4 von 10 Displays defekt :(

Unwahrscheinlich. Ich habe auch mehrere davon und die funktionieren 
alle, ohne Ausnahme.

Luca L. schrieb:
> Was kann bei so einem Display kaputt gehen ?

Viel, wenn du sie falsch behandelst oder verdrahtest ...

Luca L. schrieb:
> die sind eigentlich neu

Ja, die sind neu. Restposten halt. Schutzfolie ist noch drauf gewesen 
bei mir.

Luca L. schrieb:
> Jemand eine Idee ob man die Displays noch reparieren kann ?

Eher nicht.

von Peter N. (alv)


Lesenswert?

Luca L. schrieb:
> Ich habe den Fehler gefunden es sind 4 von 10 Displays defekt :(

Ungewöhnlich. Meine waren bislang zu 100% ok.

Luca L. schrieb:
> die sind eigentlich neu
> oder ich denke Mal dass die neu sind bei Pollini werden die als neu
> verkauft.

Wahrscheinlich, wie bei Pollin üblich, unbenutzte Restposten. Können 
schon einige Jahre alt sein...

Luca L. schrieb:
> Jemand eine Idee ob man die Displays noch reparieren kann ?

Du hast ja scheinbar die Stiftleisten entfernt. Da mal genau nachsehen, 
ob da nicht Leiterbahnen mitkamen.

Ansonsten kann man solche LCDs mit direktgebondeten Kontroller-ICs nur 
reparieren, indem man defektes LCD-Glas mit defekter Platine tauscht.

von Mi N. (msx)


Lesenswert?

Luca L. schrieb:
> Ich habe den Fehler gefunden es sind 4 von 10 Displays defekt :(

Verlängere die Warteschleifen bei der Initialsierung deutlich und teste 
noch einmal. Die LCD-Kontroller laufen mit unterschiedlicher 
Taktfrequenz (RC-Timing), was zu Problemen führen kann, wenn das Timing 
zu knapp bemessen ist.

von Mi N. (msx)


Lesenswert?

Frank E. schrieb:
>> Wenn schwarze Klötzchen zu sehen sind, müßten auch Zeichen erscheinen.
>>
> Nein, müsste genau nicht. Bei mir war es damals so, dass die falsche
> Kontrasteinstellung zu ebendiesen vollkommen schwarzen Kästchen führte.

Wenn die Initialisierung klappt, müßten beiden Zeilen gleich aussehen. 
Es reicht aus, Kontrast auf GND zu legen. Das ist zwar nicht optimal 
aber für einen groben Test ausreichend.

von Ralf K. (kurtx)


Lesenswert?

Ich hatte bisher nur Probleme mit LCD-Modulen, wenn ich sie falsch 
angeschlossen habe. Egal ob von Pollin, Reichelt, oder Conrad.
Allerdings sollte man das Timing nicht "auf Kante nähen".

Probiere 100 µs, statt 50, oder 15 ms, statt 10 in den Initialisierungs- 
routinen. Wenn es damit klappt, tut es das nächstes Jahr auch noch.

Viel nerviger finde ich, dass bei diversen Modulen von Pollin, Reichelt, 
oder Conrad die Hintergrundbeleuchtung nach 0,5 ... 2 Jahren stark 
abnimmt.
Man kann den Vorwiderstand verkleinern, aber nach wenigen Monaten ist 
das Problem wieder da...

von Peter N. (alv)


Lesenswert?

Ralf K. schrieb:
> Viel nerviger finde ich, dass bei diversen Modulen von Pollin, Reichelt,
> oder Conrad die Hintergrundbeleuchtung nach 0,5 ... 2 Jahren stark
> abnimmt.

Ich kenne es bislang nur von blauen reversen LCDs (also helle Zeichen 
auf dunklem Grund), daß sie nach einiger Zeit kaum noch lesbar sind.
Ich habe bislang noch nicht untersucht, ob es an der 
Hintergrundbeleuchtung oder am Kontrast liegt, aber ich kann mir nicht 
so recht vorstellen, daß die Leds gleichmäßig dunkler werden...

von Kilo S. (kilo_s)


Lesenswert?

Ralf K. schrieb:
> Viel nerviger finde ich, dass bei diversen Modulen von Pollin, Reichelt,
> oder Conrad die Hintergrundbeleuchtung nach 0,5 ... 2 Jahren stark
> abnimmt.
> Man kann den Vorwiderstand verkleinern, aber nach wenigen Monaten ist
> das Problem wieder da...

Dann musst du gleich zu Beginn dagegen wirken und den Strom durch die 
LED's Verringern so bald du das Display das erste mal verwendest. So 
weit reduzieren bis noch genug aber nicht zu viel Helligkeit übrig ist.
Kostet doch nur einen Widerstand.

Luca L. schrieb:
> Jemand eine Idee ob man die Displays noch reparieren kann ?

Wenn's am Controller darauf liegt, leider nicht.

Verrutschte leitgummis geht, ist aber erbärmliche fummelei. Vor allem 
per Hand den richtigen und über das gesamte Display gleichmäßigen 
Anpressdruck zu bekommen... 🤮

Beim letzten Display anderthalb stunden gebraucht um das zuverlässig 
hinzubekommen. (Nach einem Sturz ging leider nix mehr)

Abgerissene (beim Löten) Leiterbahnen geht noch, so lange genug Rest zum 
flicken über ist.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Luca L. schrieb:
> Ich habe den Fehler gefunden es sind 4 von 10 Displays defekt :(

Bei solchen Vorkommnissen ist die wahre Fehlerursache nicht selten die 
Stromversorgung oder das Timing. Es würde mich kein bisschen 
überraschen, wenn die 4 Displays bei anderen Leuten tadellos 
funktionieren.

Luca L. schrieb:
> Was kann bei so einem Display kaputt gehen ?

Dessen Bauteile

> ich denke Mal dass die neu sind bei Pollin werden die als neu verkauft.

"Neuware" bei Pollin kann durchaus 40 Jahre alt und schlecht gelagert 
sein. Elektronik ist nicht ewig haltbar.

Pollin verkauft Sachen, die sonst teuer als Sondermüll entsorgt werden 
müssten.

Du kannst ja mal meinen angehängten Code versuchen. Damit laufen meine 
Displays alle (sorry für die hässlichen Makros, heute programmiere ich 
nicht mehr in diesem Stil).

von Karl B. (gustav)


Lesenswert?

Stefan F. schrieb:
> Du kannst ja mal meinen angehängten Code versuchen. Damit laufen meine
> Displays alle

Wurde in jenem C-Programm schon auf das aktuell verwendete Target PIC 
optimiert?
#include  <P16F716.inc>

ciao
gustav

von Stefan F. (Gast)


Lesenswert?

Karl B. schrieb:
> Wurde in jenem C-Programm schon auf das aktuell verwendete Target PIC
> optimiert?

Ich habe das für einen AVR geschrieben. Kannst du ja an deine Hardware 
anpassen.

von Luca L. (Firma: E-Technik-Luca-L) (luca-l)


Lesenswert?

Hi,
Ich habe da leider keine Ahnung von C Programmierung das einzige was ich 
programmieren kann ist Assembler für die PICs.
Da ich die kaputten Display auch an so einem Arduino Dings ausprobiert 
habe wo man den Code nur zusammenklicken braucht da ist es der gleiche 
Fehler die 4 Stück gehen auch da nicht diese 4 Display sind ohne 
Schutzfolie die 6 Stück die gehen habe eine Folie drauf gehabt.

von Johannes F. (jofe)


Lesenswert?

Luca L. schrieb:
> die 4 Stück gehen auch da nicht diese 4 Display sind ohne
> Schutzfolie die 6 Stück die gehen habe eine Folie drauf gehabt.

Hmm, wenn du die Wannenstecker nicht rausgelötet hättest, dann hättest 
du die vier bei Pollin reklamieren und neue bekommen können.
Ob sie die so noch zurücknehmen, weiß ich nicht …

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Deine Sequenz vor dem Absetzen des ersten Befehls weicht erheblich von 
meiner ab. So funktioniert es zuverlässig:

E=LOW
50ms Pause
RS=LOW
40ns Pause
E=HIGH und 4 Bits 0011 ausgeben
250ns Pause
E=LOW
5ms Pause   <--- Ja, das ist lang, aber Absicht.
E=HIGH
250ns Pause
E=LOW
150µs Pause
E=HIGH
250ns Pause
E=LOW
250ns Pause
E=HIGH und 4 Bits 0010 ausgeben
250ns Pause
E=LOW
50µs Pause

Auch die Ausgabe der Bytes in OutLcdControl hat bei mir ein anderes 
Timing. So funktioniert es zuverlässig:

RS=LOW
40ns Pause
E=HIGH + 4 Bits ausgeben
250ns Pause
E=LOW
250ns Pause
E=HIGH + 4 Bits ausgeben
250ns Pause
E=LOW
60µs Pause

Ausnahmen: "return home" und "clear display" (löschen und cusor home) 
brauchen 1600µs!

Du wartest immer nur 50µs und auch die kurzen Delays darüber sind bei 
dir offenbar kürzer. Wobei ich kein Experte in Assembler bin. Du kannst 
die Zeiten sicher besser selbst mit deinem Code vergleichen.

Ein Oszillogramm von der Enable Leitung würde schon viel zeigen.

von Mi N. (msx)


Lesenswert?

Stefan F. schrieb:
> 250ns Pause
> E=LOW
> 250ns Pause

Bei mir auf der Arbeit haben wir immer 1000 ns genommen.
Vielleicht steht soetwas auch noch im Datenblatt. Im Kopf finde ich es 
sofort.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Mi N. schrieb:
> Bei mir auf der Arbeit haben wir immer 1000 ns genommen.

Hier sind die Angaben von Hitachi für 3,3V und 5V.

Ich habe meinen (schnelleren) Code allerdings auch schon erfolgreich mit 
3,3V ohne Anpassung der Zeiten verwendet. Da hatte ich wohl Glück.

von Peter N. (alv)


Lesenswert?

Stefan F. schrieb:
> E=HIGH und 4 Bits 0011 ausgeben

Auf welchen Datenleitungen werden diese Bits ausgegeben?
D0-D3 oder D4-D7?

von Stefan F. (Gast)


Lesenswert?

Peter N. schrieb:
> Auf welchen Datenleitungen werden diese Bits ausgegeben?
> D0-D3 oder D4-D7?

Auf den 4 Leitungen, die mit D4-7 vom Display verbunden sind.

von Stephan S. (uxdx)


Lesenswert?

Ich kann auch noch eine LCD-Routine beisteuern, die ich schon vor zig 
Jahren für den PIC16F88 geschrieben habe und danach unverändert für alle 
mögliche LCD-Displays verwendete.
1
;***********************************************************************
2
; Initialisierung des LCD-Displays
3
4
init_lcd
5
6
    movlw   b'00110000'         ; 0x30 - 8-bit-interface
7
    call    out8_control
8
9
    call    wait5000            ; 5 ms warten
10
11
    movlw   b'00110000'         ; 0x30 - 8-bit-interface
12
    call    out8_control
13
14
    call    wait5000            ; 5 ms warten
15
16
    movlw   b'00110000'         ; 0x30 - 8-bit-interface
17
    call    out8_control
18
19
    call    wait5000            ; 5 ms warten
20
21
    movlw   b'00100000'         ; 0x20 - 4-bit-interface
22
    call    out8_control
23
24
    movlw   b'00101000'         ; 0x28 - 4-bit / 2-zeilig / 5x8
25
    call    out4_control
26
27
    movlw   b'00000110'         ; 0x06 - cursor increase, display shifted
28
    call    out4_control
29
30
    movlw   b'00001100'         ; 0x0c - display on
31
    call    out4_control
32
33
;   movlw   b'00001000'         ; 0x80 - ggf display off
34
;   call    out4_control
35
36
    movlw   b'00000001'         ; 0x01 - löschen, cursor home 
37
    call    out4_control
38
39
    return
40
41
42
43
;***********************************************************************
44
; ein Steuer-Byte als 2x4 Bit aus W zum Display übertragen
45
46
; C_Port = Control-Port sind die Bits RS, E und RW, D_Port = Daten-Port sind die Daten-Bits 4-7
47
48
out4_control
49
50
    movwf   l_temp              ; W zwischenspeichern
51
52
    call    lcd_busy            ; warten auf Display
53
54
    movfw   l_temp              ; Steuerbyte nach W
55
    andlw   0xF0                ; untere 4 Bits ausblenden
56
    movwf   D_PORT              ; obere 4 Bit schreiben
57
58
    bcf     C_PORT, lcd_rs      ; Steuerbyte: RS = 0
59
    bcf     C_PORT, lcd_rw      ; schreiben:  RW = 0
60
61
    bsf     C_PORT, lcd_e       ; E 0-1-0
62
    bcf     C_PORT, lcd_e
63
64
    call    wait20              ; 20 µs warten
65
66
    swapf   l_temp, W           ; untere 4 Bit nach oben in W
67
    andlw   0xF0                ; untere 4 Bits ausblenden
68
    movwf   D_PORT              ; untere 4 Bit oben schreiben
69
70
    bcf     C_PORT, lcd_rs      ; Steuerbyte: RS = 0
71
    bcf     C_PORT, lcd_rw      ; schreiben:  RW = 0
72
73
    bsf     D_PORT, lcd_e       ; E 0-1-0
74
    bcf     D_PORT, lcd_e
75
76
    call    wait50              ; 50 µs warten
77
78
    movfw   l_temp              ; W wiederherstellen
79
80
    return
81
82
83
84
;***********************************************************************
85
; ein Daten-Byte als 2x4 Bit aus W zum Display übertragen
86
87
out4_daten
88
89
    movwf   l_temp              ; W zwischenspeichern
90
91
    call    lcd_busy            ; warten auf Display
92
93
    movfw   l_temp              ; Datenbyte nach W
94
    andlw   0xF0                ; untere 4 Bits ausblenden
95
    movwf   D_PORT              ; obere 4 Bit schreiben
96
97
    bsf     C_PORT, lcd_rs      ; Datenbyte:  RS = 1
98
    bcf     C_PORT, lcd_rw      ; schreiben:  RW = 0
99
100
    bsf     C_PORT, lcd_e       ; E 0-1-0
101
    bcf     C_PORT, lcd_e
102
103
    call    wait20              ; 20 µs warten
104
105
    swapf   l_temp, W           ; untere 4 Bit nach oben in W
106
    andlw   0xF0                ; untere 4 Bits ausblenden
107
    movwf   D_PORT              ; untere 4 Bit oben schreiben
108
109
    bsf     C_PORT, lcd_rs      ; Datenbyte:  RS = 1
110
    bcf     C_PORT, lcd_rw      ; schreiben:  RW = 0
111
112
    bsf     C_PORT, lcd_e       ; E 0-1-0
113
    bcf     C_PORT, lcd_e
114
115
    call    wait50              ; 50 µs warten
116
117
    movfw   l_temp              ; W wiederherstellen
118
119
    return

: Bearbeitet durch User
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.