Forum: Mikrocontroller und Digitale Elektronik Fail-safe RS-485


von Mark U. (residuum)


Angehängte Dateien:

Lesenswert?

Hallo miteinander,

habe hier einen MAX3486 Transceiver, der wie folgt beschaltet ist:
VCC = 3,3 V
RE_=DE = 0 V
DI = 3,3 V

Zwischen A und B ist ein 120 Ohm Abschlusswiderstand angeschlossen.
A und B sind aber nicht mit dem Bus verbunden.

Laut Datenblatt würde ich jetzt an RO eine logische 1 erwarten, was ist 
sehe ist aber eine 0.

Der gleiche Aufbau mit einem MAX485 an 5V resultiert in einer 1 an RO.

Beide ICs sollen Fail-safe sein, d.h. bei offenen A-B Eingängen eine 1 
liefern. Es wurden auch schon verschiedene Exemplare des MAX3486 
getestet, sie verhielten sich alle gleich.

Das Problem ist jetzt, dass eine ausgegebene 0 vom Mikrocontroller als 
Startbit erkannt und entsprechend nicht vorhandene Daten eingelesen 
werden.

Offenbar werden die Inputs A und B nicht als offen erkannt. Ist das 
wegen des 120 Ohm Abschlusswiderstands? Natürlich könnte ich je einen 
Pull-up und Pull-down Widerstand an A und B hängen und so für einen Bias 
sorgen.

Geht das auch ohne die zusätzlichen Widerstände? Was nützt das 
Fail-safe, wenn es durch einen Abschlusswiderstand ausgehebelt wird?

Danke schon mal.

Gruß
Markus

: Bearbeitet durch User
von Mark U. (residuum)


Lesenswert?

APPLICATION NOTE 367
Explanation of Maxim RS-485 Features

Maxim's fail-safe parts are designed to prevent erroneous data in these 
conditions.

The four common faults that an RS-485 system can experience are as 
follows:

    All transmitters in a system are in shutdown.
    The receiver is not connected to the cable.
    The cable has an open.
    The cable has a short.

Damit sollte im oben beschriebenen Aufbau (idle bus) ein Fail-safe 
erkannt und eine 1 ausgegeben werden, oder?

: Bearbeitet durch User
von eagle user (Gast)


Angehängte Dateien:

Lesenswert?

120 Ohm sind wohl kaum "open", aber die Spannung ist Null. Der Zustand 
ist in deiner Tabelle nicht definiert. Das IC darf also machen, was es 
mag. Bei Empfängern, die auch bei Kurzschluss eine 1 ausgeben, sieht die 
Tabelle so aus wie im Anhang.

von Mark U. (residuum)


Lesenswert?

Die Tabelle gibt folgende Bereiche an:
>= 0,2 V
<= 0,2 V
"inputs open" umfasst dann wohl den Bereich dazwischen. Hier sollte dann 
Fail-safe greifen und der Output 1 sein.

In der genannten Application Note heißt es weiter:
Maxim's fail-safe parts [...] [have] receiver thresholds that are 
between -50mV and -200mV. With these parts, if 0V appears across the 
input stage due to a fault condition, the output is guaranteed to be a 
logic high.

Das entspricht der Tabelle von Analog Devices: Der open/short Bereich 
liegt zwischen den gültigen Bereichen.

Habe das ganze jetzt noch auf dem Steckbrett ausprobiert mit neuen 
Transceivern. 120 Ohm zwischen A und B, also 0 V. Damit bleibt auch hier 
der Output auf 0.
Das ändert sich erst, wenn eine passive Fail-safe Beschaltung 
(Widerstände) dazu kommt.

Was übersehe ich?

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Hi Markus,

MAX3483 Datenblatt:
p1: he receiver input has a fail-safe feature that guarantees a 
logic-high output if both inputs are open circuit.

Durch den 120R Widerstand ist deltaUin = 0 -> d.h. innerhalb der 0,2V 
Hysterese. In Industriebussen wird daher der Bus vorgespannt.

Beispiel siehe hier, R5/R6 seien mit je 750R bestückt.
https://www.olimex.com/Products/Modules/Interface/MOD-RS485/open-source-hardware
https://www.olimex.com/Products/Modules/Interface/MOD-RS485/resources/MOD-RS485-schematic.pdf

Grüße,
 MarCus

von Gerd E. (robberknight)


Lesenswert?

Markus E. schrieb:
> 120 Ohm zwischen A und B, also 0 V.

Bist Du Dir da sicher daß das 0V ergibt? Du kennst nicht die 
Verhältnisse der Ausgänge in diesem Moment.

Häng doch einfach mal ein Multimeter über den 120R und miss die 
Spannung.

von Mark U. (residuum)


Lesenswert?

An A und B wird mit dem Multimeter die gleiche Spannung gemessen (0,19 
V). Die Differenz ist also tatsächlich 0 V.

Wenn der Abschlusswiderstand (120 Ohm) entfernt wird, nehmen A und B 
unterschiedliche Pegel an, und der Ausgang geht auf 1. Hier greift also 
das Fail-safe für offene Inputs.

von Achim S. (Gast)


Lesenswert?

sieht für mich tatsächlich so aus, als wäreN das fail safe im Datenblatt 
des 3486 und das fail safe in der Application Note nicht dasselbe.

Der 3080 hat wohl das Verhalten, das in der AN beschrieben wird, und dem 
sieht man es auch bei der "Receiver differential threshold voltage" an.

von Mark U. (residuum)


Lesenswert?

Auflösung:

Auf meine Anfrage erklärte Maxim, dass für diesen Transceiver das 
Fail-safe nur offene Eingänge behandelt.

Soll auch 0 V zwischen den Eingängen (idle bus) erkannt und behandelt 
werden, sind andere Typen notwendig.

von G. S. (varda)


Lesenswert?

Hallo Markus,

ist mir letzte Woche auch so ergangen mit dem Startbit. Die Lösung ist 
aber ganz einfach.

...

Einfach Statusregister des Uart abfragen auf Frame-Error. Dieses Bit 
wird normal gesetzt wenn das StopBit auch low ist. Dies ist dann auch so 
in deinem Fall. Probiere es einmal aus. Bei mir hatte es Erfolg. Arbeite 
mit dem selben IC.

von Andi B. (Gast)


Lesenswert?

Maxim hat verschiedene Eingangsstufen als fail safe bezeichnet. Z.B. 
3072 und 3082 sind wirklich fail safe. Also auch bei Eingang 
kurzgeschlossen. Andere Teile eben nicht. Man muss im Datenblatt schon 
genau lesen ob die Schwelle mit -50 bis -150mV definiert ist.

Wenn nicht, dann eben wie in RS485 Norm zwischen -200mV und +200mV, oder 
wie die ersten Maxim fail safe Transceiver die nur offene Eingänge 
leicht verziehen.

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.