Hallo Ich hab übers Forum und über Google bereits gesucht, aber alle Fragen konnten nicht beantwortet werden. Als Master dient ein Atmega 1284p der bis zu 10 Slaves ansteuert. Baud Rate soll 19200bit/s sein. Die längste Leitung ist 10m, die anderen zwischen 2m und 5m. Leider hab ich nur 4 Adern zur Verfügung (+, -, RX, TX) und kann deshalb den Bus nicht durchschleifen. Frage: 1. Wie bzw. wo sollte der Abschlusswiderstand sitzen? Eigentlich am letzten Teilnehmer, da aber alles Sternförmig verkabelt ist geht es ja nicht so ganz. Ebenfalls kann der 10m Teilnehmer beliebig sein. Soll heissen, alle Teilnehmer sind frei steckbar. 2. Die Leitungen sind nicht verdrillt. Sollte das bereit auf dieser Länge Probleme geben? Danke für eure Antworten Gruss Philippe
Philippe B. schrieb: > 1. Wie bzw. wo sollte der Abschlusswiderstand sitzen? Eigentlich am > letzten Teilnehmer, da aber alles Sternförmig verkabelt ist geht es ja > nicht so ganz. > Ebenfalls kann der 10m Teilnehmer beliebig sein. Soll heissen, alle > Teilnehmer sind frei steckbar. Dann geh einen Kompromiss ein. Mach in jeden Teilnehmer einen Abschlusswiderstand, aber so, das sie alle zusammen (parallel) ungefähr den richtigen Wert ergeben. Bei 19200 Baud ist das noch nicht so tragisch. Philippe B. schrieb: > 2. Die Leitungen sind nicht verdrillt. Sollte das bereit auf dieser > Länge Probleme geben? Das hängt davon ab, was auf den Nachbarleitungen + und - passiert. Die symmetrische Übertragung von RS485 ist eigentlich recht robust, es sollten allerdings trotzdem keine Spitzen auf den Versorungsleitungen liegen. Wenn also jeder Teilnehmer die Spannung sauber entkoppelt, sollte das bei deiner relativ niedrigen Baudrate klappen. Philippe B. schrieb: > Als Master dient ein Atmega 1284p der bis zu 10 Slaves ansteuert. Gib ihm aber einen richtigen Bustreiber zur Seite, der guten kräftigen Pegel erzeugt. Alternativ könntest du ja auch 4 Bustreiber ansteuern, und jeden wie einen eigenen RS485 Bus behandeln. Dann hast du auch das Problem der Abschlusswiderstände nicht mehr.
Mein Vorschlag: Vergiss RS485, nimm RS232. Eine 10m-Punkt-zu-Punkt-Verbindung sollte mit RS232 kein Problem sein. Du hast dann eben 10 dieser Punkt-zu-Punkt-Verbindungen, jede mit ihrem eigenen Bustreiber. Mit zwei 10:1 Multiplexer zwischen AVR und den RS232-Treibern schaltest Du zwischen den einzelnen Slaves um. Diese dürfen dann nur senden, wenn sie gefragt werden, aber das solltest Du leicht hinbekommen. Da Du jetzt 10 getrennte Punkt-zu-Punkt-Verbindungen hast, brauchst Du auch keine Abschlusswiderstände, und die einzelnen Verbindungen beeinflussen sich gegenseitig nicht. fchk
Du solltest nach rs485 stub gurgeln. Der Abschlusswiderstand muss beim Master sowie beim Ende des Stubs sein. Stub = 30-60cm Leitung an dem alle anderen Rs485 Verbindungen abgehen. Kein Slave sollte einen Abschlusswiderstand haben. Abgesehen davon, bei der langsamen Geschwindigkeit und den kleinen Kabellängen braucht es keinen Abschlusswiderstand. Genau ausrechnen kannst es hier: http://www.baranidesign.com/rs485/rs485.html
Matthias Sch. schrieb: > Alternativ könntest du ja auch 4 Bustreiber ansteuern Ich dumm, ich meinte natürlich 10 Bustreiber.
Hallo Schon mal herzlichen Dank für eure Antworten. Also kurz noch weiteres zur Hardware. - Als Bustreiber wird ein MAX483 eingesetzt. - Im Master sitzen die PullUp Widerstände mit je 2,7kOhm - Im Master ist ebenfalls ein Abschlusswiderstand geplant. - Auf den zwei Adern zur Spannungsversorgung fliessen maximal 200mA bei 12V. - Im Master sowie in allen Slaves sind zur Stabilisierung Elkos und Kerkos geplant. Ebenfalls eine Drossel als Filter. Starke Stromschwankungen sollten nicht auftreten, da jeder Slave nur ein mC und ein paar Leds als Statusanzeige erhalten. Ein LC- Display und ein paar Transistoren sind dann alles. Relais, Triac und Endgeräte die zu schalten wären, werden über eine andere Spanungsquelle lokal aus dem Slave gespeisst. @Matthias Ich könnte demnach doch anstelle jedem Slave einen Abschlusswiderstand zu geben, einfach nur der im Master einsetzten. Angenommen ich würde 10x 1200 Ohm total im RS485 Netz haben, wären wir ja bei 120 Ohm gesamt Widerstand. Doch jetzt wären plötzlich nur noch 2x 1200 Ohm im Netz vorhanden, also haben wir einen gesamt Widerstand von 600 Ohm. Das wäre dann ja ausserhalb der Spek's, oder? @Frank Nein, es soll schon RS485 bleiben. Falls später doch noch Erweitert werden sollte, muss da nicht gross etwas gemacht werden. @Spess Das PDF liegt bereits bei mir:-) Gruss Philippe
Philippe B. schrieb: > Angenommen ich würde 10x 1200 Ohm total im RS485 Netz haben, wären wir > ja bei 120 Ohm gesamt Widerstand. Doch jetzt wären plötzlich nur noch 2x > 1200 Ohm im Netz vorhanden, also haben wir einen gesamt Widerstand von > 600 Ohm. > Das wäre dann ja ausserhalb der Spek's, oder? Ist natürlich richtig - aber RS485 ist ein recht gutmütiger Bus und bei den kurzen Kabeln, der geringen Baudrate und der symmetrischen Übertragung wird das einfach gehen, und zwar vermutlich auch sehr gut. Wenn du einigermassen gutes Kabel benutzt (vor allem wg. der 200mA) dann gibts da keine Probleme. Die DMX Jungs schicken über dutzende von Metern Signale mit 250kBaud, teilweise über eigentlich ungeeignete Mikrofonkabel...
Gibt es eigentlich RS485 Transceiver mit gezielt geringer bzw. einstellbarer Flankensteilheit? Immerhin ist die zulässige Länge von Stubs direkt davon abhängig. Die Signale werden bei einer Kraut-und-Rüben Topologie weniger klingeln, wenn die Flankensteilheit passend zur niedrigen Bitrate reduziert wird. Bei CAN-Transceivern besteht ja oft die Möglichkeit, die Steilheit zu steuern.
A. K. schrieb: > Gibt es eigentlich RS485 Transceiver mit gezielt geringer bzw. > einstellbarer Flankensteilheit? Ich hab so etwas noch nicht gesehen - Flankensteilheit verringern wäre ja mit RC Gliedern recht einfach hinzukriegen, würde dann allerdings beim Empfang den Pegel verringern, könnte aber natürlich die Störsicherheit gerade gegen kurze Spitzen als Nebeneffekt verringern. Aber bei MAX485 und Konsorten ist dafür nichts vorgesehen.
Natuerlich gibt es Treiber mit reduzierter Flanke. Das druckt sich dann in der Bandbreite aus. Es gibt treiber, die zind gut bis 250kBit, andere machen 10MBit, oder 25MBit
Hei, der MAX483 (und der 488) sind eh schon solche Treiber, die weniger steile Flanken haben um EMI und Reflektionen zu mindern. Grüße, Tom
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.