mikrocontroller.net

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


Autor: Marius B. (majus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timingproblem?

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genügend Blockkondensatoren am PIC?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marius B. (majus)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marius B. (majus)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.