Forum: Mikrocontroller und Digitale Elektronik LCD zerstört - durch RW?


von kennie (Gast)


Lesenswert?

Hallo zusammen,

eben habe ich ein schönes 4x20 LCD geschrottet wie es scheint... alles 
funktionierte wunderbar bis dahin; ich konnte per PIC18F4550 das Display 
beschreiben, wobei der PIC den Text per USB übertragen bekam. Dann fiel 
mir ein ganz leichter kokeliger Geruch auf... da alles klappte und ich 
keine Fehler sah machte ich weiter. Und dann auf einmal ging das 
verdammte Teil nicht mehr! Beim Einschalten erscheint es zweizeilig mit 
schwarzen Boxen, dann wird es beim Initialisieren korrekt gelöscht. Nur 
leider kommt kein Text mehr an. Hab alle Verbindungen geprüft - alles 
bestens.

Meine Theorie: Die Busy-Abfrage die vor dem Ausgeben von Control- und 
Datenbytes gestartet wird setzt RW auf High. In dem Moment schreibt der 
Controler sein Statusregister auf den Bus... wenn man nun in dem Moment 
den PIC resettet (was ich beim Testen unzählige Male gemacht hab!) setzt 
der erstmal seine Pins am LCD auf Output. Wenn da dann high auf low 
getroffen hat würde das den brenzligen Geruch und das zerstörte Display 
erklären.

Falls es wirklich so war frage ich mich: Wie kann man das verhindern, 
und wieso wird man auf diese Falle in den ganzen Tutorials & Anleitungen 
zur LCD-Ansteuerung nicht auf diese Gefahr hingewiesen? Eigentlich wäre 
das Resetten nur des Mikrocontrollers bei Benutzung des Busy-Flags ja 
absolut unzulässig weil man nicht weiß ob der uC resettet wurde während 
der LCD-Controller seine Tristate-Pins noch auf Output hatte. MAn dürfte 
doch so ein LCD dann nur über Schutzwiderstände in den Datenleitungen 
betreiben...

von Elektronics (Gast)


Lesenswert?

330 Ohm Widerstände einbauen sowas mache ich immer wenn ich mit meinem 
Board spiele

von Fabian (Gast)


Lesenswert?

Der PIC setzt seine Pins bei einem Reset auf Output?! - Ist mir neu...

von kennie (Gast)


Lesenswert?

"Der PIC setzt seine Pins bei einem Reset auf Output?! - Ist mir neu..."

Das Programm tut das! Ok vielleicht ist das der Fehler... aber das muss 
ich ja um überhaupt mit dem LCD kommunzieren zu können...

>330 Ohm Widerstände einbauen sowas mache ich immer wenn ich mit meinem
>Board spiele

Ok das klingt sinnvoll!

von Lehrmann M. (ubimbo)


Lesenswert?

kennie schrieb:
> Meine Theorie: Die Busy-Abfrage die vor dem Ausgeben von Control- und
> Datenbytes gestartet wird setzt RW auf High. In dem Moment schreibt der
> Controler sein Statusregister auf den Bus... wenn man nun in dem Moment
> den PIC resettet (was ich beim Testen unzählige Male gemacht hab!) setzt
> der erstmal seine Pins am LCD auf Output. Wenn da dann high auf low
> getroffen hat würde das den brenzligen Geruch und das zerstörte Display
> erklären.

Blödsinn, selbst wenn, das töten den Displaycontroller nicht. Das wäre 
mal was ganz was neues.

Nimm ein anderes 4x20 mit gleichem Controller und probier's mal aus. Ich 
glaube eher, dass der Fehler irgendwo in deinen Initialisierungen liegt 
...

von MaWin (Gast)


Lesenswert?

> würde das den brenzligen Geruch und das zerstörte Display
> erklären.

Nicht wirklich, CMOS-Ausgänge regeln zwischen 20 und 40mA ab,
das reicht nicht für brenzligen Geruch.

Die Ursache liegt wohl woanders.

von Thomas (kosmos)


Lesenswert?

@MaWin: Hast du dazu irgendeine Quelle? Ist das sicher, technisch 
bedingt oder kommts auf den Hersteller an?

von (prx) A. K. (prx)


Lesenswert?

MaWin schrieb:

> Nicht wirklich, CMOS-Ausgänge regeln zwischen 20 und 40mA ab,
> das reicht nicht für brenzligen Geruch.

Meinst du wirklich, dass die Treiber im LCD-Controller 20-40mA können? 
Im Datasheet vom HD44780 sind die Ausgänge mit einer Last von 40-100µA 
definiert. Ich denke, die können von 20mA nicht einmal träumen.

von (prx) A. K. (prx)


Lesenswert?

Thomas O. schrieb:

> @MaWin: Hast du dazu irgendeine Quelle? Ist das sicher, technisch
> bedingt oder kommts auf den Hersteller an?

Da brennt nichts an. Es gibt beliebig viele Leute, die aufgrund 
Unkenntnis und falschen Vorbildern die 4 unbenutzen Datenbus-Pins auf 
Masse oder VCC festzurren, und denen trotzdem beim Busy-Polling nicht 
der Chip davonfliegt, obwohl auch diese 4 Pins dann Ausgänge sind.

von (prx) A. K. (prx)


Lesenswert?

Kandidaten fürs Kokeln sind beispielsweise Tantal-Elkos und falsch 
angeschlossene Hintergrundbeleuchtungen.

von (prx) A. K. (prx)


Lesenswert?

Wenn du Sorgen wg. RW hast, dann lass es einfach weg (fest auf low) und 
warte per Delay statt Busy.

von kennie (Gast)


Lesenswert?

Ihr habt alle recht gehabt und es lag an was anderem. Gestern abend 
erschien während ich über den Sourcecode brütete auf einmal wie von 
Geisterhand -plopp!- wieder der gewünschte Text. Das kann ich mir nur so 
erklären dass das LCD mit Hintergrundbeleuchtung zuviel Strom aus dem 
Bus zieht bzw. die Versorgung nicht sauber ist und dann ein paar 
Milivolt mehr oder weniger den Unterschied machen. Naja muss ich mal 
suchen... jedenfalls danke für die Hilfe!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

kennie schrieb:
> Das kann ich mir nur so
> erklären dass das LCD mit Hintergrundbeleuchtung zuviel Strom aus dem
> Bus zieht

An den Vorwiderstand für die Hintergrundbeleuchtung hast Du sicher 
gedacht? Falls ja, fass den doch mal an.

von kennie (Gast)


Lesenswert?

Da sind 100R dran. Auch mit 1K als Vorwiderstand (Beleuchtung nur ganz 
schwach) startet das Board aber nicht; der LCD löscht dann das Busy-Flag 
nicht und der Controller wartet und wartet.

von Simon K. (simon) Benutzerseite


Lesenswert?

Dann würde ich mal einen Fehler in der Schaltung suchen. Das LCD muss 
auch ohne Beleuchtung funktionieren (außer es geht beides über den 
selben Pin, aber dann würde auch kein Vorwiderstand gebraucht werden).

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.