Hi zusammmen. Ich nutze einen ATmega128 und habe ein 4x20 Zeichen LCD daran angeschlossen. Die Strecke zwischen LCD und µC beträgt ca 2.5m und nix klappt, ohne das lange Kabel gehts wunderbar. Problem: das LCD muss über min 1m angeschlossen werden. Ich kann mir zwei Sachen vorstellen, die das Problem verursachen: 1. Einstreuungen sind zu groß 2. Der Atmel kriegt über die Strecke nicht den nötigen Strom geliefert. (Beides aber bloße Vermutungen) Hat jemand einen Tipp, wie ich dieses Problem mit möglichst wenig Aufwand gelößt bekomme? OPs, Transistor?? Vielen dank Brain
2,5m sind etwas grenzwertig, aber mit sauberer Leitungs (siehe Wellenwiderstand) könnte es funktionieren. Wobei das Display nur schreibend betrieben werden sollte, also mit hinreichend langer Wartezeit statt Abfrage vom Busy-Bit, damit die Datenleitungen nicht bidirektional arbeiten müssen.
@ Andreas Kaiser (a-k) >2,5m sind etwas grenzwertig, aber mit sauberer Leitungs (siehe >Wellenwiderstand) könnte es funktionieren. Wobei ich dabei zwecks Richtig. Dabei ist nur ein Signal wirklich kritisch. E. Das muss über eine verdrillte Leitung (E und Masse) geführt werden. Serienterminierung ist auch dringend nötig, siehe Artikel Wellenwiderstand. Der Rest ist recht unkritisch, sollte aber nicht vollkommen liebelos verkabelt werden. MfG Falk
Obwohl nur E wirklich kritisch ist, würde alle vorsorglich lieber alle Signale terminieren. So ein LCD braucht wenig Strom und es muss nicht sein, dass die Überschwinger die Schutzdioden übermässig strapazieren.
KAGGE! Ich merke gerade, dass ich da in ganz neu Spähren vorstoße... Also: 1. mit E meint ihr das Enable Singal? 2. von sauberer Kabelführung kann man wohl nicht reden. Ich lasse ca 50cm über Flachbandkabel laufen, dann kommt ein 25pol SubD, 1,8m Druckerkabel, 25pol SubD, Flachbandkabel. 3. muss ich also einen Wiederstand in Reihe mit der Signalleitung schalten? - Müssen also nur D0..D3 bzw. D0..D7 terminiert werden? Kann mir jemand sagen, wie groß der R sein muss? Danke für die schnellen Antworten..
Zu 1: Ja. Zu 2: Bleib lieber bei einem Kabeltyp, ein Stecker dazwischen ist hier nicht unbedingt ein Problem, aber verdrillte Leitungen im Rundkabel für die eine Hälfte und Flachbandkabel für die andere schon. Flachbandkabel ohne verdrilltes E kann auch gehen, wenn beide Nachbaradern Masse führen und es nicht zusammengerollt oder gefaltet wird, wenngleich es etwas empfindlicher gegenüber Störungen von aussen sein kann. Zu 3: Widerstand in Reihe bei allen Leitungen (also E,RS,D4,D5,D6,D7), auf der Seite des Controllers. Und da die LCDs 4-bittig arbeiten können, solltest du das auch tun, um den Kabelaufwand zu reduzieren. Dann werden D0-3 auf der Seite des LCD garnicht erst angeschlossen.
Was die Widerstände angeht: Das hängt vom Kabel ab. Im Wiki steht bei Flachbandkabel 150 Ohm, diesen Wert habe ich auch schon gelegentlich gehört, andererseits findet man beim googeln und im Datasheet von Reichelt eher Angaben um 105 Ohm herum. Also: Von der Kabelimpedanz 25 Ohm weg für den Innenwiderstand des Mega128 und du hast den Wert für die Serienwiderstände. Auf ein paar Ohm rauf oder runter kommt es dabei nicht an. Wenn du beim Kabel keine Ahnung hast: probier mal 100 Ohm und schau was dabei rauskommt. Wird so arg falsch nicht liegen.
Deine "Spezial"-Verkabelung wird wohl Schuld sein. Bei so vielen Steckverbindern kann man auch mal zwei Anschlüsse vertauschen. Hast mal durchgepiepst? Das sollte der erste Schritt sein. Wenn das nicht hilft, dann würd ich das Kabelgewülst komplett entfernen und EINE Leitung sauber verlegen. Wie oben schon geschrieben die Enable-Leitung mit der Masse verdrillen. Sollte das nicht helfen, kannst ja noch die Widerstände einsetzen. Die Übertragungsgeschwindigkeit zum LCD ist ja nicht besonders groß. Wie lange lässt du das Enable-Bit aktiv? Möglicherweise, musst du es ein paar Takte länger auf high setzen.
Hi danke für die vielen Anregungen. Ich werde morgen mal ein paar Versuche starten.
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.