Forum: Mikrocontroller und Digitale Elektronik Datensalat bei RS 485


von Maik G. (maik_l)


Lesenswert?

Moin @ll,

vorweg wünsche ich allen ein entspanntes Pfingstwochenende.

Ich weiß nicht, ob ich gerade nur einen Denkfehler habe oder wo der Hase 
im Pfeffer begraben liegt.

Vorweg.
Ich betreibe einen ATMega328P/ATMega16 erfolgreich mit der UART (RS232 
ähnlich)
Daten werden auch Sauber in PicoCom dagestellt.
Da ich bei meinem nächsten Projekt jedoch nicht abschätzen kann, wieviel 
MCUs benödigt werden, will ich via RS485 in ein Netzwerk gehen.

Soweit von der Praxis und Theorie ja alles klar.
Ergo
Testschaltung mit einem SN 75176 ausgerüstet und diesen

*https://www.reichelt.de/raspberry-pi-usb-rs485-schnittstelle-ch340c-rpi-usb-rs485-p242783.html?&nbc=1&trstct=lsbght_sldr::368554* 
als umsetzer verwendet.

Im Ergebnis erhalte ich jedoch nur folgenden Datensalat:
1
-#
2
                                                                        5'#������������y��{535/'y�
3
                  5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
4
                         5'#������������y�35/'y�5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
5
                                                       5'#������������y��{535/'y�
6
 5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
7
        5'#������������y�{535/'y�
8
                                 5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
9
                                        5'#������������y��{535/'y�5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
10
                                                                         5'#������������y�{535/'y�
11
                  5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
12
                         5'#������������y�{535/'y�5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
13
                                                         5'#������������y�{535/'y�
14
  5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
15
         5'#������������y�35/'y�5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5������������}�뿿��u-#
16
                                       5'#������������y��{535/'y�
17
                                                                 5���Q=)5U�����������������W#AY=�����������}75�75�{%^U����+뿿��}''5�������������

Selbiger Output auf der RS232 ebene liefert mir meine Testdaten, welche 
ich ausgeben lasse.
1
Befehlstätze:
2
WakeUp:             $
3
Trans_Start:        <
4
Adresse des µCU:    
5
    Alle:           A
6
    Einzeln:        5

Als Randinfo.
Terminal = Picocom v3.1

Settings:
1
picocom --b 19200 /dev/ttyUSB0
2
picocom v3.1
3
4
port is        : /dev/ttyUSB0
5
flowcontrol    : none
6
baudrate is    : 19200
7
parity is      : none
8
databits are   : 8
9
stopbits are   : 1
10
escape is      : C-a
11
local echo is  : no
12
noinit is      : no
13
noreset is     : no
14
hangup is      : no
15
nolock is      : no
16
send_cmd is    : sz -vv
17
receive_cmd is : rz -vv -E
18
imap is        : 
19
omap is        : 
20
emap is        : crcrlf,delbs,
21
logfile is     : none
22
initstring     : none
23
exit_after is  : not set
24
exit is        : no

Was ich mir ggf noch gut vorstellen könnte, hoffe aber nicht, das es 
genau dies ist.
Das von dem Umsetzer zum TestPort der GND fehlt.
Die Leitungslänge beträgt unter 10cm.

Für jene, welche es interessiert.
Hier auch der Code für meine UART inkl RS485_Control (Nur Ansteuerung)
1
{$ifdef RS485}
2
procedure RS_Control(Value: Boolean);
3
begin
4
  DDRB                       := DDRB or (1 shl RS_485_IO);
5
  if Value then
6
    // True = Data Send
7
    PORTB                    := PORTB or (1 shl RS_485_IO)
8
  else
9
    // False = Data Read
10
    PORTB                    := PORTB or (0 shl RS_485_IO);
11
end;
12
13
{$endif}
14
15
procedure UARTInit(_U2X: boolean);
16
// _U2X -> True = einfache Baudrate
17
//         False = Doppelte Baudrate
18
begin
19
  {$ifdef M16p}
20
    if _U2X then begin
21
      UBRRL                  := (F_CPU div (16 * Baud)) - 1;
22
      UBRRH                  := 0;
23
      UCSRA                  := UCSRA or (1 shl U2X);
24
    end else begin
25
        UBRRL                := (F_CPU div ( 8 * Baud)) - 1;
26
        UBRRH                := 0;
27
        UCSRA                := UCSRA or (0 shl U2X);
28
        end;
29
    UCSRB                    := (1 shl TXEN) or (1 shl RXEN);
30
    UCSRC                    := (1 shl URSEL) or (%011 shl UCSZ);
31
  {$else ifdef M328p}
32
    if _U2X then begin
33
      UBRR0L                 := (F_CPU div (16 * Baud)) - 1;
34
      UBRR0H                 := 0;
35
      UCSR0A                 := UCSR0A or (1 shl U2X0);
36
    end else begin
37
        UBRR0L               := (F_CPU div ( 8 * Baud)) - 1;
38
        UBRR0H               := 0;
39
        UCSR0A               := UCSR0A or (0 shl U2X0);
40
        end;
41
    UCSR0B                   := UCSR0B or (1 shl TXEN0) or (1 shl RXEN0) or     // Empfangen und Senden
42
                                          (1 shl RXCIE0);                       // RX Interrupt aktivieren
43
    UCSR0C                   := UCSR0C or (%011 shl UCSZ0)                      // 8 - Bit übertragung, 1 Stop-Bits
44
  {$endif}
45
end;

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Maik G. schrieb:
> Im Ergebnis erhalte ich jedoch nur folgenden Datensalat
Was zeigt die Messung mit dem Oszilloskop an? Brauchbare Pegel? Stetige 
Flanken? Passendes Timing?

Oder versuchst du tatsächlich, einen seriellen (und zudem 
bidirektionalen) Bus ohne Oszi in Betrieb zu nehmen? Falls ja: das wird 
üblicherweise eine vogelwilde Ratestunde.

> Das von dem Umsetzer zum TestPort der GND fehlt.
> Die Leitungslänge beträgt unter 10cm.
Die Leitungslänge ist in erster Näherung irrelevant. Nur die 
Potentialverhältnisse interessieren. Und für definierte Potentiale muss 
auch beim RS485 die Masse aller Teilnehmer verbunden sein.

: Bearbeitet durch Moderator
von Harry L. (mysth)


Lesenswert?

Daten invertiert?

von N. M. (mani)


Lesenswert?

Einfachste Idee: A und B vertauscht?

von S. L. (sldt)


Lesenswert?

> PORTB                    := PORTB or (0 shl RS_485_IO);

Soll dies Pin RS_485_IO auf Null setzen?

: Bearbeitet durch User
von Klaus S. (kseege)


Lesenswert?

Lothar M. schrieb:
> Und für definierte Potentiale muss
> auch beim RS485 die Masse aller Teilnehmer verbunden sein.

Und zwei Bias-Widerstände sowie mindestens ein Abschlußwiderstand 
verbaut sein. Es soll Intelligenzler geben, die das nicht auf dem Schirm 
haben.

Gruß Klaus (der soundsovielte)

von Maik G. (maik_l)


Lesenswert?

Lothar M. schrieb:
> Was zeigt die Messung mit dem Oszilloskop an? Brauchbare Pegel? Stetige
> Flanken? Passendes Timing?
Da muß ich leider zu meiner Schande gerade mal passen, da mein Mini-Oszi 
das Zeitliche gesegnet hat.

Lothar M. schrieb:
> auch beim RS485 die Masse aller Teilnehmer verbunden sein.

Da werd ich wohl einen anderen USB-RS485-Umsetzers suchen müssen, da 
meiner nur A und B als Output hat.

Harry L. schrieb:
> Daten invertiert?
???
Damit erwischst du mich gerade auf den Falschen FUß, Aber NEIN.

N. M. schrieb:
> Einfachste Idee: A und B vertauscht?
Dies kann ich glücklicherweise ausschießen

S. L. schrieb:
>> PORTB                    := PORTB or (0 shl RS_485_IO);
>
> Soll dies Pin RS_485_IO auf Null setzen?

Ja, dies ist unter FreePascal der Grundsyntax, falls dies deine Frage im 
Kontext sein sollte.

Klaus S. schrieb:
> Und zwei Bias-Widerstände sowie mindestens ein Abschlußwiderstand
> verbaut sein. Es soll Intelligenzler geben, die das nicht auf dem Schirm
> haben.
Der Umsetzer aus dem Link hat zumindest diese, aber ich hab vorsorglich 
noch mal welche Spendiert.

Nach Reduzierung der Baudrate auf 9600 konnte ich erst mal den 
Datensalat um 90% reduzieren.
Nochmal 0K120 suchen und schauen, wie es dann ausschaut.

Auch die SUART werd ich nochmal testen, Vielleicht kann ich damit den 
RS485 sparen.

von Rahul D. (rahul)


Lesenswert?

Maik G. schrieb:
> Ja, dies ist unter FreePascal der Grundsyntax, falls dies deine Frage im
> Kontext sein sollte.

Dann verschiebe bitte mal eine logische 0 und verordere sie mit 
irgendwas (auf Papier)!
Und guck dir das Ergbenis an!
Das sind Grundlagen der Programmierung von Digitaltechnik...

von S. L. (sldt)


Angehängte Dateien:

Lesenswert?

> Ja, dies ist unter FreePascal der Grundsyntax, falls dies
> deine Frage im Kontext sein sollte.

"Die Syntax war dem Sterben nah ..." - auch unter Pascal ist Ihre 
Antwort wohl nicht richtig.

PS:
... was nichts mit der Syntax zu tun hat.

Aber ein Gedicht, an diesem Pfingstmontagmorgen ...

PPS:
Und falls sich jemand für KLENs Vorlage interessiert:
https://www.signaturen-magazin.de/christian-morgenstern--die-luft.html

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Maik G. schrieb:
> S. L. schrieb:
>>> PORTB  := PORTB or (0 shl RS_485_IO);
>> Soll dies Pin RS_485_IO auf Null setzen?
> Ja, dies ist unter FreePascal der Grundsyntax
Ich meine, dass ein verodern mit 0 unabhängig von der 
Programmiersprache genau gar nichts bewirken sollte.

> werd ich wohl einen anderen USB-RS485-Umsetzers suchen müssen, da
> meiner nur A und B als Output hat.
Ja, diese Mistdinger musst du aufmachen und den GND extra anlöten. Denn 
auch wenn manche den RS485 auch ohne GND irgendwie zum Laufen bekommen: 
prinzipiell braucht der den GND, denn die Einzelsignale A und B sind auf 
GND bezogen. Lediglich die zu übertragende Information steckt in der 
Differenz zwischen A und B.

: Bearbeitet durch Moderator
von Nicht Joachim B. (roehrmond)


Lesenswert?

Diese "Mistdinger" gehen davon aus, dass die betroffenen Geräte geerdet 
sind.

von Dieter S. (ds1)


Lesenswert?

Lothar M. schrieb:
>
> Ich meine, dass ein verodern mit 0 unabhängig von der
> Programmiersprache genau gar nichts bewirken sollte.

Das ist wohl auch in FreePascal so, zumindest wenn man es richtig macht:

https://wiki.freepascal.org/AVR_Embedded_Tutorial_-_Simple_GPIO_on_and_off_output/de

Und wie zu erwarten wird ein Pin so auf 0 gesetzt:
1
PORTx := PORTx and not (1 shl Pinx);

von Michael B. (laberkopp)


Lesenswert?

Maik G. schrieb:
>>> PORTB                    := PORTB or (0 shl RS_485_IO);
>>
>> Soll dies Pin RS_485_IO auf Null setzen?
>
> Ja, dies ist unter FreePascal der Grundsyntax, falls dies deine Frage im
> Kontext sein sollte.

Oje.

Ja, Masse muss verbunden sein, damit die Pegel auf den Leitungen im 
Toleranzbereich liegen.

Es muss nicht die perfekte Masse sein, Spannungsabfall auf Grund 
Leitungslänge ist also erlaubt, auch Sender und Empfänger jeweils mit 
Masse an PE Schutzleiter ist ausreichend um sich das dritte Kabel sparen 
zu können.

Maik G. schrieb:
> Da werd ich wohl einen anderen USB-RS485-Umsetzers suchen müssen, da
> meiner nur A und B als Output hat.

Auch dein Chip bzw. Board hat GND.

von Ludger (ludger_m)


Lesenswert?

den PE als Signal-Gnd zu verwenden ist das dümmste was man machen kann :
PE ist PE. Signal-Gnd ist Signal-Gnd.

ich durfte jährlich eine Handvoll Treiber wechseln, weil der Server und 
die Terminals GND mäßig auf PE lagen.
War RS422, aber das ist ja das Gleiche.

Ludger

von Εrnst B. (ernst)


Lesenswert?

Ludger schrieb:
> den PE als Signal-Gnd zu verwenden ist das dümmste was man machen kann

+1.

Hilft halt nix, wenn man so einen 1,50€ RS485-USB-Stöpsel von Aliexpress 
hat der nur A+B rausführt, und Signal-GND indirekt über USB->PC-Netzteil 
auf PE liegen hat...

Die andere Seite hat dann am Ende ein Steckernetzteil ohne PE, mit 
Signal-GND schön auf 120V Wechselspannung... Gut, die sind nicht 
Belastbar, die Bias-Widerstände ziehen das schon passend zurecht...

Funktionieren tut vieles was außerhalb der Spec ist, aber wenn's dann 
klemmt hat man viel Spaß mit der Fehlersuche...
Klassiker: Mit Oszi dran klappt es plötzlich. Ja. Das stellt nochmal 
eine GND-PE Verbindung her.

von Anselm 6. (anselm68)


Lesenswert?

RS485 ist ein Differenzieller Bus ohne GND Bezug.
Du brauchst nur A/B

Reichelt hat den MAX485 im DIL-Gehäuse
Denke daran dass RS485 kein Bidirektionaler Bus ist, du musst immer 
Rx/Tx umschalten (!RE/DE verbinden und dann mit einem Portpin toggeln).

Anselm

von Nicht Joachim B. (roehrmond)


Angehängte Dateien:

Lesenswert?

Anselm 6. schrieb:
> RS485 ist ein Differenzieller Bus ohne GND Bezug.

Nein.

Guck mal ins Datenblatt vom SN75176 (alle anderen IC sind diesbezüglich 
ähnlich). Wenn du die "Absolute Maximum Ratings" verlässt, geht das IC 
kaputt.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Anselm 6. schrieb:
> RS485 ist ein Differenzieller Bus ohne GND Bezug.
> Du brauchst nur A/B
Das ist leider nur die Theorie. Die Praxis sieht so aus, dass jeder 
Empfänger und jeder Sender sein Datenblatt auf seinen GND bezieht. Und 
deshalb muss man natürlich den GND mit verbinden. Nur Hasardeure tun das 
nicht.

> dass RS485 kein Bidirektionaler Bus ist
Doch, natürlich, und genau deshalb muss man die Richtung umschalten. 
Nur bei einem unidirektionalen (RS232, RS422, SPI) oder einem passiven 
Bus (I2C oder CAN) muss man die Richtung nicht umschalten.

Was du eigentlich meinst, nennt sich Full- bzw. Halfduplex.
Und da ist RS232 Fullduplex (beide Teilnehmer können gleichzeitig in 
beide Richtungen übertragen) und RS458 Halfduplex (nur 1 Teilnehmer darf 
senden).

Bitte keine halbgaren Halbwahrheiten verbreiten. Einfach mal lesen, was 
die Hersteller in ihren Appnotes zu dem Thema so schreiben. Und wie die 
Schaltpläne und Spezifikationen in den Datenblättern aussehen.

Dort haben wir das mal wieder (zum wiederholten Mal) ausgekaspert:
- Beitrag "Re: Datenübertragung über >100m"

Und speziell dort habe ich die chinesischen USB-RS485-Wandler noch 
angesprochen:
- Beitrag "Re: Datenübertragung über >100m"

: Bearbeitet durch Moderator
von Rahul D. (rahul)


Lesenswert?

Lothar M. schrieb:
> Doch, natürlich, und genau deshalb muss man die Richtung umschalten.
> Nur bei einem unidirektionalen (RS232, RS422, SPI) oder einem passiven
> Bus (I2C oder CAN) muss man die Richtung nicht umschalten.

Jein,  RS485 gibt es als Halb- und Vollduplex-Bus.
Die Vollduplex-Version hat aber vier Datenleitung und nur einen Master; 
der Balbduplex-Bus ist mulitmasterfähig und braucht nur zwei Leitungen.
Den Vollduplexbus habe ich aber noch nie in Betrieb gesehen.

Anselm 6. schrieb:
> RS485 ist ein Differenzieller Bus ohne GND Bezug.
> Du brauchst nur A/B

Das kommt wohl aus der (professionellen, analogen) Audio-Technik, wo 
asymetrische Signale in symmetrische mit Hilfe von Audioübertragern 
gewandelt werden.
Da braucht man man GND nicht unbedingt, weil es dadurch auch zu 
Brummschleifen kommen kann. Umgekehrt kann man die Signale auch so 
umwandeln.

von Hmmm (hmmm)


Lesenswert?

Anselm 6. schrieb:
> Rx/Tx umschalten (!RE/DE verbinden und dann mit einem Portpin toggeln).

Wenn man es so macht, unbedingt an den Pullup für RXD denken. Bei 
abgeschaltetem Empfänger ist der Ausgang hochohmig, und man will keinen 
floatenden RXD-Pin.

Zum Rest hat Lothar ja schon etwas gesagt.

von Harald K. (kirnbichler)


Lesenswert?

Rahul D. schrieb:
> Jein,  RS485 gibt es als Halb- und Vollduplex-Bus.
> Die Vollduplex-Version hat aber vier Datenleitung und nur einen Master;

Die heißt dann aber nicht RS485, sondern RS422.

von Rainer W. (rawi)


Lesenswert?

Anselm 6. schrieb:
> RS485 ist ein Differenzieller Bus ohne GND Bezug.
> Du brauchst nur A/B

Nein, du musst zusätzlich sicher stellen, dass A und B innerhalb des 
zulässigen Bereichs liegen.
Beim MAX485 ist unter Absolute Maximum Ratings z.B. nachzulesen:
"Receiver Input Voltage (A, B).......-8V to +12.5V"

Alleine schon, damit diese Spannung überhaupt definiert ist, ist ein 
Gnd-Bezug zwischen Sender und Empfänger erforderlich, den man besser 
nicht dem Zufall überlässt.

von Rahul D. (rahul)


Lesenswert?

Harald K. schrieb:
> Rahul D. schrieb:
>> Jein,  RS485 gibt es als Halb- und Vollduplex-Bus.
>> Die Vollduplex-Version hat aber vier Datenleitung und nur einen Master;
>
> Die heißt dann aber nicht RS485, sondern RS422.

Nein, RS422 ist symmetrisches RS232: Für jede Richtung ein Leitungspaar.
Vollduplex RS485 hat einen Master, der von allen Slaves empfangen wird. 
De Antwort erfolgt auf einem weiteren Leiterpaar, das an den Ausgängen 
aller Slaves hängt:
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019M21SAE&l=ja-JP

Dieser Bus ist extrem selten.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rahul D. schrieb:

> Nein, RS422 ist symmetrisches RS232: Für jede Richtung ein Leitungspaar.
> Vollduplex RS485 hat einen Master, der von allen Slaves empfangen wird.
> De Antwort erfolgt auf einem weiteren Leiterpaar, das an den Ausgängen
> aller Slaves hängt

Unsinn.

Was du da beschreibst, IST RS422. Signalmäßig (pro Richtung) identisch 
mit RS485. Der Unterschied halt einzig, dass es für die Richtung 
Slave->Master ein zusätzliches Leitungspaar gibt und damit die 
Richtungsumschaltung für das eine Leitungspaar von RS485 für alle Peers 
am Bus entfallen kann.

> https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019M21SAE&l=ja-JP
>
> Dieser Bus ist extrem selten.

Was da steht, beschreibt auch nur RS422. Wenn auch stark verkürzt. sieht 
irgendwie nicht nach einem Standard aus, sondern nach einer Art 
Gedächtnisstütze für unfähige Programmierer. Und zwar nach einer sehr 
schlecht geschriebenen. Dagegen sind ja sogar die Standards wirklich gut 
verständlich. Du solltest die Quellen für deine eigene Aufschlauung 
weiser wählen...

von Rahul D. (rahul)


Lesenswert?

Ob S. schrieb:
> Du solltest die Quellen für deine eigene Aufschlauung
> weiser wählen...

Wozu? Wenn das Bild schon alles aussagt?

RS422:
https://de.wikipedia.org/wiki/EIA-422
Nur zwei "Peers" (Nix multimasaterfähig).

RS485-2-Wire: Mehrere gleichberechtigtigte "Peers" / Master.
RS485-4-Wire: Ein Master, viele Slaves.
https://de.wikipedia.org/wiki/EIA-485

RS422 hat doch gar nicht die Möglichkeit eines Busses, da die Ausgänge 
der Transceiver nicht hochohmig schaltbar sind.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rahul D. schrieb:
> Vollduplex RS485 hat einen Master, der von allen Slaves empfangen wird.
> De Antwort erfolgt auf einem weiteren Leiterpaar, das an den Ausgängen
> aller Slaves hängt
Ist das eine Art "Zweidrittelduplex" oder 
"Einundfünzighundertstelduplex"? Denn bei 100 Teilnehmern kann ja auch 
nur jeweils 1 der Teilnehmer auf jeweils 1 der 2 RS485-Adrenpaare 
senden. Also ist es garantiert nicht Vollduplex im Sinne von "jeder kann 
jederzeit an den anderen was senden".

> https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019M21SAE&l=ja-JP
Das, was da im Bild 
https://knowledge.ni.com/servlet/rtaImage?eid=ka03q0000012koN&feoid=00N0Z00000HEWRt&refid=0EM3q0000030QRj 
zu sehen ist, sind im Grunde 2 Interfaces:
1. oben: vom Master zu den Slaves besteht eine RS422 Multidrop 
Verbindung.
2. unten: der Rückweg von den Slaves zum Master ist ein üblicher *RS485 
Bus*.

> Dieser Bus ist extrem selten.
Ja, sieht wie eine kundesspezifische Fehlgeburt oder ein Workaround für 
ein spezielles Problem aus.

: Bearbeitet durch Moderator
von Rahul D. (rahul)


Lesenswert?

Lothar M. schrieb:
> Ist das eine Art "Zweidrittelduplex" oder
> "Einundfünzighundertstelduplex"? Denn bei 100 Teilnehmern kann ja auch
> nur jeweils 1 der Teilnehmer auf jeweils 1 der 2 RS485-Adrenpaare
> senden. Also ist es garantiert nicht Vollduplex im Sinne von "jeder kann
> jederzeit an den anderen was senden".

Vollduplex im Sinne, dass Master und Slave gleichzeitig senden können.

Langsam bereue ich, dass ich das Thema angeschnitten habe.
Bei den vielen Besserwisser hier...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rahul D. schrieb:
> Vollduplex im Sinne, dass Master und Slave gleichzeitig senden können.
... ein Slave ...

Der Witz ist eben, dass es ein "Master" und "Slave" beim RS485 
eigentlich nicht gibt:
- https://de.wikipedia.org/wiki/EIA-485

Das "Master-Slave-Konzept" ist erst dann nötig, wenn Software ins Spiel 
kommt und mehrere Teilnehmer auf den Bus zugreifen wollen. Und auch dann 
muss es beim RS485 keinen "Master" im Sinne von "das hier ist die 
Baugruppe, die den Zugriff auf den Bus regelt" geben. Es kann z.B. auch 
ein Token-basierter Bus sein. Dann ist immer das Gerät der "Master", das 
gerade den Token hat.

> Langsam bereue ich, dass ich das Thema angeschnitten habe.
Richtig, diese "Nebendiskussion" ist für das Problem des TO eigentlich 
nicht relevant. Aber der scheint sowieso anderweitig beschäftigt zu 
sein.

> Bei den vielen Besserwisser hier...
Ach geh, so dünnhäutig?

: Bearbeitet durch Moderator
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.