Forum: Mikrocontroller und Digitale Elektronik LCD macht Buchstabensalat PIC16F877


von Thomas Vollmar (Gast)


Lesenswert?

Hallo,


ich mit einem PIC16F877 per 4.bit-Anateuerung ein 2x16-Display TM162A
von TIANMA an. R/W ist auf Masse, Bussy wird nicht abgefragt. Den Code
habe ich von Michael Dworkin(cc5x.de) und der von Holger Klabunde. Ich
porte ihn etwas später hierein, weil an dem Standort, wo der
Programmier-Rechner steht dank EON bis 15.00Uhr mal wieder kein Saft
ist.

Grundsätzlich funzt seit Monaten/Jahren die Geschichte prima. Menue
rauf, Menue runter alles palletti. Nun traten die ersten Probleme beim
Endkunden auf. Die Baugruppe steuert unter anderem via Relais Pumpen
an. Zunächst also trat der Effekt auf, dass mit schalten eines
Pumpen-Relais, das Display Buchstabensalat brachte. Nicht immer, aber
immer öfter. Ich habe auf Einstreuung von Störimpulsen(die Zuleitung
zur Anzeige-Platine sind Bandkabel), bzw. neg.-Spitzen in der
Betriebspannung getippt. Das Bandkabel habe ich abgeschirmt, die
Betriebspannung direkt am Display mit 2000µ, parallel 100nF
stabilisiert. Keine Nachvollziehbare Änderung. Anschließend habe die
Software dahin geändert, dass das Display nach jedem Relais-Schalten
komplett neu initialisiert wird. Dann ging es gut. Das bandkabe habe
ich absichtlich gestört, das Display heiß gemacht(98Grad), die
Baugruppe tagelang laufen lassen, das Display während des betriebes
aus- und wieder eingelötet - kein Absturz mehr.
Anschließend ging die Steuerung wieder zum Kunden ins Testlabor und
lief auch 4 bis 6 Wochen.
Jetzt aber kommt es wieder zu Buchstabensalat(ohne Relaisschalten)-
nicht immer, aber immer öfter. Ert nur einmal, dann wöchentlich, jetzte
mehrmals täglich. Nach reset(aus- und einschalten) läuft's wieder. Das
Ganze passiert aber nicht nur mit einem Exemplar, sondern mit
mehreren.

Kann mir das nicht mehr erklären.


Thomas

von Bernhard S. (bernhard)


Lesenswert?

Hallo Thomas,

das Geheimnis heißt EMV .

Das Display besitzt einen oder mehrere Controller, vermutlich wird
einer dieser durch einen externen Impuls geresetet.

Möglichkeiten der Fehlerbehebung:

- Ursache bekämpfen
- Datenleitungen, besonders ENABLE schirmen
- offene Pins des LCD auf GND bzw +5V
- alle paar Minuten das Diplay neu Initialisieren


Bernhard

von Thomas Vollmar (Gast)


Lesenswert?

Hallo Bernhard,


das mit EMV hatte ich auch gedacht, bzw. denke ich noch.
Nur:
1. hatten wir schon EMV-gettestet, auch die Störbeeinflussung.
2. hatte ich zum Test um die Bandkabel je 2 Windungen von
Motorzuleitungen gelegt. Einmal besagte Pumpe, das zweite war ein
Gleichstrommotor mit 1A Anlaufstrom.
3. Aber -und das gibt mir am meisten zu denken- Warum tritt die
Geschichte erst nach Wochen des Betriebes auf?


Die übrig gebliebenen offenen Pins betreffen die Daten-Bits0-3. Die auf
 Potential zu legen, werde ich mal ausprobieren.


Vielen Dank schon mal.


Thomas

von Thomas Vollmar (Gast)


Lesenswert?

Hallo zusammen,

mittlerweile hat jemand auf Timingprobleme gedeutet. Das habe ich
kontrolliert und festgestellt, dass jedem Zugriff mindestens 1ms Pause
folgt. Bei Inititialisierung freilich mehr.
So ganz kann es das eigentlich auch nicht sein.

Da ich nun die Fehlerursache nicht wirklich klären kann, habe ich
folgendes gemacht: Zunächst habe ich die R/W-Leitung mit (kratzen und
CuL-Strippchen ziehen) wieder aktiviert softwaremäßig und die Zugriffe
über das busy gesteuert. D.h. VOR jedem Zugriff (Schreiben und
Lesen)wird das busy abgefragt. Alle anderen Wartezeiten (außer
Initialisierung) flogen raus.
Dazu habe ich die freien Pin's(DB4-7) via PullDown-R's auf Masse
gelegt.
Um ganz sicher zu gehen, habe ich einen "Schatten-RAM" eingeführt.
Freien Speicher hatte ich noch genug. In diesen 4 Byte wird permanent
mitgeschrieben, was ans Display gesendet wird. Alle paar 100 µs oder ms
wird das Display ausgelesen., Ist dann irgendwas falsch, wird das
Display komplett neu initialisiert und neu beschrieben. Jetzt kann man
bei laufender Anzeige die Daten-Pins kurzschließen und anschließend
erholt sich das Display wieder(meistens jedenfalls).


Fällt irgendjemandem noch was ein, was helfen würde?




Thomas

von Bernhard S. (bernhard)


Lesenswert?

Hallo Thomas,

ich bin mal gespannt, ob Dein Display jetzt beim Kunden zuverlässiger
läuft, erstatte uns mal Bericht.

Bernhard

von Thomas Vollmar (Gast)


Lesenswert?

Hallo Bernhard,


Kundenanruf nach 14 Tagen: "Keine Auffälligkeiten mehr zu
beobachten."

Ich hoffe mal, dass an dieser Front nun Ruhe einkehrt.

Besten Dank für's "mitfiebern"!


Thomas

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.