Hi, ich beiße mir zur Zeit die Zähne daran aus, eine RS485-Kommunikation zwischen einem µC und einem externen Gerät (Pfeiffer TPG366) herzustellen. In früheren Tests habe ich das schon einmal geschafft, aber ich kann es nicht mehr reproduzieren. Ich habe meine Schaltung sowohl als PCB als auch minimal auf einem Steckbrett aufgebaut. Zu beiden Aufbauten gibt es jeweils einen Screenshot vom Oszi. Zu sehen sind jeweils die Datenleitungen (lila/orange) und die Differenz (türkis). Ja, die Leitungen tauschen während der Messungen - ich hab die Sonden vertauscht, aber die Adern trotzdem m.M.n. korrekt angeschlossen. In den Bildern sieht man eine kurze Anfrage vom µC, die ignoriert wird und eine davon unabhängige Sendung vom Gerät. Dieses Gerät sendet im Normalfall nach dem Einschalten kontinuierlich Messwerte, bis es ein erste Byte über RS485 empfängt. Dann stoppt es die Übertragung und wartet auf Befehle. Das passiert hier aber nicht. Was auffällt, in Verbindung mit der Platine sieht das Signal vom Gerät auf der orangen Datenleitung ganz anders aus als die korrespondierende lila Datenleitung in Verbindung mit dem Steckbrett. Woran kann das liegen bzw. ist das in Ordnung? Ist es wahrscheinlich, dass hier einfach ein Chip auf meiner Platine defekt ist? Dann hätte ich noch zwei weitere Fragen: - Im Datenblatt des MAX485 (https://www.analog.com/en/products/max485.html) gibt es ein Bild 8 "Driver DC Test Load" - dort gibt es zwei 27R-Widerstände zwischen den Datenleitungen. Sollen diese die beiden 120R-Widerstände simulieren, die es an den Enden des RS485-Bussen gibt? Weil 4*27 = 120R? - Zu Pullups/Pulldowns scheinen die Meinungen auseinanderzugehen. Laut Datenblatt scheinen die nicht nötig zu sein, aber auch hier im Forum bilde ich mir ein, Gegenteiliges gelesen zu haben. Wie steht Ihr dazu? Welche Gründe gibt es, die doch einzusetzen? Vielen Dank schon mal Peter
Natürlich darf jeder seine Meinung haben, richtig ist jedenfalls: - jeweils 120 Ohm Terminierung an den Enden des Busses - BIAS-Netzwerk (Pullup/Down) einmal (und NUR einmal) irgendwo auf dem Bus Die BIAS-Widerstände müssen so bemessen sein, daß mindestens 200mV Vorspannung anliegen, bei 5V sind das jeweils 470 Ohm. Ohne BIAS-Widerstände nimmt der Bus zufällige Pegel an, wenn kein Teilnehmer sendet. Die Auswirkungen sind unvorhersehbar, sicher ist nur, daß die Busteilnehmer nicht gut darauf reagieren.
:
Bearbeitet durch User
Das werde ich mal ausprobieren. Danke! Allerdings... Ist es nicht möglich, dass das externe Gerät in seiner Blackbox auch schon Pullups/Pulldowns verbaut hat? Wenn ich auf den Datenleitungen jeweils zu VCC und GND die ~470R messe, ist das dann ein richtiges Indiz dafür?
Die beiden Signale /RE und DE des Max485 musst Du auch irgendwo anschließen ...
Peder schrieb: > Ist es nicht möglich, dass das externe Gerät in seiner > Blackbox auch schon Pullups/Pulldowns verbaut hat? > Wenn ich auf den Datenleitungen jeweils zu VCC und GND die ~470R messe, > ist das dann ein richtiges Indiz dafür? Ja und ja. Manche RS485-Devices haben nebem der Terminierung auch das BIAS schaltbar an Bord. Steht normalerweise in der Doku. Die Widerstandswerte können abweichen, sind i.d.R. aber unter 1kOhm.
> Die beiden Signale /RE und DE des Max485 musst Du auch irgendwo Hat er doch, hast du nur nicht gesehen. Ich wuerde sie wohl verbinden und nur einen anschliessen... Ich wuerde auch den MAX3008 weglassen und stattdessen einen RS485 Treiber nehmen der 3V3 kann. Ausserdem wuerde ich GND durchverbinden. :-) GND wird nicht fuer die Datenuebertragung gebraucht, wohl aber fuer die physikalische Funkion der Driver. Besonders wenn vielleicht eine Seite auf 230V/2 von irgendeinem Schaltnetzteil liegt und die andere nicht. Die Biaswiderstaende wuerde ich drauf machen nachdem ich weiss das die Software auch ohne gut funktioniert. Sie sind technisch naemlich nicht notwendig, dein SoftwareDriver muss erkennen wenn er "falsche" Bytes bekommt und sauber neu aufsetzen. Danach koennen die dann aber nicht schaden. 120R sind natuerlich okay und richtig wenn man 100m Kabel durch eine Industrieanlage schleift. Sind es nur 2-3m im eigenen Keller reichen auch 1k. Die 120R sind manchmal etwas unangenehm weil man da 90% der Energie der gesamten Schaltung drin verheizt. Wenn das alles nicht hilft, mal AB vertauschen. Hat mich auch schon oft gehilft. :-D Vanye
Peder schrieb: > - Im Datenblatt des MAX485 > (https://www.analog.com/en/products/max485.html) gibt es ein Bild 8 > "Driver DC Test Load" Auf der verlinkten Seite gibt es kein Bild "Driver DC Test Load". In dem auf der Seite verlinkten Datenblatt gibt es eine Figure 4, die so heißt. Meinst du die? Die angegebenen Daten beziehen sich auf die in den Messbedingungen mit Verweis auf Fig. 4 angegeben Werte für die Last R. https://www.analog.com/media/en/technical-documentation/data-sheets/MAX1487-MAX491.pdf
Rainer W. schrieb: > Auf der verlinkten Seite gibt es kein Bild "Driver DC Test Load". In dem > auf der Seite verlinkten Datenblatt gibt es eine Figure 4, die so heißt. > Meinst du die? > Die angegebenen Daten beziehen sich auf die in den Messbedingungen mit > Verweis auf Fig. 4 angegeben Werte für die Last R. > https://www.analog.com/media/en/technical-documentation/data-sheets/MAX1487-MAX491.pdf Mein Fehler. Es ist der MAX485E (https://www.analog.com/en/products/max485e.html), aber die Grafik entspricht dann der Fig.4, ja. Vanye R. schrieb: > Ich wuerde auch den MAX3008 weglassen und stattdessen einen RS485 > Treiber nehmen der 3V3 kann. Muss ich noch mal schauen. Da ich eigentlich immer bevorzugt mit 3,3V arbeite, fürchte ich, dass ich danach schon gesucht habe. > > Ausserdem wuerde ich GND durchverbinden. :-) GND wird nicht fuer die > Datenuebertragung gebraucht, wohl aber fuer die physikalische Funkion > der Driver. Falls ich dich richtig verstehe, habe ich das so auch gemacht. Das Pfeiffer-Gerät hat an der RS485-Buchse 24V, die meine Platine versorgt. Insofern sind alle auf gleichem Ground. > > 120R sind natuerlich okay und richtig wenn man 100m Kabel durch eine > Industrieanlage schleift. Sind es nur 2-3m im eigenen Keller reichen > auch 1k. Die 120R sind manchmal etwas unangenehm weil man da 90% der > Energie der gesamten Schaltung drin verheizt. Guter Punkt. Ich habe tatsächlich eine sehr kurze Leitung <1m. Vielleicht lohnt es sich, die Widerstände mal nach unten zu korrigieren.
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.


