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
>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
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.
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
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?
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
@ 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
> > 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?
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
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.
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
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.
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.
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
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.
...warum macht Ihr eigentlich nicht einen eigenen Fred auf....?
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.
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.
@ 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
@ 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
>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
... 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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.