Forum: Mikrocontroller und Digitale Elektronik LCD --> klappt nur bei DB7 anfassen


von Marius B. (majus)


Lesenswert?

Hallo zusammen!

Ich habe eine Frage betreffend einem 16*2 LCD (TC1602A-08 von Pollin). 
Das Display wird mit einem PIC angesteuert.

Allerdings klappt das ganze nur, wenn ich den Pin DB7 berühre.
Berühre ich den Pin mit einem Schraubenzieher, geht es nicht. Berühre 
ich selber jedoch auch noch den Schraubenzieher, geht es wieder.
Berühre ich den Pin mit einem Tastkopf, geht es (auch wenn GND von 
Tastkopf nicht angeschlossen ist). Berühre ich den Pin direkt mit dem 
Finger geht es. Klemme ich eine Krokodilklemme mit einem etwa 20cm 
langen Kabel an den Pin, geht es wieder.

Komischer Fehler, weiß einer Rat? Ich bin mit meinem Latein am Ende...

Gruß
Marius

PS: An einem Wackelkontakt kann es nicht liegen. Ich kann den Pin sowohl 
auf dem LCD als auch am PIC selber anfassen, und es geht.

von Benedikt K. (benedikt)


Lesenswert?

Timingproblem?

von Manuel (Gast)


Lesenswert?

genügend Blockkondensatoren am PIC?

von Benedikt K. (benedikt)


Lesenswert?

Hast du das LCD mittlerweile zum Laufen bekommen?
Falls nein: Häng mal einen Pulldown von etwa 10k an RW und an E (auch 
wenn es noch so unsinnig klingt).

von Michael U. (amiga)


Lesenswert?

Hallo,

laß mich raten: Deine Software nutzt die Abfrage des Busy-Bits?
Da ds ja auf Bit 7 des Displays liegt, passiert wohl Folgendes:

Das Timing zur Abfrage von Busy stimmt nicht, so daß Du durch Deine 
Aktionen mit Störimpulsen dafür sorgst, daß die Routine die Busy 
scheinbar richtig erkennt und weiter macht...

Gruß aus Berlin
Michael

von Marius B. (majus)


Lesenswert?

Hallo, erstmal danke für die Tipps.

Ich habe durch Ausprobieren herausgefunden, das wenn ich einen 10k 
Pulldown zwischen DB7 und GND schalte, alles funktioniert.
Warum? Ich bin absolut ahnungslos!

Blockkondensatoren sind genügend vorhanden.

Die Software ist komplett in ASM geschrieben. Allerdings nicht von mir, 
sondern von einem Komilitonen.

Das ganze Ding ist ein Projekt für die Uni, ich werde also mal meinen 
Prof fragen, was er dazu sagt.
Es ist ja relativ schwer sowas über das Internet zu debuggen.
Ich lasse es euch auf jedenfall wissen, wenn ich weis warum es ohne den 
Widerstand bzw. das Anfassen nicht klappt.

Wenn ich ein anderes (natürlich auch HD44780 kompatibles) LCD anhänge, 
funktioniert alles tadellos. Timingprobleme die nur bei diesem Display 
auftreten, könnten also gut der Fehler sein. (Ja ich benutze das 
Busy-Bit)

Gruß,
Majus

von Benedikt K. (benedikt)


Lesenswert?

Ich habe die Feiertage genutzt um meine LCD Lib mal an verschiedenen 
Controllern zu testen und das TC1602 war das einzige das nicht lief. 
Daher konnte ich einen Softwarefehler bei mir ausschließen (mit der 
Software, bzw. älteren Versionen davon laufen mittlerweile an die 100 
LCDs).

Interessanterweise brachte ich das LCD dann genauso zum Laufen wie du: 
Finger auf den Anschluss: LCD läuft.
Das ganze sowohl mit als auch ohne Busyabfrage per RW. Und jetzt kommts: 
RW hängt direkt am µC über 1k an GND, um auch die Software ohne RW 
Testen zu können. Trotzdem funktioniert das ganze bei mir nur, wenn ich 
RW über entweder wenige kOhm am LCD an GND hänge, oder alternativ den 
Pin kapazitiv belaste (entweder mit einem Tastkopf, der 10M hat, oder 
eben mit dem Finger).
Also genau das gleiche Verhalten wie bei dir.

Ich vermute der Controller auf diesem LCD (vermutlich ein SPLC780A1) ist 
etwas empfindlich.

von Marius B. (majus)


Lesenswert?

Wow,
das ist ja ein Zufall.
Vielen Dank für die Erklärung. Dann glaube ich doch wieder an 
Naturgesetze.

Eine kapazitive Beeinflussung hatte ich auch als erste Vermutung. Ein 
10nF Kondensator von DB7 nach GND brachte aber damals keine 
Verbesserung...

Die Erklärung reicht mir aber auf jedenfall. Da kann ich wieder beruhigt 
schlafen. Wenn mans weis, ist das ja nicht weiter schlimm.

Gruß,
Marius

von Benedikt K. (benedikt)


Lesenswert?

Marius B. wrote:

> Eine kapazitive Beeinflussung hatte ich auch als erste Vermutung. Ein
> 10nF Kondensator von DB7 nach GND brachte aber damals keine
> Verbesserung...

10nF ist vermutlich etwas zuviel. Irgendwas im 10 oder 100pF Bereich 
sollte besser sein, und das kommt auch einem Finger, oder eben einem 
Tastkopf, einem längeren Kabel oder ähnliches näher.

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.