RS-485 erweitern

Gast #952461
Lesenswert?

Wie ich bisher weiss ist ein 485-BUS mit normalen RS485 
Transceiverbausteinen (MAX485 oder SN75176) auf 32 Teilnehmer 
beschränkt.
Es gibt natürlich auch 1/2, 1/4 oder und 1/8 Unit Load Bausteine.
Aber die normalen mit 12 KOhm Eingangswiderstand sind unschlagbar 
günstig.
Ich möchte gerne zwei solcher 485-Busse (Halfduplex) miteinander 
koppeln.
So das ich auf 64 Teilnehmer komme.
Ein Master kommuniziert mit den zweiten.
Wie kann ich dies einfach realisieren? (Ich möchte keine neue 485 
Bausteine nehmen)
Siehe Anhang.
Thx.
Angehängte Dateien:
Gast #952483
Lesenswert?

Ist der 2. Master wieder ein vollwertiger Master oder ist der nur aus 
RS485-Sicht ein 2. Master ? Ich unterstelle mal einfach letzteres, und 
würde dann vorschlagen einen kleinen RS485 Repeater (z.B. AVR mit 2 UART 
und 2x SN75176) zu basteln. Die kann man dann gegebenenfalls noch weiter 
Kaskadieren, so dass noch mehr Teilnehmer möglich sind.
Gast #952515
Lesenswert?

Zweitere Lösung hört sich sehr gut an. "Repeater" Mit zwei Treibern.
Gäbe es vielleicht ein Beispiel zu der Realisierung mit 2 UART´s
und den 2x SN75176?

Ich könnte vom 1.Master den 2.Master ansprechen und damit dann z.B. 
Teilnehmer "50" abfragen und "52" stellen?

Ich habe leider noch keine gute Schaltung für einen 485 Repeater 
(Halbduplex) gefunden.
Gast #952723
Lesenswert?

Vielen Dank für den Schaltungstipp!
Bei 4800 Baud müsste R1, R2 = doch 475kOhm sein?
Müssen andere Monoflops sein?
Wie funktioniert die Syncro. der Daten?
Ich nehme an das Senden/Empfangen damit problemlos funktioniert.
Nochmals thx.
#952737
Lesenswert?

@ Ben (Gast)

>Bei 4800 Baud müsste R1, R2 = doch 475kOhm sein?

Ich komme auf 687K bei C1=C2=10nF.

>Müssen andere Monoflops sein?

Nein.

>Wie funktioniert die Syncro. der Daten?

Ganz einfach. Sobal ein Startbit ankommt(fallende Flanke) wird das 
zugehörige Monoflop getriggert. Daraufhin wird der Treiber der anderen 
Stufe aktiviert und gleichzeitig das andere Monoflop gesperrt (über Q 
negiert).

>Ich nehme an das Senden/Empfangen damit problemlos funktioniert.

Hoffe ich mal. Man muss nur nach jedem Datenpaket ca. 2 Bytezeiten 
warten, damit der Repeater wieder umschalten kann.

MFg
Falk
Gast #952760
Lesenswert?

Verstehe ich die Rechnung nicht richtig?

10nF x 330kOhm = entsprichen -- 33000 bps (33*t_Bit)
Für 4800 bps folglich:
33000 bps / 4800 bps = 6,875 ( Reduzierungsfaktor )
also 330kOhm / 6,875 = 48KOhm
#952878
Lesenswert?

@Ben (Gast)

>Verstehe ich die Rechnung nicht richtig?

Nein.

>10nF x 330kOhm = entsprichen -- 33000 bps (33*t_Bit)

Falsch.

>Für 4800 bps folglich:
>33000 bps / 4800 bps = 6,875 ( Reduzierungsfaktor )
>also 330kOhm / 6,875 = 48KOhm

Mit der Prozentrechnung hast du's nicht so, oder?

Anstatt "clever" mit "Reduzierungsfaktor" zu rechnen, rechne mal DIREKT.

MFG
Falk

P.S. UNd nun zur Übung. Auf welche Baudrate ist die Schaltung 
dimensioniet?

P.P.S. In der Schaltung ist noch ein Fehler. Die Q negiert Ausgänge 
müssen an das Reset, und die B Eingänge auf Vcc.
Gast #953798
Lesenswert?

Danke für Deine Mühe und die Erläuterung des t_Bit = Bit pro t.
Die Formel ist jetzt für verständlich geschrieben.
Die Schaltungsdimensionierung ist für 4800Baud. -- Falls ich 9600Baud 
benötige.. eine Runde Sache ... mit den Reduzierungsfaktor...

Ich habe mal Deine Schaltungsveränderungen kurz eingezeichnet.
Ob diese so richtig sind?

Viele Grüsse
Ben
#953818
Lesenswert?

@ Ben (Gast)

>Die Schaltungsdimensionierung ist für 4800Baud.

AUA! Für 4800 hab ich vorgerechnet, und es kommen NICHT 330k raus. 
OHJEMINE!

DIE GND-Verbindung der C ist laut Datenblatt zu Verringerung der 
Störungen. Als R reichen 680k, sooo genau muss das nciht sein, zum der C 
sicher 5..10% Toleranz hat. Die Idee dabei ist einfach, dass ca. 1,5 
Zeichen = 15 Bit lang der Sender garantiert aktiv bleibt. Dann kommt 
entweder ein neues zeichen oder die Übertragung ist beendet.

MFG
Falk
Gast #971283
Lesenswert?

RS485.. Du musst meldungsbasiert die Richtung der Transceiver 
umschalten. Dh es muss fuer alle Teilnehmer immer klar sein, wann sie 
denn drankommen. Dh die Meldung entahelt eine Adressierung und die 
Knoten haben Adressen. Entweder sind nun alle Meldungen gleich lang, 
oder die Meldungen muessen die Laenge beinhalten. Das bedeutet, die 
Meldung enthaelt eine Adressierung, sowie moeglichwerweise eine Laenge. 
Standard ist auch ein Header, sowie ein CRC. Optional kann man 
Synchronisationsbytes einfuegen, die helfen, falls mal ein byte verloren 
geht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren