Hallo, ich würde gerne mit einem Attiny841 einen RS485 Bus aufbauen. Dieser wird wahlweise mit 3V3 oder 5V betrieben. Nun möchte ich für das ganze einen MAX485 einsetzen. Den RS485 möchte ich mit 4 Adern aufbauen. A, B, GND und ca 12V. Die 12V dienen hier auch als Versorgungsspannung für den Attiny. Die Spannung wird mit 1117er auf 5 und 3V3 heruntergesetzt. Nun bin ich aus dem Datenblatt nicht wirklich schlau geworden, wie die Schaltugn auszusehen hat. Im Netz findet man Module, bei denen die Datenleitungen mit PullUps (10k) auf VCC angehoben werden. Im Datenblatt ist dort nichts zu finden.
RS485 funktioniert normalerweise differentiell als 2-Draht Bus ohne Bezug zu VCC und GND Potenzial. Schau mal hier: https://de.wikipedia.org/wiki/EIA-485
Hallo, zunächst empfehle ich dir, bandbreitenbegrenzte Treiber zu nutzen, sofern die Baudrate nicht über ca. 200kBaud liegen soll. Z.B. MAX483 statt MAX485. In der Schaltung kannst du R9 auch gegen +5V beschalten. Außerdem sollte R9 und R10 vom Wert etwas kleiner sein, z.B. 470R ...1k. Diese Widerstände dienendazu, den BUS im passiven Zustand auf definierte Ruhepegel vorzuspannen. R8 dient der sogenannten Terminierung (BUS-Abschluss) und wird nur an den beiden Enden des BUS beschaltet. BUS-Teilnehmer, die dazwischen liegen, sollen keinen solchen haben. Der Widerstand R8 kann dann auch etwas größer sein, wenn R9 und R10 vom Wert her kleiner sind. R8 Parallel zu (R9+R10) soll der Impedanz des Kabels entsprechen, bei verdrillten Leitungen eben ca. 120 Ohm. Die UART Leitungen Rxd (Pin1)und Txd (Pin4) haben immer Ruhepegel High und sollten mit Pullup beschaltet werden. Die Leitung an Pin2/3 wird aber besser mit einem Pulldown-R versehen, so das "Read Enable" = Low im Restzustand aktiv wird und der Treiber den den BUS nicht blockiert. Wie ist da mit den Eingängen des uC - sind diese 5V-Tolerant? Ansonsten müßtest du dir Gedanken um die Pegelanpassung von 5V auf 3,3V machen. Gruß Öletronika
Pete K. schrieb: > RS485 funktioniert normalerweise differentiell als 2-Draht Bus ohne > Bezug zu VCC und GND Potenzial. Das wird auch durch ständiges wiederholen nicht richtig. RS485 ist nicht galvanisch getrennt und hat natürlich einen Massebezug. Auch das wird in dem von Dir verlinkten Wiki-Artikel erklärt.
Pete K. schrieb: > RS485 funktioniert normalerweise differentiell als 2-Draht Bus ohne > Bezug zu VCC und GND Potenzial. Dann erkläre mal, wie ohne galvanische Trennung ein Empfänger mit einem natürlicherweise begrenzten Gleichtaktaussteuerbereich ohne Massebezug klar kommen soll.
Ja, das habe ich falsch beschrieben. Ich meinte, dass die beiden Signale über zwei Drähte gehen, ohne dass Sender und Empfänger die GNDs oder VCC verbunden haben.
:
Bearbeitet durch User
Pete K. schrieb: > Ich meinte, dass die beiden Signale > über zwei Drähte gehen, ohne dass Sender und Empfänger die GNDs oder VCC > verbunden haben. Aber nur, wenn sich der Potenzialunterschied zwischen den GNDs in einem erlaubten Bereich bewegt. Also ganz schwebend (= keiner kümmert sich um die Potenziale) geht (meist) nicht gut. Gruß Dietrich
Pete K. schrieb: > Ja, das habe ich falsch beschrieben. Ich meinte, dass die beiden Signale > über zwei Drähte gehen, ohne dass Sender und Empfänger die GNDs oder VCC > verbunden haben. Wie willst du dann sicherstellen, dass die in den Absolute /Maximum/ Ratings genannte Bedingung für die Eingangsspannung des Receivers eingehalten werden? Es muss eine Beziehung innerhalb der im Datenblatt beschriebenen Grenzen zwischen Gnd des Transmitters auf der einen Seite und Gnd des Receivers auf der anderen Seite geben. Mit zwei Drähten alleine funktioniert das nicht sauber.
Simon schrieb: > Nun bin ich aus dem Datenblatt nicht wirklich schlau geworden, wie die > Schaltugn auszusehen hat. So wie im Datenblatt. > Im Netz findet man Module, bei denen die > Datenleitungen mit PullUps (10k) auf VCC angehoben werden. Das wäre dann Käse. (Eine Leitung nach '+', eine nach GND.) Nennt sich, wenn's richtig gemacht ist: 'faile safe'. > Im Datenblatt ist dort nichts zu finden. Doch! Am Anfang steht, dass 'fail safe' schon eingebaut ist. Deshalb sind natürlich auf dem Schema keine Widerstände zu sehen.
Die meisten RS485 Bausteine haben Fail-Safe-Widerstände eingebaut (einfach mal nach "fail" im Datenblatt suchen, so dass externe Widerstände nicht nötig sind, abgesehen vom Terminator. >Die UART Leitungen Rxd (Pin1)und Txd (Pin4) haben immer Ruhepegel High >und sollten mit Pullup beschaltet werden. Das widerspricht sich. Der Empfängerausgang ist undefiniert wenn RXE high ist, also in der Regel im Sendemodus. Das weiß aber der µC und kann den Empfänger abschalten -> kein Pullup nötig Stefan
Ich wuerd den Empfaenger nie abschalten. Man muss die Meldung ja eh verarbeiten und auf das Ziel, resp die ID des Empfaengers achten. Das mit dem Potentialunterschied kann schwer in die Hose gehen. Wir hatten mal den Fall, dass auch nur 2 Leiter verwendet wurden, und den GND nahm man von der Erde, resp in diesem alten Haus war Erde=Null. Wenn also der Liftmotor lief, gab das einen GND Offset, waehrend diesem die Kommunikation nicht lief. Die Software war gut und hat Reties gemacht, deshalb merkte man das lange nicht. also. Falls man groessere Potentialdifferenzen erwartet, fuehrt man den GND mit und macht die Potentialtrennung auf einer der beiden Seiten, wobei man zB mit einem magnetischen Isolierer, wie einem ADuM1400 oder so trennt und einen isolierten Switcher auf den mitgefuehrten GND bezieht. Optokoppler sind nicht mehr angesagt, die ziehen zuviel. Aeh. Ich wuerd RS422 bevorzugen, die 2 zusaetzlichen Leiter kosten nichts, und man spart sich di Richtungsumschalterei.
:
Bearbeitet durch User
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.