www.mikrocontroller.net

Forum: Haus & Smart Home RS-485 erweitern


Autor: Ben (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel F. (df311)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie weit sind denn die zwei master voneinander entfernt?
wenns nicht zu weit ist, könntest du die master z.b. mit twi, i2c oder 
sonst einer technologie zusammenbasteln und die rs485 so belassen wie 
sie sind.

Autor: Ja mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
OK, hier nochmal die korrigierte Version, sollte jetz aber wirklich 
passen.

MFG
Falk

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ben (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja gut Du hast ja schon was gesendet. Anbei trotzdem nochmal ...

Autor: Ben (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
IC1  -- PIN 14, PIN 6 -- GND ??

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kelly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiss Jemand, wie ein Protokoll für ein RS485-Bus aussieht? Wie wird ein 
solches Protokoll gestaltet? Z.B., ein Master und acht Slaves. Könnte 
Jemand mir helfen? vielen Dank.
mfg Kelly

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Kelly (Gast)

>Weiss Jemand, wie ein Protokoll für ein RS485-Bus aussieht?

Es gibt keinen RS485 Bus. Auf RS485 gibt es viele verschiedene 
Protokolle.
Aber für den Anfang was einfaches.

DMX512.

http://www.soundlight.de/techtips/dmx512/dmx512.htm

MfG
Falk

Autor: so nicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.