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.
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, ...
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"
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.
dann kannst du nur einen SLAVE haben, sonst prügeln sich doch alle auf dem Bus, also einen anderen MAX nehmen!
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!
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.
@ 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
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.