Hallo, Ich habe dieses LCD (https://www.buydisplay.com/default/character-arduino-40x4-lcd-display-datasheet-ks0066-white-on-blue) bereits auf einer geätzten Platine in Betrieb, und das fehlerfrei. Nun habe ich ein neues Projekt und möchte dieses LCD wiederverwenden, die voll funktionstüchtige Software habe ich dabei nicht verändert und auch am PIC18F26K22 an den gleichen Pins angeschlossen. Allerdings habe ich derzeit nur einen Versuchsaufbau auf einem Steckbrett. Hier kommt es zu kuriosen Störungen wie auf einem Bild ersichtlich. Wenn ich allerdings den gelöteten Anschluss für den ICSP fest drücke und ins PicKit einstecke kommt es zu keinem Fehler wie auf dem ersten Bild ersichtlich. Die Verkabelung des LCD habe ich bereits 4 Mal neu aufgebaut, der Fehler ist jedes Mal der gleiche. Den Schaltplan habe ich noch zusätzlich angehängt, hat aber, wie gesagt, so schon gut funktioniert. Ich hoffe ihr habt gute Lösungsvorschläge und oder Angaben zum Problemauslöser für mich :) LG und einen schönen Dienstag noch, Markus Edit: Das PCB Layout ist mir mitreingerutscht^^
:
Bearbeitet durch User
Markus B. schrieb: > Hier kommt es zu > kuriosen Störungen wie auf einem Bild ersichtlich. Auf welchem? Worin genau bestehen die Störungen? Ratespielchen sind hier nicht beliebt. Bild 1 und zwei sehen doch beide OK aus.
Hallo, Sorry, dachte es wäre klar. Bild 1 mit den 4 Zeilen ist wie es sein soll (wenn ich den ICSP header fest drücke kommt das eben auch raus) und Bild 2 ist fehlerhaft. Das Pi von Bild 2 sollte da auf keinem Fall stehen, und die untern beiden Zeilen fehlen. Manchmal sind auch nur Zeile 3 & 4 zu sehen und oben dafür nichts. Oder ganz was spezielles, ein "D" in Dauerschleife welches die oberen 2 Zeilen überschreibt. Es muss irgendwie mit den Enable-Leitungen zusammenhängen denke ich (E1 für Zeile 1 & 2, E2 für Zeile 3 & 4), nur habe ich die Leitungen alle durchprobiert und keine fehlerhafte Leitung finden können.
Markus B. schrieb: > Den Schaltplan habe ich noch zusätzlich angehängt, hat aber, wie gesagt, > so schon gut funktioniert. Hmm, wie kommt man drauf, D0...D3 an Masse kurzzuschliessen und RW von Controller z.B. auf READ schalten zu lassen ? Wieso glaubt man, taugt ein IRF540 für schwache 5V Ansteuerspannung ? Und dann soll der wohl erhebliche von ihm geschaltete Strom doch bitte nicht aus den 5V des Steckbretts kommen, oder doch ? Über die Lage des Abblockkondenstaors beim Steckbrett ist ja nichts bekannt, über mangelnde Sternpunktführung von Masse auf der Platine aber schon.
Michael B. schrieb: > Hmm, wie kommt man drauf, D0...D3 an Masse kurzzuschliessen und RW von > Controller z.B. auf READ schalten zu lassen ? LCD läuft im 4 Bit modus, möchte mit einem Port auskommen, nur so geht das. RW auf READ fürs Busyflag Michael B. schrieb: > Wieso glaubt man, taugt ein IRF540 für schwache 5V Ansteuerspannung ? Das tut in meiner Fragestellung erstmal nichts zur Sache, aber ja, ein FET mit 4V Vgs(th) ist denkbar ungeeignet. Selbstverständlich kommt hier ein LL-FET zum Einsatz. Am Steckbrett habe ich gerade einen LU024N. Mehr als 1,5A/7,5W werden damit nie geschalten. Allerdings auch erst mit der fertigen Platine. Am Steckbrett ist eine 20mA LED als ersatz für diesen Ausgang. Michael B. schrieb: > Über die Lage des Abblockkondenstaors beim Steckbrett ist ja nichts > bekannt, über mangelnde Sternpunktführung von Masse auf der Platine aber > schon. Der Kondensator ist direkt am Steckbrett neben Pin 19&20 gesteckt. Selbstverständlich mit so kurzen Leitungen wie möglich. Das Platinenlayout ist noch lange nicht fertig, daher der Testaufbau, dennoch lasse ich mich gerne über die "Sternpunktführung" belehren. (Kein Treffer zu Sternpunktführung durch Google :/)
:
Bearbeitet durch User
Markus B. schrieb: > Es muss > irgendwie mit den Enable-Leitungen zusammenhängen denke ich Gut möglich - viele Displays mögen keine langen Leitungen bei Enable. 10cm gehen, 20cm können schon Kante sein. Notfalls direkt am Display einen Schmitt-Trigger dafür vorsehen.
Nop schrieb: > Gut möglich - viele Displays mögen keine langen Leitungen bei Enable. > 10cm gehen, 20cm können schon Kante sein. Notfalls direkt am Display > einen Schmitt-Trigger dafür vorsehen. In meinem Fall bin ich knapp unter den den 10cm
Dann könnte die SW von den Timings her auch bisher schon an der Kante gewesen sein, und mit dem fliegenden Aufbau geht's nicht mehr gut.
Hi >LCD läuft im 4 Bit modus, möchte mit einem Port auskommen, nur so geht >das. >RW auf READ fürs Busyflag Die Datenleitungen der Displaycontroller besitzen interne PullUp-Widerstände. Da ist das auf Masse legen eher contraproduktiv. Im Normalfall lässt man die Datenleitungen einfach offen. MfG Spess
Nop schrieb: > Dann könnte die SW von den Timings her auch bisher schon an der Kante > gewesen sein, und mit dem fliegenden Aufbau geht's nicht mehr gut. Ja, das ist sehr gut möglich, werde ich nachher gleich ausprobieren! :) Allerdings verwundert es mich wie ein Drücken auf den ICSP Header hierbei helfen kann?!
spess53 schrieb: > Hi > >>LCD läuft im 4 Bit modus, möchte mit einem Port auskommen, nur so geht >>das. >>RW auf READ fürs Busyflag > > Die Datenleitungen der Displaycontroller besitzen interne > PullUp-Widerstände. Da ist das auf Masse legen eher contraproduktiv. Im > Normalfall lässt man die Datenleitungen einfach offen. > > MfG Spess Können da nicht Störungen bei der Initialisierung Probleme machen? so habe ich immer definierte 0 Pegel.
nimm sowas: https://www.ebay.de/itm/2004-20X4-Character-LCD-Display-0x27-0x3F-5V-IIC-I2C-TWI-SP-I-Interface/172403282443?hash=item282409520b:g:54EAAOSwcUBYItkY problemfrei mit nur 4 Leitungen
Nop schrieb: > Dann könnte die SW von den Timings her auch bisher schon an der Kante > gewesen sein, und mit dem fliegenden Aufbau geht's nicht mehr gut. Solche Phänomene wegen kritischen Timings hatte ich auch schon mal. Allerdings war bei mir das kritische Timing eher bei der Initialisierung des Displays. D.h. es zeigte sporadisch nach Initialisierung gar nichts an oder vertauschte High- und Lownibble oder funktionierte einwandfrei. Dass nach erfolgreicher Initialisierung die Datenübertragung gestört war hatte ich da jedoch nicht. Aber unterschhiedliche Displays auf brauchten da tatsächlich auch unterschiedliche Timings.
> Die Datenleitungen der Displaycontroller besitzen interne > PullUp-Widerstände. Da ist das auf Masse legen eher contraproduktiv. Im > Normalfall lässt man die Datenleitungen einfach offen. Ich hatte hier schon Displays mit HD44780-Controller, die erst gingen, als ich die ungenutzen eingänge auf GND gelegt hatte. Generell lege ich freie Eingänge lieber auf ein definiertes Potential.
:
Bearbeitet durch User
Karl K. schrieb: > nimm sowas: > > https://www.ebay.de/itm/2004-20X4-Character-LCD-Display-0x27-0x3F-5V-IIC-I2C-TWI-SP-I-Interface/172403282443?hash=item282409520b:g:54EAAOSwcUBYItkY > > problemfrei mit nur 4 Leitungen Eine tolle Lösung für ein anderes Problem: wenn IO Mangel herrscht. Ist hier aber nicht das Problem. Warum also einen Stromfresser und eine potentielle zusätzliche Fehlerquelle einbauen?
Hi
>so habe ich immer definierte 0 Pegel.
Und immer einen erhöhten Stromverbrauch. Wenn du wirklich Probleme mit
Störungen hast, dann lege die PINs auf VCC statt auf GND.
MfG Spess
spess53 schrieb: > Und immer einen erhöhten Stromverbrauch. Wenn du wirklich Probleme mit > Störungen hast, dann lege die PINs auf VCC statt auf GND. Damit kommt man nicht mehr in den 4-Bit modus, aber ja, der Ansatz ist natürlich gerechtfertigt.
Frank M. schrieb: > Wie kommst Du auf diese Idee? https://www.buydisplay.com/download/ic/SPLC780.pdf Hab mich vertan, zuerst muss man den 4 Bit modus aktivieren (Function Set), um mit einem weiteren Function Set (diesmal getrennt auf 2x 4-Bit gesendet) die Zeilenanzahl und den Fonttyp wieder richtigzustellen.
Markus B. schrieb: > Hab mich vertan Ja, hast Du. Es wäre ein klassischer Knieschuss, wenn man den 4-Bit-Modus deshalb nicht erreichen könnte, weil ein oder mehrere Bits gesetzt sind, die gar nicht zu den verwendeten 4 Bits gehören. Der allgemeine Tenor zu HD44780-Displays ist: Man lässt die ungenutzten Pins offen, Ausnahmen bestätigen aber die Regel. In diesem Forum gibt es dutzende von Threads zu genau diesem Thema, siehe auch HD44780. Zum Thema: Der TO soll ein anderes Steckbrett verwenden oder das Zeug auf einer Platine festlöten. Diese Steckbretter können immer Wackelkontakte haben. Und genau danach sieht es aus, wenn man dem Wortlaut des Eröffnungsbeitrags folgt.
:
Bearbeitet durch Moderator
Direkt am Display zwischen Vcc und Vss ist es ein feiner Zug, auch noch einen 100n Kerko zu platzieren. Mit Masse und +5V magst du alle Komponenten erreicht haben, aber nach dem Prinzip "Lichterkette" alles hinternander weg und schön schmal, damit die Leiterbahn auch ja noch zwischen 2 DIL Pins durchpasst, Abblockkondensatoren irgendwo, wo gerade Platz war, platziert. Masse und +5V sollen im Idealfall sternförmig verlegt werden und der Sternpunkt sind die Lötaugen des Elkos nach dem Spannungsregler - auch kein T, wo der Elko über einen langen dünnen Stich angebunden ist. Und breitere Leiterbahnen, wenn du schon keine Masseflächen machen willst. 1mm oder besser noch darüber. Wenn bei dir ganz hinten in der Kette der FET die Hintergrundbeleuchtung einschaltet - bei 47 Ohm fließen rund 100 mA, womöglich noch PWM gedimmt, dann "wackelt" Masse und 5V am Display und am Controller lustig mit. Und es ist kein Abblock C vor Ort, der das ansatzweise abfangen könnte. Probiere das Ganze erst mal ohne Hintergrundbeleuchtung, die "säuft" vermutlich am Meisten ;-)
Chris L. schrieb: > Ich hatte hier schon Displays mit HD44780-Controller, die erst gingen, > als ich die ungenutzen eingänge auf GND gelegt hatte. > Generell lege ich freie Eingänge lieber auf ein definiertes Potential. Hi, die Diskussion hatten wir ja schon einmal. Als Kompromiss nehme ich 4,7 kOhm Widerstände von D0 bis D3 auf GND. Das ist zwar nicht richtig aber auch nicht ganz falsch. Meine Überlegung war: Beim Experimentieren - gerade mit der Busy-Flag-Abfrage - schalte ich zeitweise die Eingänge zu Ausgängen um. Und jetzt habe ich die direkt auf GND gelegt. Was passiert da wohl? -> Kurzschluss. Wenn ein R noch drin ist, wird zumindest der Strom noch begrenzt. Ist die SW ok, kann eigentlich nichts passieren. Aber das weiß man ja vorher nicht. Die Datenblätter empfehlen da wohl das Richtige. Die EA DOGM 162 sagen, dass D0-D3-Anschlüsse auf + Vcc gelegt werden sollen. https://www.lcd-module.de/deu/pdf/doma/dog-m.pdf Seite 4 Mitte rechts Frank M. schrieb: > Der allgemeine Tenor zu HD44780-Displays ist: Man lässt die ungenutzten > Pins offen, Ausnahmen bestätigen aber die Regel. ciao gustav
:
Bearbeitet durch User
Markus B. schrieb: > Damit kommt man nicht mehr in den 4-Bit modus, aber ja, der Ansatz ist > natürlich gerechtfertigt. Hi, habe einmal die Routine umgeschrieben, so dass statt der 30 bzw. 03 3F bzw. F3 auf den Port gegeben wird, was ja einem +Vcc (high) auf den "unbenutzen" Pins entspricht. Tatsächlich scheint der der Wechsel zum Vierbit-Modus zu funktionieren. Aber nach internem CPU-Reset (z. B. Watchdog) zeigt das Display im Hintergrund schwach Balken. Erst bei Power off und wieder on, wird wieder richtig initialisiert. Also ist die Überlegung, auf keinen Fall die unbenutzten Pins nach "high" zu setzen, von der Logik her nicht ganz falsch. Es geht ja nur um die erste Sequenz nach dem vom Display selbst ausgeführten POSR. Der POSR endet im Achtbitmodus. Schaltet das Display aus. Die für den Vierbitmodus vom Display ignorierten unteren vier Bit werden im Achtbitmodus eben noch nicht ignoriert. Wenn jetzt schon die Verdrahtung für den Vierbitmodus fertiggestellt ist, dann läßt man die unteren Datenbits - wie oben schon gesagt - offen. Also Tristate sind sie nicht. Erst nach dem Durchlaufen der 30-er Sequenz und dem Einrichten des Vierbitmodus. Um jetzt diese Eingänge irgendwie zu schützen, hätte ich den Vorschlag, zwei Klemmdioden mit Schutzwiderstand vor jedes Portbit zu schalten. Mit den Schutzdioden könnte die Spannung am Eingang nie größer +Vcc und nie kleiner als GND (0V) werden, und durch einen geeigneten Widerstand würde ein Strom begrenzt. (Stichwort Backpowering) https://www.mikrocontroller.net/articles/Pegelwandler#Schutzdioden ciao gustav
:
Bearbeitet durch User
Las die scheiß unbenutzten offen! ALLE Init Befehle nutzen nur die oberen 4bit, der Rest wird IGNORIERT, nix mit 8Bit Modus. Der Fehler deute darauf hin das deine Init (o. die komische Schutzbeschaltung) fehlerhaft ist (einzeilig) und ohne den Automatischen Reset nicht funktioniert.
:
Bearbeitet durch User
Teo D. schrieb: > unbenutzten offen! Ja, keine Angst, bleibt alles beim alten. Aber oben stand ja auf "...+Vcc legen..." . Freut mich, dass ich nicht alleine dastehe mit meiner Meinung, dass das in der Mehrzahl der Fälle garnicht geht. (Was der Versuch ja auch eindeutig zeigt.) (Ausnahmen bestätigen die Regel.) ciao gustav P.S.: "Meine" Widerstände nach GND bleiben drin. Das geht. Wert auf 47 k erhöht.
:
Bearbeitet durch User
Karl B. schrieb: > keine Angst, bleibt alles beim alten. OK..... und Sorry für die Freundlichkeit (warst leider schneller), hab ech'n miesen Tag. Sorry noch mal, so bin ich normal nich.
Teo D. schrieb: > Karl B. schrieb: >> keine Angst, bleibt alles beim alten. > > OK..... und Sorry für die Freundlichkeit (warst leider schneller), hab > ech'n miesen Tag. > > Sorry noch mal, so bin ich normal nich. Hi, bei uns ist alles eingefroren...da kommt so etwas schon mal vor. OK. Als Dankeschön für die Bestätigung noch einmal ein Update, das auch die Portbeschränkung beim ATtiny2313/4313 bei Port D berücksichtigt. PortB brauche ich ja für den AC. Bis bald. ciao gustav
Teo D. schrieb: > Las die scheiß unbenutzten offen! An meinem Übungsaufbau, Arduino Uno mit LCD, sind die vier Leitungen offen, da gab es zu keiner Zeit ein Problem mit. Das ist aber kein Wackel-Kasper-Steckbrett-Gespiele, sondern auf Lochrasterplatte sauber gelötet.
Manfred schrieb: > Das ist aber kein > Wackel-Kasper-Steckbrett-Gespiele, sondern auf Lochrasterplatte sauber > gelötet. KA mit was er da die Verbindungen stöpselt, Probleme gibts da aber eher sehr selten. Was wird den eigentlich befürchtet, wenn die Kontakte offen bleiben. Statische Aufladung, Floating,...?
Teo D. schrieb: > Was wird den eigentlich befürchtet, wenn die Kontakte offen bleiben. > Statische Aufladung, Floating,...? Hi, habe die Spannung an den vier unteren Ports mit 2,7 Kiloohm-Widerständen gegen GND (0V) angeschlossenen mit 0,22V (bei 4,92 V +Vcc) gemessen. Die Gesamt-Stromerhöhung beträgt also ca. 400 Mikroampere gegenüber unbeschalteten Kontakten. Bei Batteriebetrieb könnte ich mir denken, wäre das ein Argument, auf die unnötige Stromverschwendung zu verzichten, indem man die vier Widerstände wegläßt. Warum beharre ich nun meinerseits hartnäckig auf der Montage dieser vier Widerstände?: OK. Habe festgestellt, dass es sogar unter Umständen parasitäre Schwingungen bis in den UKW/FM-Bereich geben kann, die eindeutig vom Display ausgehen, wenn man beim Basteln einzelne Kontakte sehr schluderig verdrahtet oder bei Berühren mit dem Finger die Netzfrequenz einkoppelt. Gerade der Enable-Eingang ist da sehr empfindlich. Wenn Ihr wollt, kann ich das per Bild und Ton demonstrieren hier. Deswegen habe ich mir es zum Grundsatz gemacht, wenn schon basteln, dann zumindest rudimentär einigermaßen die Antistatikbedingungen einzuhalten. Das heißt für mich: Vor Anlegen der Betriebsspannung alle Ein- und Ausgänge auf definiertes Potenzial. Und wenn es Bedenken gegenüber Kurzschluss gibt, eben geeignete Widerstände einsetzen. Diese ominösen Widerstände sind also eher als Vorsichtsmaßnahme beim Basteln gedacht. Wie es die eigene Erfahrung zeigt, haben sie da durchaus ihre Berechtigung, denn ich habe drei Displays geschrottet und kann es mir eigentlich nicht anders erklären, dass es eben die beschriebene Sorglosigkeit im Umgang mit empfindlichen Dingen gewesen ist. Wenn es hinterher funktioniert, das Gerät "in Serie gehen soll", kann man auf so manchen unnötigen Aufwand gerne verzichten. Manfred schrieb: > An meinem Übungsaufbau, Arduino Uno mit LCD, sind die vier Leitungen > offen, da gab es zu keiner Zeit ein Problem mit. Das ist aber kein > Wackel-Kasper-Steckbrett-Gespiele, sondern auf Lochrasterplatte sauber > gelötet. Genau. Und im Bild ist's gezeigt, wie ich meine Displays geschrottet hatte. Man kann es kaum erwarten, und dann kommt man in der Hektik auf die verrücktesten Ideen. Also bitte - so nicht. ciao gustav
:
Bearbeitet durch User
OK, verstehe. Beim Basteln könnten die ~100k(max.) wirklich wenig sein, aber warum gegen die internen PullUps arbeiten? PS: Könnte durchaus auch eine Erklärung sein, wie sich ein kleines 2x16 für 1,30€ aus China, zerschossen hat. Allerdings geh ich immer noch davon aus, das es an der schlechten Lagerung lag. lose in der Ramschkiste. :)
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.