Forum: Mikrocontroller und Digitale Elektronik RS485 Bus, Probleme mit mehr als einem Slave


von Sven (Gast)


Lesenswert?

Hallo,

ich bin gerade dabei mir einen kleinen Hausbus mittels einem RS485 
aufzubauen. Als Sender/Empfänger-Bausteine verwende ich den Max490, im 
Full-Duplex-Betrieb (Master/Slave Architektur).
Bei mir tritt folgendes "Phänomen" auf, sobald mehr als ein Slave an den 
Bus angeschlossen wird, funktioniert die Kommunikation mit jedem 
weiteren Slave nicht mehr.

Folgendes habe ich bereits Überprüft, bzw. beachtet:

1.) Die Terminierungswiderstände (120 Ohm) befinden sich nur am Master 
und am letzten Slave.
2.) Die Verkabelung (TX+, TX-, RX+, RX- / Full-Duplex) habe ich x-mal 
überprüft, und gemäss Datenblatt geschaltet.
3.) Die Leitungslänge ist nicht signifikant, da im Versuchsaufbau nur 
ca. 10 cm.
4.) Es ist sichergestellt das die Slaves nicht gleichzeitig senden, mit 
Logikanalyzer überprüft.
5.) Alle Slaves empfangen das Datenpaket, und nur der angesprochene 
Teilnehmer sendet auf dem Bus - aber beim Master kommt die Antwort (des 
jeweiligen Slaves) nicht an.
6.) Habe alle TX und RX Signale (serielle Schnittstelle) an den 
jeweiligen Pins der Mikrocontroller abgegriffen (mit einem 
Logikanalyzer) fazit: Alle Slaves Empfanden einwandfrei, der jeweilige 
Slave sendet auch die gewünschte Antwort zurück - aber am Master kommt 
nichts an.
7.) Das Vertauschen der Slaves (und der Treiberbausteine), ändert nichts 
am "Phänomen"
8.) Der gesamte Aufbau verwendet dieselbe Masse (GND), obwohl ich 
gelesen habe das die bei RS485 nicht nötig ist.

Vielleicht habe ich etwas grundsätzliches "übersehen", und hoffe mit 
kann jemand mit einem Tip helfen.

von X- R. (x-rocka)


Lesenswert?

Transmit Enable? TX_EN?
Sprich: nicht verwendete Ausgänge hochohmig schalten / "tristaten"?

Editha:
Der Pin heisst beim MAX490 "DE": output driver enable.
Der darf nur am Sender "High" sein, bei allen anderen muss der LO sein.

Ansonsten: Hausbus klingt schon mal nach Masseschleifen, andererseits 
ist da die symmetrische Signalübertragung recht schmerzfrei. Könnte aber 
auch noch zu Problemen führen. Zur Not RS-485 mit Isolation: MAX1480, 
ADM2582, ...

von Sven (Gast)


Lesenswert?

Hallo ...

"Der Pin heisst beim MAX490 "DE": output driver enable."

Der Max490 hat keinen "DE"-Pin ! Der Baustein besteht aus einem Sender 
und Empfänger, ohne "Enables"

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wie bitte verbindest Du mehrere Treiberausgänge miteinander, ohne je 
Treiber ein DE zu haben? Mir scheint das das Problem zu sein.

Welche Schaltung aus welchem Datenblatt meinst Du da nachgebaut zu 
haben?

Das Maxim MAX1487-MAX491-Datenblatt beschreibt auf S.14 in Figure 22 
eine Schaltung, die dem nahekommt, was Du erzielen willst - setzt aber 
zwingend Treiber mit DE voraus.

von Walter (Gast)


Lesenswert?

dann kannst du nur einen SLAVE haben, sonst prügeln sich doch alle auf 
dem Bus,
also einen anderen MAX nehmen!

von X- R. (x-rocka)


Lesenswert?

Sven schrieb:

> Der Max490 hat keinen "DE"-Pin ! Der Baustein besteht aus einem Sender
> und Empfänger, ohne "Enables"

Wie doof, da muss wohl ein anderer Chip her!

von Sven (Gast)


Lesenswert?

Danke für die Antworten, das kann es sein. Ich habe den Max490 gewählt 
um mir die beiden Pin's zu sparen. Aber wofür ist dann der Max490 gut, 
nur für Peer-to-Peer Verbindungen.
Ich war/bin der Meinung das der Baustein dies "von sich aus" regelt. Ich 
interpretiere das Datenblatt S.14 (Figure 22) so, dass der Max489 und 
Max491 eine DE / RE - Leitung haben, und der Max490 eben nicht. Wenn den 
so ist, wird mir die Sache schon klarer.

von Falk B. (falk)


Lesenswert?

@  Sven (Gast)

>um mir die beiden Pin's zu sparen. Aber wofür ist dann der Max490 gut,

Für Vollduplex. RS485 wird aber meist wie bei dir im Halbduplkex 
betrieben.

>Ich war/bin der Meinung das der Baustein dies "von sich aus" regelt.

Nö.

>so ist, wird mir die Sache schon klarer.

Siehe RS485

MFG
Falk

von STK500-Besitzer (Gast)


Lesenswert?

>Ich war/bin der Meinung das der Baustein dies "von sich aus" regelt.
Dafür nimmt man dann besser CAN-Transceiver, wobei die nur eine 
Halbduplex-Verbindung zur Verfügung stellen.

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.