Forum: Mikrocontroller und Digitale Elektronik RS485 Fragen


von Philippe B. (philippe27)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

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

von Chris (Gast)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Matthias Sch. schrieb:
> Alternativ könntest du ja auch 4 Bustreiber ansteuern

Ich dumm, ich meinte natürlich 10 Bustreiber.

von Spess53 (Gast)


Lesenswert?

Hi

Immer wieder hilfreich:

http://www.ti.com/litv/pdf/snla049a

MfG Spess

von Philippe B. (philippe27)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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...

von (prx) A. K. (prx)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von i-Troll (Gast)


Lesenswert?

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

von Tom P. (booner)


Lesenswert?

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
Noch kein Account? Hier anmelden.