Hallo,
ich benutze ein LCD Display mit HD44780 Baustein. Ich habe die
entsprechende Software geschrieben und das Display laufen gelassen. Es
lief eigentlich alles einwandfrei. Eines tages ging es nicht mehr, es
zeigte nur noch schwarze Balken im ersten Zeile (2x16). Ich habe sofort
an Softwarefehler gedacht. Tagelang habe ich mich gequält und mit der
Software herurumgefummelt. Plötzlich ohne irgendeine logische Erklärung
und mit der gleichen Software, die das Display eines Tages nicht mehr
lief, ging es wieder.
Jetz geht es noch mal nicht...Das ist komplett merkwürdig. Mit der
Software, der Display gestern hervorragend funktioniert hat, kann man
heute nichts mehr anfangen. Manchmal sieht man komplett komische
Zeichen... Die Cursorposition und die Anordnung ändert sich zufällig
und das Display gibt Zahlen die für mich keine Bedeutung haben, wie er
will... Manchmall nur schwarze Balken und manchmall gar nichts wird
angezeigt...Und alles ohne irgendeine Änderung in der gleichen
Software.
An Harwarefehler habe ich deshalb auch gedacht und deswegen habe ich
noch 2 Stück das gleiche Display gekauft aber ohne Erfolg. Wenn das
Problem mit der µC wäre, musste ja er immer auftreten.
Wenn ich den µC ausser LCD Zwecke benutze, funktioniert alles
fehlerfrei...
Ich habe keine Löt- oder Kurzschlussproblem... Wo kann das Problem
liegen? Mein µC ist ein 8-Bit SAB80C537 und das Display ist von
pollin.de. Ich weiß es nicht was ich noch sagen kann...
Für jede Hilfe würde ich sehr Dankbar.
MfG
Hi,
benutzt du das Busy-Flag oder Warteschleifen? Bei Warteschleifen
solltest du die Zeiten nochmal prüfen.
Vielleicht liegt es auch daran das deín Stack Überlaeuft....
Mfg
Dirk
nur eine zeile hoert sich nach einem problem bei der initalisierung
an..
und wenn es dann auch komplett schwarz ist dass der spannungsteiler von
der kontrast spannung einen hau weg hat..
alles sehr merkwuerdig..
villeicht aber auch nur ein bloeder fehler im programm
versuch dennoch mal einen anderen µC
Probleme entstehen auch, wenn die LCD Routinen von interrupts
unterbrochen werden, welche auch auf die LCD Routinen zugreifen.
Reentrerency ist das Stichwort und sollte vermieden werden. Jedoch
scheint mir dein Problem Grundlegenderart zu sein. Wie Dirk sagt. Die
Wartezeiten lieber etwas länger machen, als knapp.
mfg
Börtsch
Hallo Dirk,
die Antwort lautet sowohl als auch... Normalerweise lief das Dispaly
mit oder ohne Busy-Flag. Jetzt läuft aber nichts mehr, mit oder ohne
BF. Ich bin kein Profi aber was meinst du mit Stacküberlauf und es ist
ja schonmal wunderbar funktioniert.Wenn also der Stack überläuft, warum
nicht gestern und jetzt?
MfG
Ich habe auch sofort an Wartezeiten gedacht und diese sofort geändert.
fast nach jedem Befehl warte ich mindestens 15 ms und am Anfang der
Initialisierung etwa 45ms...geht trotzdem nicht.
hallo stefan,
ich habe an dem Kabel nichts geändert, habe nur ein µC, Wackelkontakt
habe ich nicht und wenn es kalte Lötstellen gäbe, würde ich ja von
Anfang an Probleme kriegen.. Es ist aber nicht so
MfG
Hi,
Stack Overrun ist solch eine Sache .... am besten das Programm
Simulieren. Einige Simulatoren zeigen Stack Fehler an.
Da ich deinen µC nicht kenne hab ich noch ein Tipp ins blaue:
Ist deine VCC gefiltert (100nF am µC) ??
Mfg
Dirk
Hallo Leute,
was ich noch gemerkt habe; der Displaykontrast kann ich nicht ändern!
egal welche Potiwert ich zwischen Pin2 und Pin3 benutze, oder aber gar
kein Widerstand(also gar keine Verbindung zwischen 2 und 3, direkte
Anschluss von -5V an Pin3), das Kontrast ändert sich gar nichts! Kann
so etwas die Ursache sein? Wo mache ich denn Fehler? Aussrdem die
Hintergrundbeleuchtung habe ich auch nicht angeschlossen.
MfG
@Sonne
Du hast Gülle auf Deiner VCC! Wenn Du ein Oszi hast schau Dir mal die
Versorgungsspannung für Dein Display an. Grob geschätzt würde ich
raten, dass Du einen Brückengleichrichter hinter einem Trafo hast und
dann ein 7805 oder sowas kommt. Ich denke eine Diode im GL ist platt.
msDelay(18);
command(0x30);
msDelay(5);
command(0x30);
msDelay(2);
command(0x30);
msDelay(2);
command(0x3A);
command(0x3A);
command(0x01);
command(0x03);
Delay();
was passiert wenn du diese Init verwendest?
Hallo Simon,
ich glaube, daß deine Antwort die richtige Weg zur Lösung ist. :-)Aber
moment! was meinst du mit Gülle auf der VCC? Welche VCC meinst du, den
von µC Board die Spannung, von LCD den +VCC oder oder von LCD -VCC? und
was ist ne Gülle?
Ausserdem wenn ich mit der Versorgungsspannung von LCD irgendetwas
ändere, manchmall wird der Treiber richtig heiß... obwohl ich gar keine
Kurzschluss sehe...
Für LCD Spannungsversorgungen habe ich so gemacht. +5 Volt habe ich
direkt aus dem +5V Pin auf dem µC genommen und den GND habe ich ebenso
aus dem Board. Für -5 Volt habe ich folgendes gemacht;
Ein zusätzliche Netzteil von 5 Volt genommen. Von diesen Netzteil, die
Pluspole an den GND von µC angeschlossen und die Minuspole als -5 VCC
für das LCD benutzt.
Und bisher hatte es eigentlich funktioniert. Ist das Problem bei der
Stromversorgung von der µC Board oder von dem extern angeschlosenen -5
Volt Versorgung?
Danke dir für dein Vorschlag...
Aber ich brauche noch einige, glaube ich
MfG
Höchstwarscheinlich hast du beide LCDs geschossen.
Liegt -5V an wenn Vcc noch nicht anliegt -> LatchUp -> 44780 bzw.
Treiber kaputt
Mess mal den Strom am -5V Eingang und an Vcc. Fließen hier einige 10mA
-> neues LCD kaufen
Hallo Mr_Boertsch,
ich habe dein Initialisationsvorschlag probiert und es hat sich leider
nichts geändert. Ich glaube das Problem ist etwas mit der
Stromversorgung... Das Display ändert sich gar nichts ausser schwarze
Balken, manchmal gar keine Balken und manchmal eine Mischung aus
halbdunkle und dunkle Balken...
Etwas mit der Stromversorgung, etwas mit der Gülle? Was ist ne Gülle
überhaupt?
Gruß
Hallo Benedikt,
Liegt -5V an wenn Vcc noch nicht anliegt -> LatchUp
Das stimmt ganz genau. Ich habe immer so gemacht...Du meinst somit sind
die Treiber kaputt...Ausserdem habe ich die Strommessungen gemacht. Das
Ergebnis ist ; an -VCC läuft 3mA und an +VCC läuft 0.75 A.
Wenn der Treiber kaputt ist,warum hat es bisher ohne Fehler
funktioniert? Oder manchmal einwandfrei und manchmal GAR
NICHTS...funktioniert.
Ich glaube wir haben langsam die Lösung...
MfG
Naja. hätte ja sein können. aber ich vermute auch das irgendwo störungen
vorhanden sein müssen.
Gülle ist übrigens ein Synonym von Jauche. So zusagen Kuhmist.
Die Latchup-Probleme hatte ich auch schon. Seitdem kommt bei mir ein
Serienwiderstand von 100Ohm in die Vcc-Leitung zum LCD-Display um den
Strom zu begrenzen.
@ubootfanat
eben... da stimmt etwas auf keinen Fall. Ich möchte aber die Ursache
auf jeden Fall wissen damit ich nächstes mal nicht die gleiche Fehler
mache. Das hier ist mein 3. Display...
Noch ein Paar Display will ich nicht mehr schlachten. Sollte ich auch
Serienwiderstand von 100Ohm in die Vcc-Leitung zum LCD-Display benutzen
um den Strom zu begrenzen. (Wie der Stefan gemacht hat.)
Oder sollte ich von Anfang an etwas noch vernünftig machen?
Ausserdem habe ich zwischendurch in meinem µC irgendeine Störung
verursacht? Kann das sein daß er auch etwa eine Gülle hat?
MfG
@tex
-5V am LCD? Sowas gibt es? Wofür?
Also tex, ohne -5V hatte ich noch nicht mal ein einziges Zeichen auf
dem Display gekriegt... mein Display hat ne HD44780 Baustein. Wie ist
es bei dir?
Gruß
Ich habe
0V
+5V
Kontast, der was zwischen 0 und 5 V sein soll, macht ein spnnungsteiler
bei mir
einen Haufen Datenbits (8?)
noch irgendwas
und - und 0 für die Beleuchtung.
Ich meine es ist ein HD44780 bin aber nicht sicher, ist aber wohl der
verbreitetste?
Gülle ist übrigens ein anderes Wort für Schei.. Wenn Du sowas in Deinem
µC hast, würde er streng riechen ;-). (und ganz bestimmt nicht
funktionieren!) ;-)
Simon wollte damit wohl ausdrücken, das Deine Gleichspannung mit der Du
Dein Display versorgst nicht in Ordnung ist.
Hallo,
ich messe ständig den Strom an den VCCs von LCD. An -VCC ist er etwa
3mA aber an +VCC ändert er sich von 0.8A bis 12mA!
Verstehe also gar nichts...
MfG
@Jens123
in meinem Programm gibt es keine Interrupts. Im Display sehe ich gar
nichts ausser schwarze Balken im ersten Zeile. Es ist egal welche
Initialisationssequenz oder was ausgegeben werden soll. Nur schwarze
Balken oder manchmal gar nichts.
Gruß
@tex
Ich weiß was du meinst. Ich hatte es irgendwo gelesen... Dein LCD hat
das gleiche Treiber wie meine aber deine Kontrastversorgung ist anders
wie meine. Bei mir will er aber unbedingt -5 Volt für den Kontrast.
Danke für dein Vorschlag
MfG
dann schau mal, wann die balken kommen
beim initalisieren, oder ob sich der µC irgendwo aufhaenngt
lass ein paar leds in deinem programm blinken =)
oder in der main
PORTA = PINB
@Jens123
ich habe das Programm Schritt für Schritt mit printf() funktion alles
untersucht. Nach jede Zeile habe ich ein Printf() funktion geschrieben
und alles in meinem Rechner angezeigt. Die Initialisation übt er
aus!(alle printf() Funktionen schreibt er problemlos im Rechner) und
wenn er in while(1) Schleife ist, manchmal läuft es ein Paar Schritte
weiter aber meistens bleibt es hängen. Was auf dem Display zu sehen
ist, entweder schwarze Balken oder merkwürdige Zeichen die gar kein
Sinn haben! Dann geht es gar nicht mehr...
Deswegen meine ich, daß ein bedeutendes Problem der Strom den er zieht
ist. Da es von 12 mA bis 0.8A schwankt...warum auch immer...
MfG
Wiso rätseln jetzt alle über Softwarefehler ?
Da ist so, als wenn ich mal kurz 12V an meinen CPU anschließen würde,
und mich über die Software aufregen würde, warum sie nicht mehr
geht...
Schließ mal nur Vcc und GND an und mess dann den Strom. Ist der hoch ->
neues LCD
wenn nicht, verbinde VLCD mit GND und messe hier den Strom. Ist der
hoch -> neues LCD
Ansonsten kann das LCD noch funktionieren, also zumindest mal für
später aufheben.
Um das Problem mit der negativen Spannung zu umgehen am besten eine
Ladungspumpe verwenden (kleiner Oszillator, ein Kondensator und zwei
Dioden). Dann kann schonmal keine negative Spannung vor der positiven
anliegen. So habe ich es zumindest gemacht, nachdem ich bei 2 LCDs je
die 44100 Treiber geschossen hatte. Zum Glück hatte ich noch ein paar
rumliegen, jetzt funktionieren beide wieder...
@Dirk
Ich habe das Display vom pollin.de gekauft (Best.Nr. 120 128) wie -5
Volt Kontrastspannung angeschlossen soll stand in einem kleinen Zettel
bei der Lieferung. Das Digitalformat von diesem Zettel habe ich leider
nicht aber ich habe von HD4470 das Datasheet im Anhang hochgeladen.
MfG
Hi,
mich haetten die Electrial Parameters des LCD's interessiert.
Ich vermute leider das Benedikt recht hat.
0.8A nur auf VCC ist viel zu viel. Das benoetigt nichtmal die
Background LED an Strom.
Mfg
Dirk
Hallöle,
schwarzer Balken in erster Zeile+leer in Zweiter Zeile =>
Initialisierung nicht korrekt (Siehe Datenblatt S.46)
insbesondere die Zeitn genau einhalten
Wenn zu zu schnell auf das LCD-schreibst gibts "komische" effekte
(Datenblatt S.50) überprüf dochmal deinen Schreibvorgang mit dem Oszi
hoffe das hilft
Gruß aus dem Schwabenland
@Benedikt
Seit etwa heute Mittag habe ich keine Änderung in dem Hardware gemacht
sondern ab und zu Software geändert und den Strom auf dem +VLCD
gemessen. Es ist mal 0.8A, mal 3-4mA. -VLCD ist immer 3mA. Das Display
dagegen hat manchmal funktioniert manchmal gar nicht. Z.B. jetzt
funktioniert wieder(Strom am +VLCD = 3 mA) aber dafür mein Text was er
ausgeben soll + merkwürdige Zeichen!
Deswegen kann ich nicht genau sagen ob der Strom immer zu hoch ist und
er gar nicht anzeigt. Dafür unregelmässig und schwankend. Mal
merkwürdige Zeichen, mal gar nichts im Anzeige.
Verstehe also ein große Null...
Gruß
@T.Stütz
Ich würde so gerne hoffen, daß du recht hättest aber es ist leider
nicht so. In dem Datasheet ist die längste Warteschleife besteht aus
etwa 15ms. Ich gebe in meinem Programm mindestens 150ms für jede
Warteschleife! es geht trotzdem nichts...
MfG
Wenn das LCD mal gerade kein 0,8A zieht, und du es nicht ausschaltest,
ist dann der Strom mehr oder weniger konstant ?
Die 0,8A "dürfen" nur dann fließen, wenn VLCD vor den +5V
eingeschaltet wird (oder auch gleichzeitig, was das Verhalten erklären
könnte, dass es nur manchmal passiert.)
@Dirk
0.8A nur auf VCC ist viel zu viel.
Du hast völlig recht. Den 0.8A Strom hat er in der vorletzten Messung
angezeigt. Dabei hat er nur schwarze Balken im LCD.
Jetzt aber, nur 3mA und komische Zeichen im LCD...
Ich hab gar keine Erklärung. Kann jemand das erklären?
Gruß
@Benedikt
Wenn das LCD mal gerade kein 0,8A zieht, und ich es nicht ausschalte,
und wenn ich +VLCD rausstecke, flackert das Display (Was er vorher
noch nie gemacht hat!) und dann den Strom am +VLCD messe, sehe ich eine
Schwankung von 0.3mA (1.6 bis 1.9 mA). Dabei schreibt er den Text, was
er schreiben sollte, aber immer wieder ändert er seine Zeile und
Stellung (was er eigentlich nicht tun dürfte!). Manchmal tut er
komische Zeichen in dem Text...
Gruß
hast du schon versucht einfach das Display ohne Controller an die
Versorgungsspannung zu hängen (meines - allerdings mit
I2C-Erweiterungsmodul - schreib die Versionsnummer hin)
wenn das möglich ist dann probier einfach 1 Zeichen zu schreiben...
des Problem muss sich doch lösen lassen
mfg ubootfanat
@ubootfanat
nein habe ich nicht probiert. Und ich habe auch keine Idee wie ich 1
Zeichen ohne µC auf dem Display anzeigen soll.
aber danke für dein Vorschlag.
MfG
@Sonne
Ein einfaches IC, das gerne verwendet wird ist der ICL7660. Schau dir
mal folgende Schaltung an:
http://www.dl5neg.de/powermeter/hardware/dspm03/DIGITAL.gif
Aber man sowas auch aus jeder beliebigen Taktquelle (NE555, Oszillator
mit CMOS Gatter, Ausgang am uC) zwei Dioden und zwei Kondensatoren
bauen.
@Benedikt
Schließ mal nur Vcc und GND an und mess dann den Strom. Ist der hoch
->neues LCD
wenn nicht, verbinde VLCD mit GND und messe hier den Strom. Ist der
hoch -> neues LCD
Ansonsten kann das LCD noch funktionieren, also zumindest mal für
später aufheben.
Wenn dein Theorie stimmt, dann ein LCD von mir (ins gesamt 3 Stück) ist
absolut kaputt.
Was kann ich machen um zu bestimmen daß die anderen nicht kaputt sind.
Ist das das einzige Verfahren?
Mit den anderen 2 LCDs bekomme ich an beiden +/- VLCD Pins etwa 1.5mA
ohne den µC anzuschliessen. Es ist in normalen Bereich.
Meinst du daß ich diesen LCDs benutze und weitere Ursachen (wenn dann!)
nur in Software suche?
MfG
Wenn du eine Software hast die definitiv funktioniert, dann würde ich
einfach mal damit die LCDs ansteuern.
Ansonsten würde ich ein anderes Modul (eines das ohne negative Spannung
auskommt, gibt es ja billig bei Pollin) verwenden um die aktuelle
Software zu überprüfen.
@Benedikt
Bei Pollin, das einzige Display, was ich finden konnte, ist mein
Display und hat den BestellNr.120 128
Ich habe mindestens ein Software die definitiv funktioniert. Kannst du
bitte mir genaue Eingaben von einem LCD (BestellNr. und Adresse)
vorschlagen die ohne die negative Spannung auskommt.
Danke
MfG
Hallo,
Ladungspumpen (Spannungsinvertierer) gibt es bei Reichelt, oder sonst
wo!!! IC 7660 - ist ein kleiner, billiger DIP. Da braucht man kein
zusätzliches Netzteil mit mächtig Strom.
Kann es im übrigen sein, dass das Netzteil einen Kurzschlusstrom von
eben den besagten 800mA hat?
Klar, wenn nur für kurze Zeit ein kleiner Hardware-Bug zuschlägt,ist es
ziemlich Möglich, das es dir das Display-Ram mit den schönen Textzeilen
zerwürfelt und du "Hyroglyphen" (***wie schreibt man das?***)
angezeigt bekommst. Oder das Display den kompletten Reset abbekommt.
Dann hast du wirklich nur noch schwarze Balken.
Ohne deine Software angeschaut zu haben, könnte ich meinen A***
verwetten, dass es ein Hardware-Bug ist.
Wenn eine Software mal gelaufen ist, dann läuft sie immer
(Restriktionen von außen mal abgesehen)
Gruß Alex
Hast du die neg. Spannung über ein Poti angeschlossen? Habe gleiches LCD
über ein 25k Poti mit der neg. Spannung versorgt. Bei ca. 3V beginnt
der Kontrast und bei 3,2V ist er optimal. Prüf mal auf Wackelkontakt
des Poti. (Erklärt aber nicht den hohen Strom von 0,8A)
MfG
Wolfgang
@Benedikt
vielen dank für deine Kommentare und für die Bestellnummern. Demnächst
kaufe ich mir eine von denen die du Bestellnummern aufgeschrieben
hast.
@Alex
***Hardware-Bug*** ist die beste Bezeichnung für mein Problem glaube
ich.
Also, demnächst erkenne ich einen Hardwarefehler so; Ich schreibe mein
Software und wenn es ein Paar mal fehlerfrei läuft und eines Tages gar
nicht mehr geht (wie reaktionslose schwarze Balken!)...Dann weiß ich,
daß das Problem aus der Hardware stammt und quäle ich meine Software
nicht mehr! Egal ob das Display ein Paar Tage später nochmal mit der
gleichen Software läuft oder nicht. Es ist ausgeschlossen
"Hardware-Bug..."
@ALLE
Vielen Dank an alle für die Kommentare und Hinweise die mir sehr viel
geholfen haben...
MfG
@Thorsten
Würde ich nicht unbedingt zustimmen.
Es kauft sich nur jeder die billigen LCDs, ohne Kenntnis der Materie.
Das mit der negativen Spannung ist aber kein Anfängerfehler, sondern es
fällt so ziemlich jeder das erste mal drauf rein (ich ebenso).
Selbst erfahrene Leute haben Probleme damit, der 44780 ist eben
ziemlich alt und empfindlich. Die Nachbauten von Samsung sind da nicht
besser...
Ich weiß, dass auch andere LCD Händler die definitv funktionierende
Ware verkaufen LCDs zurückkommen die auch mal einige Ampere gezogen
haben (man erkennt dann an der Hintergrundbeleuchtung ein paar Flecken,
genau da wo die ICs sitzen). Meistens ist die Ursache irgendein falsches
Anschließen, da die Leute Null Ahnung haben (LCD an 12V, LPT Port
anschließen aber keine Spannung anlegen usw.)