Forum: Mikrocontroller und Digitale Elektronik Kabellänge AVR -> LCD


von armin (Gast)


Lesenswert?

Hallo,

ich muß ca 1m zwischen Sensor und AVR überbrücken und dann nochmal ca 
1,5 - 2m vom AVR zum LCD.
Alternativ würde auch 2m vom Sensor zum AVR/LCD gehen.

Bekomme ich da Probleme, wenn ich das LCD direkt an einen Port des AVR 
hänge?
Der Sensor soll Rechteckimpulse liefern. Sind dort die 1M Kabel ein 
Problem?

Vielen Dank im Voraus.

MfG
Armin

von Hubert G. (hubertg)


Lesenswert?

Das ist nur eine Frage der Geschwindigkeit der Datenübertragung und 
Qualität des Kabels. Welche Frequenz haben die Rechteckimpulse vom 
Sensor.

von armin (Gast)


Lesenswert?

maximal 150 impulse pro sekunde
in der regel aber eher um die 10


kabel stehen noch nicht fest, werden also je nach benötigter qualität 
erst angeschafft. hatte bis jetzt abgeschirmte steuerleitung geplant, 
wie man sie bei reichelt und co bekommt.

die entfernung zum lcd ist kein problem? hatte angst, das über die 2m 
die qualität des signals nicht mehr reicht oder ich mich um 
signalauferbeitung oder so kümmern muss. Ist das unbegründet?

von Michael U. (amiga)


Lesenswert?

Hallo,

LCD ist sicher ein Problem. Ob ein AVR sowas treibt (auch außerhalb 
aller Spezifikationen...) würde ich vermutlich testet. Kritisch könnten 
die Flanken von E sein, da haben die Display-Hersteller so ihre Wünsche. 
Ansonsten eben nach jedem Pegelwechsel ein paar NOP um die versauten 
Flanken zu kompensieren. Prizipiell ist das Display ja sowieso recht 
lahm.

Falls es Dir oder dem AVR nicht gefällt eben zusätzliche Treiber rein, 
74xx245 auf der AVR-Seite, auf der Display-Seite dann Schmitt-Trigger 
(74xx14) davor, evtl. Widerstände als 
Leitungsanpassung/Reflexionsdämpfung.

Störungen von außen werden da evtl. auch noch mitspielen, würde ich 
vermutlich aber auch testen.

Alles unter der Prämisse, es ist eine Hobby-Sache und nichts daran ist 
lebenswichtig, sonst muß der Aufwand wohl höher sein.

Gruß aus Berlin
Michael

von armin (Gast)


Lesenswert?

Hi, Danke für euer Antworten.
ja klar ist reine Hobby-Sache.
Werde es einfach mal Testen, ob ich ohne Verstärkung auskommen.
Das ganze soll an einem Motorrad arbeiten, Strörungen gibt es also 
Garantiert. Würdet ihr mir zu speziellem abgeschirmten Datenleitungen 
raten, oder tut es evt auch ein altes Netzwerkkabel? Hab auch schon 
daran gedacht, ein Kabel für die Datenleitungen zu nehmen, und ein 
weiteres für die Spannung, dann würden die Leitungen des Netzwerkkabels 
auch reichen.
Oder gibt es evt. andere billige Alternativen die man Zuhause hat / im 
Baummarkt bekommt?

von Michael U. (amiga)


Lesenswert?

Hallo

Netzwerkkabel ist so schlecht nicht, Spannung extra hat den Vorteil, daß 
da nicht auch noch Müll in die Daten koppelt.

Gruß aus Berlin
Michael

von Armin (Gast)


Lesenswert?

ich habe Heute mal einen ersten Test unternommen und das LCD im Haus 
aber mit 2,5m Twisted-Pair-Kabel verbunden. Als ich das (alte, laut 
Aufdruck cat5) Kabel zerlegt hab, hab ich gemerkt, das keine Abschirmung 
vorhanden ist, sonder nur die 8 verdrillten Leitungen zu 4*2 Leitungen.
Hab die 4 Datenleitungen + E + RS über das Netzwerkkabel und Masse und 
Spannung über ein weiteres Kabel verbunden.

Hab jetzt verschiede Werte versucht darzustellen und mir ist aufgefallen 
das oft das t zu einem w wird. Das ganze tritt aber nicht dynamisch an 
unterschiedlichen Stellen oder Zeiten auf, sonder immer an der selben 
Stelle (wenn es auftitt). Äussere Einflüsse hab ich versucht durch ein 
230V Netzteilkabel zu simulieren, aber das stört die Übertragung nicht.
Da die Störungen mir vorallem beim t aufgefallen sind, hab ich in der 
ascii-Tabelle geschaut, und wenn das t zum w wird, müssen zwei Bits 
kippen, auch wundert mich das ich wenn immer nur das w erhalte und nicht 
ein anderes Zeichen.
Ich kann auf die Störungen bis jetzt keinerleit Einfluss nehmen, daher 
Tippe ich auch ein timing-Problem. Hab bis jetzt nur versucht zusätliche 
nop's beim Flankenwechsel von E einzufügen, aber das hat nichts 
gebracht, nur das bei zuvielen das Display gar nichts mehr anzeigt.

Habt ihr einen Tipp was ich probieren und ändern könnte?

von Andreas K. (a-k)


Lesenswert?

Serienwiderstand 100 Ohm an die Ausgänge zum Display, mindestens an E. 
Das sollte die Signalqualität deutlich verbessern.

von Peter D. (peda)


Lesenswert?

Ich würde dem Display nen eigenen MC spendieren und dann die Baudrate 
solange runtersetzen, bis es störungsfrei klappt.

Z.B.:

Beitrag "LCD über nur einen IO-Pin ansteuern"


Peter

von Gast (Gast)


Lesenswert?

>Serienwiderstand 100 Ohm an die Ausgänge zum Display, mindestens an E.
>Das sollte die Signalqualität deutlich verbessern.

Einmal das und in der Ausgaberoutine mit vielen NOPs die Geschwindigkeit 
drosseln.

von armin (Gast)


Lesenswert?

@ Andreas Kaiser: ok werde ich versuchen,
das mache ich um Störimpulse < ca 0,5V ganz rauszufiltern?
also wenn ich mich grad nicht verechnet hab, nimmt der widerstand 0,5V 
was einem Signal E von 5V nicht stört aber das Signal sauberer macht?
Bin noch ganz frisch in dem Bereich der Elektronik, daher nimm mir die 
Frage bitte nicht übel, möchte den Sinn aber gerne verstehen.. :)

@ Peter Dannegger: werde ich mir auch mal durchlesen. Auch wenn ich 
hoffe das ich irgendwie ohne weiteren Controller auskomme..

@ Gast: was sind denn die relevaten Stellen? also den Flankenwechsel von 
E hab ich ja schon mit nops erweitert, nur das bringt leider nicht. 
entweder der fehler tritt genauso auf, oder er das display zeigt gar 
nichts mehr.
Soll ich noch welche beim übertragen der Zeichen einfügen?

von Andreas K. (a-k)


Lesenswert?

armin wrote:

> das mache ich um Störimpulse < ca 0,5V ganz rauszufiltern?

Nö. Das machst du, um keine zu erzeugen: Wellenwiderstand.

von Michael U. (amiga)


Lesenswert?

Hallo,

>also den Flankenwechsel von
>E hab ich ja schon mit nops erweitert, nur das bringt leider nicht.
>entweder der fehler tritt genauso auf, oder er das display zeigt gar
>nichts mehr.
>Soll ich noch welche beim übertragen der Zeichen einfügen?

Das garnichts mehr angezeigt wird scheint mir auf ein Problem im Ablauf 
hinzudeuten.
Eigentlich können die Wartezeiten beliebig groß sein, kritisch ist nur 
die Anstiegs/Abfallzeit von E mit max. 25ns (beim HD44780, sonst 
passendes Datenblatt befragen!). Alle anderen nötigen Zeiten haben 
keinen Maximalwert.

E evtl. also mit 2 Gattern 74xx14 aufbessern (2 wegen Inverter im 
74xx14).
Der HD44780 übernimmt mit der fallenden Flanke von E die Daten (nicht 
eindeutig im Datenblatt!) bzw. startet die interne Operation.

Ich nehme immer folgenden Ablauf:
RS setzen/löschen

Daten anlegen

E L/H
..     Mindestlänge mit NOPs
E H/L
       hier evtl. NOPs um die Haltezeit der Daten zu verlängern
nächste Daten anlegen

Gruß aus Berlin
Michael

von armin (Gast)


Lesenswert?

@ Andreas Kaiser
viel Dank für den Link, werde ich Heute Abend versuchen umzusetzten.

@ Michael U.
ich neheme die ASM Routinen von avr-assembler.net
hab aber Gestern nur rumgespielt mit den Zeiten, also sowohl bei 
steigender- und fallender Flanke einfach nops (1-7) eingefügt.
werde Heute Abend das von dir beschriebene Vorgehen umzusetzen.
Dann werde ich auch mal ausschau noch dem richtigen Datenblatt halten, 
da beim LCD (von Pollin) nur die Pinbelegung und der kompatible HD44780 
Chipsatz genannt wurde.

von Gast (Gast)


Lesenswert?

>Daten anlegen
 auch hier sollte eine Wartzeit sein !!! 1µs oder so
>E L/H
>..     Mindestlänge mit NOPs
>E H/L

Im Datenblatt stehen wirklich max. 25ns als Anstiegszeit für E. Das 
finde ich insofern lustig, als zu Zeiten, zu denen der 44780 eingeführt 
wurde, diese "highspeed-Flanken" von den meisten µPs garnicht erreicht 
werden konnten.
Seinerzeit hatte ich ca. 5m Kabel zwischen 8051 und 44780 zu liegen. 
Hier war allerdings ein pullup Widerstand von 1k angesagt.

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.