Forum: Mikrocontroller und Digitale Elektronik UART-Verbindung über 20 Meter ohne Treiberbaustein


von Danilo (Gast)


Lesenswert?

Hallo,

kann ich eigentlich zwei AVR-uC ohne zusätzlichen Treiber über die 
UART-Schnittstelle über ca. 20 Meter verbinden?

Die uC sollen mit nur 1000 bps kommunizieren. Sind die Treiber (MAX232 
oder MAX485) zwingend notwendig oder sollte der 5 VDC-Ausgang der UART 
ausreichen für eine sichere Kommunikation?

Danilo

von Helmut L. (helmi1)


Lesenswert?

>Die uC sollen mit nur 1000 bps kommunizieren. Sind die Treiber (MAX232
>oder MAX485) zwingend notwendig oder sollte der 5 VDC-Ausgang der UART
>ausreichen für eine sichere Kommunikation?

TTL Signale ueber 20m Kabel schicken ohne Leitungsabschluesse geht 
meistens in die Hose. Stichwort: Reflexionen

Auch ist der Eingang des ICs dann nicht gegen EMV Einfluesse geschuetzt. 
Die Treiber dagegen schuetzen auch deinen uC Eingang .

Gruss Helmi

von (prx) A. K. (prx)


Lesenswert?

Wobei bedingt durch die Art des Transfers und der Taktung eine 
asynchrone Kommunikation bei niedriger Bitrate mit Reflexionen u.U. 
leben kann. Und man Reflexionen mit einfacher Serienterminierung weg 
kriegt. Zu empfehlen ist es dennoch nicht, kommt zuviel Schrott rein und 
jedes Gewitter ist schon in gewisser Entfernung ein Risiko.

RS422 4-Draht-Transceiver ist softwareseitig einfacher als RS485 
2-Draht, wenn genug Adern vorhanden sind.

von stepp64 (Gast)


Lesenswert?

Mal noch eine Frage dazu: Ich plane ebenfalls zwei µC (PICs) über eine 
Distanz von 30m zu Verbinden. Allerdings habe ich einen 
CAN-Treiberbaustein in meiner Schaltung mit eingeplant. Die Treiber 
sollen über 2-Drähte einer vorhandenen CAT6-Leitung miteinander 
verbunden werden. Parallel zu dieser Leitung liegt noch ein Stromkabel 
(max. 16A, 230V). Sollte ich trozdem noch zwischen den µC und den 
CAN-Treibern eine galvanische Trennung einplanen oder reicht es alles 
über Kupfer miteinander zu verbinden?

Gruß
Sven

von Volker Z. (vza)


Lesenswert?

Der CAN-Bus braucht drei Adern. (CAN-H CAN-L und GND), sonst giebt es 
probleme bei mehr als zwei Teilnehmern.

Eine galvaniche Trennung hilft bei Erdschleifen und Masseverschiebungen 
aber nicht gegen eingekoppelten Störungen.
Eine Split-Terminierung und ein Receiver mit erweiterten 
Gleichtacktbereich ( pluss entsprechender Schutzschaltung) reicht 
meistens aus.

Um genau Auskunft zu geben reichen deine Infos nicht.
Was hängt am Stromkabel für ein Verbraucher?
Wie werden deine PICs versorgt bzw. was hängt noch den PICs 
(Masseverbindungen) ?
Welche Bitrate möchtest du erreichen?

Hat CAT6 120 Ohm Wellenwiederstand?

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Also da will ich dach mal versuchen deine Fragen zu beantworten indem 
ich noch ein paar mehr Informationen über mein Projekt gebe. Eins 
vorweg: es ist eine rein private Anwendung die ich wohl nur einmal für 
mich bauen werde.

Auf meinem Grundstück steht ca. 25m vom Haus entfernt ein kleiner 
Schuppen in dem sich meine Bastelwerkstatt befindet. Dieser Schuppen 
wird über besagtes Kabel mit Strom versorgt. Daran angeschlossen sind 
Licht, Werkzeuge und ein 2kW Heizer. Alles zusammen abgesichert über 16A 
plus FI. Das Kabel liegt 80cm tief in der Erde und ist zusätzlich durch 
ein Rohr geschützt. In diesem Rohr befinden sich zusätzlich 2 CAT6 
Kabel. Eins für LAN+Telefon und eins für mein Projekt. Bitte keine 
Kommentare, dass man das nicht macht. Ich weiß, dass man Strom und Daten 
nicht zusammen in ein Rohr packt. Allerdings habe ich beim Giesen der 
Bodenplatte nur dieses eine Rohr mit vorgesehen und musste notgedrungen 
alle Kabel da durch ziehen.

Die Schaltungen werden durch ein 16V Laptopnetzteil über dieses CAT6 
Kabel versorgt (je drei Adern für Plus und GND). In der Schaltung ist 
ein Schaltregler LM2574N5 welcher die Schaltung und den PIC mit 5V 
versorgt. Am PIC hängen drei Relais, drei LEDs und ein LCD. Die Schalung 
verbraucht, wenn alles eingeschaltet ist, ca. 300mA. An dem Bus sollen 
später einmal max. 8 solcher Schaltungen hängen.

Bitrate reicht mit eigentlich 9600bit/s, da ich nur alle paar Sekunden 
8-10 Bytes übertragen will. Zu dem Wellenwiderstand kann ich nichts 
sagen. Im iNet steht, dass CAT6 Kabel einen solchen Widerstand von ~100 
Ohm haben. Könnte es da zu Problemen kommen? Das Kabel kann ich aber 
nicht mehr tauschen. Auch bekomme ich kein zusätzliches mehr verlegt. 
Das muss also so funktionieren. Dann eher ein anderer Treiberbaustein 
(z.Bsp. RS485).

Schon mal Dank für eure Hilfe
Gruß Sven

von Falk B. (falk)


Lesenswert?

@  Sven Stefan (stepp64) Benutzerseite

>Bitrate reicht mit eigentlich 9600bit/s, da ich nur alle paar Sekunden
>8-10 Bytes übertragen will. Zu dem Wellenwiderstand kann ich nichts
>sagen. Im iNet steht, dass CAT6 Kabel einen solchen Widerstand von ~100
>Ohm haben.

Ist auch so ;-)

> Könnte es da zu Problemen kommen?

Weniger.

> Das Kabel kann ich aber nicht mehr tauschen.

Musst du nicht.

> Auch bekomme ich kein zusätzliches mehr verlegt.
>Das muss also so funktionieren. Dann eher ein anderer Treiberbaustein
>(z.Bsp. RS485).

DAS musst du mal sicher, wenn du dein Glück nicht überstrapazieren 
willst.

MFG
Falk

von Sven S. (stepp64) Benutzerseite


Lesenswert?

>
> DAS musst du mal sicher, wenn du dein Glück nicht überstrapazieren
> willst.
>
> MFG
> Falk
Diesen Satz versteh ich nicht. Meinst du ich muss eines der Kabel 
tauschen oder sollte ich auf RS485 wechseln?

von Falk B. (falk)


Lesenswert?

Du solltest auf RS485 wechseln.

MfG
Falk

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hm. Genau dass hatte ich in meiner ersten Planung drin. Dann hatte ich 
hier ein wenig herum gelesen und irgendwie kamen immer die Empfehlungen 
auf CAN zu wechseln, weil es da einfacher wäre, Buskollisionen zu 
erkennen. Was mich zu der Frage bringt, was nun besser ist für meinen 
Fall. Im Moment kann ich das noch ändern. Es gibt nur einen Prototyp und 
mit der Programmierung des UART habe ich noch nicht angefangen. Wäre 
also der richtige Zeitpunkt mich festzulegen, zumal ich die Platine eh 
noch einmal ändern muss.

Sven

von H.Joachim S. (crazyhorse)


Lesenswert?

wenn du eine Punkt-zu-Punkt-Verbindung hast, bist du mit RS485 völlig 
schmerzfrei bedient. Der Riesenvorteil vom CAN (Multimaster mit 
automatischer Arbitrierung) würde bei dir eh nicht zur Geltung kommen.

von Reinhard Kern (Gast)


Lesenswert?

Danilo schrieb:
> Hallo,
>
> kann ich eigentlich zwei AVR-uC ohne zusätzlichen Treiber über die
> UART-Schnittstelle über ca. 20 Meter verbinden?
>
> Die uC sollen mit nur 1000 bps kommunizieren. Sind die Treiber (MAX232
> oder MAX485) zwingend notwendig oder sollte der 5 VDC-Ausgang der UART
> ausreichen für eine sichere Kommunikation?
>
> Danilo

Hallo,

dafür reicht die Spannung durchaus - aber die Controller-Eingänge sind 
dann allen Umwelteinflüssen schutzlos ausgesetzt, eine statische 
Entladung zerstört den Controller selbst. Treiberbausteine sind i.A. 
viel robuster, weil sie ja für externe Leitungen ausgelegt sind.

Gruss Reinhard

von Danilo (Gast)


Lesenswert?

Danke für die Hinweise. Ich werd wohl nun doch Treiber einsetzen. Ich 
dachte nur, daß es ohne Treiber möglich wäre - OneWire macht ja auch 
nichts anderes. Da kann man auch -zig Meter überbrücken ohne Treiber und 
nur mit 5k-Pullup-Widerstand.

von (prx) A. K. (prx)


Lesenswert?

Allerdings hätte auch 1-Wire bei grösserer Distanz gerne einen Treiber 
mit kontrollierter Flankensteilheit, sonst hagelt es auch da 
Reflexionen. Wobei 1-Wire wie UART damit leidlich leben kann, da der 
Zeitraum direkt nach der einleitenden Flanke keine Information enthält.

Je länger die Leitung desto grösser ist die Antennenwirkung. Und wenn du 
Pech hast, dann hast du zwischen den beiden Kollegen eine gewisse 
Potentialdifferenz, die den Störabstand reduziert (Spannungsdifferenz 
zwischen den beiden GNDs, 1-Wire Sensoren hingegen sind meist 
massefrei). Also wenn du das partout ohne Treiber machen willst, dann 
sorg immerhin für eine ordentliche Übertragungskontrolle mit CRC.

von Sven S. (stepp64) Benutzerseite


Lesenswert?

H.joachim Seifert schrieb:
> wenn du eine Punkt-zu-Punkt-Verbindung hast, bist du mit RS485 völlig
> schmerzfrei bedient. Der Riesenvorteil vom CAN (Multimaster mit
> automatischer Arbitrierung) würde bei dir eh nicht zur Geltung kommen.
Im Endausbau werden aber 5-6 solcher Schaltungen an diesem Bus hängen. 
Ungefähr so:

R- S1 --3m-- S2 --3m-- S3 ------25m------ S3 ---10m--- S4 --3m-- S5 -R

R:  Abschlußwiderstand 120 Ohm
Sx: meine Schaltung
m:  Anzahl Meter bis zur nächsten Schaltung

Vermutlich werden alle Schaltungen sowohl Sender, als auch Empfänger 
sein können. Da bin ich mir aber noch nicht ganz im klaren. S3 stellt 
eine Art Zentrale dar, welche Befehle an die anderen Schaltungen sendet 
und dann sollen die anderen Schaltungen entsprechend antworten. 
Allerdings werden die Schaltungen auch von sich aus bei bestimmten 
Ereignissen an die Zentrale Daten senden. Ist also wohl schon ein 
Multimasterbetrieb (oder versteh ich da etwas falsch?). Von der Seite 
her hat mir dann CAN doch besser gefallen.

Gruß
Sven

von (prx) A. K. (prx)


Lesenswert?

Sven Stefan schrieb:

> Allerdings werden die Schaltungen auch von sich aus bei bestimmten
> Ereignissen an die Zentrale Daten senden. Ist also wohl schon ein
> Multimasterbetrieb (oder versteh ich da etwas falsch?).

Korrekt.

> Von der Seite her hat mir dann CAN doch besser gefallen.

Unbedingt. Ersetzt viel Software und etliche grauen Haare durch ein 
bischen zusätzliche Hardware.

RS485 ist seit der Verfügbarkeit einfacher günstiger CAN Controller 
eigentlich nur noch bei Single-Master wirklich sinnvoll, also hier mit 
Polling durch die Zentrale.

von Danilo (Gast)


Lesenswert?

...warum macht Ihr eigentlich nicht einen eigenen Fred auf....?

von Gast (Gast)


Lesenswert?

Vielleicht verstehe ich ja die Problematik nicht oder habe etwas getan, 
was in der Theorie nicht funktionieren kann, in der Praxis aber bisher 
tadellos seinen Dienst tut. :-)

Ich habe zwei Atmega 32 per UART verbunden ... allerdings geht der 
Informationsaustausch dabei nur in eine Richtung. Also µC1 Tx an µC2 Rx 
und gemeinsame GND (also zwei Adern). Das funktioniert bei 300m und 9600 
Baud noch problemlos. Im Empfaenger laeuft eine kleine 
Plausibilitaetspruefung und die empfangenen Pakete werden auf einem LCD 
ausgegeben. Mag also sein, dass evtl. Pakete verworfen werden wegen 
Fehlern .. das habe ich nie kontrolliert. ;)

Aber da die Daten kontinuierlich gesendet werden, scheinen ausreichend 
schnell korrekte Daten anzukommen. Die angezeigten Werte am Empfaenger 
waren noch nie falsch. Alles ohne Treiberbausteine.

von (prx) A. K. (prx)


Lesenswert?

Gast schrieb:

> Vielleicht verstehe ich ja die Problematik nicht oder habe etwas getan,
> was in der Theorie nicht funktionieren kann, in der Praxis aber bisher
> tadellos seinen Dienst tut. :-)

Wie ich hier schon geschrieben hatte kann das durchaus funkionieren.

Allerdings kannst du dir bei 300m Distanz bös was einfangen und ich 
hätte bei jedem Gewitter Angst um die Controller.

von Falk B. (falk)


Lesenswert?

@  Sven Stefan (stepp64) Benutzerseite

>eine Art Zentrale dar, welche Befehle an die anderen Schaltungen sendet
>und dann sollen die anderen Schaltungen entsprechend antworten.
>Allerdings werden die Schaltungen auch von sich aus bei bestimmten
>Ereignissen an die Zentrale Daten senden. Ist also wohl schon ein
>Multimasterbetrieb (oder versteh ich da etwas falsch?).

Ja, das wäre Multimasterbetrieb. Man sollte sich aber GENAU überlegen, 
ob man das WIRKLICH braucht. Ist nämlich deutlich aufwändiger als Single 
Master.

> Von der Seite
>her hat mir dann CAN doch besser gefallen.

Ist eben fix und fertig un den unteren Schichten. Man muss sich nur um 
die Anwendung kümmern.

MFG
Falk

von Falk B. (falk)


Lesenswert?

@  Gast (Gast)

>was in der Theorie nicht funktionieren kann, in der Praxis aber bisher
>tadellos seinen Dienst tut. :-)

Im Einzelfall vielleicht, allgemein keineswegs.

>und gemeinsame GND (also zwei Adern). Das funktioniert bei 300m und 9600
>Baud noch problemlos. Im Empfaenger laeuft eine kleine

Kinder und Betrunkene haben einen Schutzengel.

MFG
Falk

von Z8 (Gast)


Lesenswert?

>und gemeinsame GND (also zwei Adern). Das funktioniert bei 300m und 9600
>Baud noch problemlos. Im Empfaenger laeuft eine kleine

das geht bestimmt im Garten oder auf dem Land, aber niemals in
einer Fabrik mit PCs, Laser.-, CNC- und anderen Maschinen! Z8

von Gast (Gast)


Lesenswert?

... eieiei ;-)

Um es mal etwas zu revidieren : Fuer mich funktioniert das Ganze 
ausreichend schnell und genau. Es mag wohl nicht die Methode sein, bei 
der man mit Sicherheit sagen kann, dass sie in jedem Falle zuverlaessig 
funktioniert. Soweit ok? :-)

Und ja, es ist eine Loesung auf dem freien Land und nicht innerhalb 
einer Fabrik. Weiterhin ist es eine Bastelloesung und ich koennte damit 
leben, wenn es nicht funktioniert. Genau dann wuerde ich Geld fuer 
Treiberbausteine investieren. :-)
Meine Anmerkung sollte ja nur verdeutlichen, dass es nicht generell 
unmoeglich zu sein scheint.

Da ich weder zu der Gruppierung der Kinder noch zu den Betrunkenen 
gehoere, bekomme ich den Schutzengel ja leider nicht garantiert. Ich 
wuerde mich mal zu der Gruppe der Unwissenden zaehlen und bin sicherlich 
nicht abgeneigt, dazuzulernen. Dann aber bitte nicht nur mit 
Kommentaren, die fuer Leute, die der formalen Logik nicht maechtig sind, 
evtl. abwertend erscheinen wuerden .. auch wenn sie es formallogisch 
nicht waren.

Was genau faengt man sich den bei einer solchen Distanz 'boese ein'?
Und warum sollte ich bei jedem Gewitter Angst um die Controller haben? 
Es wird ja kaum so sein, dass ein MAX232 mich vor einem Gewitter 
schuetzen wird? ;)
Geht es da um die (fehlende) Terminierung?

von (prx) A. K. (prx)


Lesenswert?

Gast schrieb:

> Was genau faengt man sich den bei einer solchen Distanz 'boese ein'?

Weil, wie schon beschrieben, mit der Länge die Antennenwirkung steigt. 
Die Wahrscheinlichkeit einer soliden Potentialdifferenz auch.

> Und warum sollte ich bei jedem Gewitter Angst um die Controller haben?

Weil schon ein Blitz in einiger Entfernung geeignet ist, dir durch in 
die Leitung induzierte Spannung die Controller abzuschiessen.

> Es wird ja kaum so sein, dass ein MAX232 mich vor einem Gewitter
> schuetzen wird? ;)

Nicht wenn er direkt reinhaut. Aber der MAXe steckt deutlich mehr weg 
als der Controller.

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.