Hallo, sind die Abschlusswiderstände der Leitung bei RS485 (MAX487) auch notwendig, wenn man nur einen Master und einen Slave hat, woran die Leitung direkt angeschlossen wird und es gar keine offenen Enden gibt? LG
Teste es doch und berichte. Laut der Seite ist es ab zwei Teilnehmer erforderlich. Zweiter Satz. https://www.mikrocontroller.net/articles/RS-485
Rainer S. schrieb: > Laut der Seite ist es ab zwei Teilnehmer erforderlich. Zweiter Satz. Ein Bus mit nur einem Teilnehmer ist reichlich sinnlos! Der RS485-Bus gehört an beiden Enden abgeschlossen. Wenn man das prinzipiell so macht, entsteht auch nicht die Frage "ist der kurz genug?"
Nick M. schrieb: > Rainer S. schrieb: >> Laut der Seite ist es ab zwei Teilnehmer erforderlich. Zweiter Satz. > > Ein Bus mit nur einem Teilnehmer ist reichlich sinnlos! > > Der RS485-Bus gehört an beiden Enden abgeschlossen. Wenn man das > prinzipiell so macht, entsteht auch nicht die Frage "ist der kurz > genug?" Als Bus ist es freilich sinnlos. Ich habe ein Kabel (ca. 35m) liegen und möchte zwischen zwei µC -verbunden mit diesem Kabel- Daten übertragen und dachte an RS485. UART,SPI,I²C ... hatte ich gelesen, dass man dafür eher geringe Leitungslängen nutzt.
:
Bearbeitet durch User
Nick M. schrieb: > entsteht auch nicht die Frage "ist der kurz > genug?" Markus E. schrieb: > Ich habe ein Kabel (ca. 35m) liegen Da stellt sich die Frage nicht. Georg
Was würdet ihr denn statt RS485 verwenden bei der Leitungslänge?
Markus E. schrieb: > sind die Abschlusswiderstände der Leitung bei RS485 (MAX487) auch > notwendig, wenn man nur einen Master und einen Slave hat, woran die > Leitung direkt angeschlossen wird und es gar keine offenen Enden gibt? Deine Empfänger sind immer hochohmig, d.h. sie stellen keinen Leitungsabschluss im Sinne der Leitungsimpedanz dar. Ohne Leitungsabschluss bekommst du Reflektionen auf der Leitung.
Markus E. schrieb: > Was würdet ihr denn statt RS485 verwenden bei der Leitungslänge? Das hängt von der Übertragungsgeschwindigkeit ab und den Umgebungsbedingungen. RS485 ist jedenfalls das stabilste. Und wenn du dazu noch die LTM2881 verwendest, dann ist das beinahe unkaputtbar, galvanisch getrennt, störsicher, ... und teuer. :-)
@TO du benötigst IMMER Abschlusswiderstände - gerade bei großen Leitungslängen müssen diese auch wirklich am Ende sein. Bei kruzen Leitungslängen ~2m kann man auch eine 60Ohm Sternterminierung wählen
Ich übertrage mit gerade mal 9600 Bd/s. Ok dann verwende ich dennoch Abschlusswiderstände und bleibe bei RS485. Nick M. schrieb: > Und wenn du dazu noch die LTM2881 Ich habe hier RS487 herumliegen, das wird schon gehen ;-)
Markus E. schrieb: > Ich übertrage mit gerade mal 9600 Bd/s. > > Ok dann verwende ich dennoch Abschlusswiderstände und bleibe bei RS485. Das kann man einfach direkt verbinden. Alles andere ist Overkill. MfG Klaus
Klaus schrieb: > Das kann man einfach direkt verbinden. Meinst du direkt an den UART oder meinst du damit, dass man sich die Abschlusswiderstände sparen kann?
Klaus schrieb: > Das kann man einfach direkt verbinden. Alles andere ist Overkill. Passende Widerstand kostet wieviel? Da lohnt die Diskussion, ob es vielleicht auch ohne geht, überhaupt nicht. Spätestens, wenn es dann doch mal eben schnell schneller gehen soll, fällt man auf die Schnauze.
Er gehört auf jeden Fall hin, auch bei 2 Geräten. Höchstwahrscheinlich geht es auch ohne -- die Robustheit deines Aufbaus erhöht das Weglassen aber sicherlich nicht.
Hallo, lass dich nicht verwirren. Auch die Verbindung zwischen einem Master und Slave ist ein Bus. Hat eben nur 2 Teilnehmer. Bleib bei RS485 und terminiere den Bus wie es sich gehört an beiden physischen Kabelenden. Die maximale Baudrate wirst du bei 35m dann bestimmt nicht mehr nutzen können. Bei der Länge funktioniert SPI nicht mehr und I2C nur mit Expander was am Ende auch wieder auf RS485 hinausläuft.
Veit D. schrieb: > Hallo, > > lass dich nicht verwirren. Auch die Verbindung zwischen einem Master und > Slave ist ein Bus. Hat eben nur 2 Teilnehmer. Bleib bei RS485 und > terminiere den Bus wie es sich gehört an beiden physischen Kabelenden. > Die maximale Baudrate wirst du bei 35m dann bestimmt nicht mehr nutzen > können. Bei der Länge funktioniert SPI nicht mehr und I2C nur mit > Expander was am Ende auch wieder auf RS485 hinausläuft. Stimmt :), aber wie sieht es mit dem Vorschlag von Klaus aus, direkt an den UART bei 35m?
Klaus schrieb: > Das kann man einfach direkt verbinden. Alles andere ist Overkill. > > MfG Klaus Sorry, alles zurück. Hatte statt 35m 35cm gelesen. MfG Klaus
Ok, dann würde ich meine Frage nun schließen. RS485 bei 35m Leitung, abgeschlossen mit Widerständen scheint dann eine vernünftige Lösung zu sein. Danke
:
Bearbeitet durch User
Markus E. schrieb: > RS485 bei 35m Leitung, abgeschlossen mit Widerständen scheint dann eine > vernünftige Lösung zu sein. Es schadet nicht, ist aber im Einzelfall nicht nötig. Wenn man nur ein einfaches UART-Protokoll mit 9600 Baud nenutzt, spielen Reflektionen bei der Länge keine Rolle. Es gibt sie, sie stören auch geringfügig das Signal, sind aber nach wenigen Mikrosekunden wieder weg. Das interessiert den UART nicht, schon gar nicht bei 9600 Baud. Bei anderen Protokollen und vor allem bei höheren Baudraten wird das zunehmend ein Problem. 100 Mbit Ethernet geht bei 35m ohne Abschlußwiderstände nicht, denn dort überlagern sich die Reflektionen mit dem normalen Datensignal und stören es massiv bis zum Ausfall. Wenn man Reflektionen vermeiden will oder muss, nimmt man a) Abschlußwiderstände oder b) möglichst langsame Sender mit möglichst GROßER Anstiegszeit. Dann entstehen auch bei relativ langen Leitungen keine Störungen durch Reflektionen. Siehe Wellenwiderstand.
Veit D. schrieb: > Auch die Verbindung zwischen einem Master und Slave ist ein Bus. Bereits ein verdrillter Draht mit passender Impedanz und passender Terminierung ist ein Bus. Und an diesen Bus kann man nun Busteilnehmer anschließen. So ist das definiert. Und wenn man keinen zur gewünschten Physik passenden Bus hat, kann man nicht zuverlässig damit fahren. Falk B. schrieb: > Wenn man nur ein einfaches UART-Protokoll mit 9600 Baud nenutzt, spielen > Reflektionen bei der Länge keine Rolle. Es gibt sie, sie stören auch > geringfügig das Signal, sind aber nach wenigen Mikrosekunden wieder weg. > Das interessiert den UART nicht, schon gar nicht bei 9600 Baud. In der Praxis und aus Erfahrung setze ich RS232 nur bis zu Leitungslängen von ca. 10m ein. Aber weniger wegen physikalischer Grundlagen, sondern wegen Potentialverschiebungen und Störungen. Darüber hinaus kommt dann RS422 oder RS485 zum Einsatz. Bei 2 Teilnehmern lieber der erstere, weil dann eine simple serielle Schnitte ohne Busumschaltung verwendet werden kann.
Falk B. schrieb: > ist aber im Einzelfall nicht nötig Immer wieder diese unsägliche Diskussion - wegen einiger Widerstände, die keinen Zehntel Euro kosten, wird immer wieder behauptet, man könnte sie doch einsparen. Dazu noch die GND-Verbindung, und am besten auch gleich die Datenleitungen - garkein Bus ist einfach unschlagbar billig. Wie der schwäbische Bauer: ausgerechnet jetzt, wo er der Kuh beigebracht hat überhaupt nichts mehr zu fressen, stirbt sie ihm einfach weg. Georg
Nick M. schrieb: > RS485 ist jedenfalls das stabilste. Und wenn du dazu noch die LTM2881 > verwendest, dann ist das beinahe unkaputtbar Wir haben ein Gerät mit 2 verschiedenen DSub-9 Kabeln von einem externen Anbieter. Bei dem einen liegen A,B auf den gleichen Pins, wie bei dem anderen die +/-24V. Hui, wie es die RS-485 Treiber brutzelt, wenn man die Kabel vertauscht. CAN ist da robuster, da sind bis +/-36V auf den Datenpins erlaubt (PCA82C251).
Markus E. schrieb: > Stimmt :), aber wie sieht es mit dem Vorschlag von Klaus aus, direkt an > den UART bei 35m? Hier gibt es wohl ein prinzipielles Problem: Der RS485 Bus ist 2-Draht oder 4 -Draht. Da wo das Kabel aufhört (das sind halt mal zwei Enden) gehört jeweils ein Abschlusswiderstand hin. Wo du die Geräte dann anschließt, direktz ans Ende, 1.38 m von links her und 0.4 cm von rechts her ist völlig belanglos. Nur, es darf halt keine Stichleitungen geben, sondern nur ein Kabel.
Georg schrieb: > Wie der schwäbische Bauer: ausgerechnet jetzt, wo er der Kuh beigebracht > hat überhaupt nichts mehr zu fressen, stirbt sie ihm einfach weg. Der ist süssss ... Seit Jahrzehnten wird in meinem Umfeld RS485 verwendet. Ich habe noch nie über das weglassen der Terminierung nachgedacht. Und die Anderen, in dem Umfeld, haben das nie und nimmer offen diskutiert. Alleine die Idee, wäre ein Nogo.
Arduino Fanboy D. schrieb: > Alleine die Idee, wäre ein Nogo. Ist ein Nogo! Wir haben damals 3 Schränke mit jeweil 10 Doppeleinschüben, über serielle Schnittstellenkarten, die sowohl rs244, als auch rs232, als auch Stromschnittstellen bedienen konnten, verbunden. Alles war sauber terminiert und hat einwandfei funktioniert. Vielleicht kann sich jemand vorstellen, was für ein Desaster es gewesen wäre, wenn die serielle Kommunikation nicht sauber geklappt hätte! War übrigens eines der ersten Devisenhändlerplätze mit online Verbindung zu den Reuters-Netzwerken bei der Bergen-Bank Oslo. Ich will nicht herumprahlen, sondern dir sagen, terminier deine Leitung vernünftig...Probleme hast an anderer Stelle wahrscheinlich noch genug :-) Gruß Rainer und viel Erfolg.
Warum denkt man überhaupt über so einen Widerstand nach? Ja, vielleicht gehts - was hat man dann gewonnen? Und der Nachweis, dass es dauerhaft zuverlässig funktioniert ist damit auch noch nicht erbracht. Nicht nachdenken, nicht diskutieren. Einbauen, fertig, funktioniert. Millionenfach bewiesen.
H.Joachim S. schrieb: > Einbauen, > fertig, funktioniert. Millionenfach bewiesen. ...und wie gesagt, wenns nicht funktioniert, auch bei nur 2 Teilnehmern, kann man schon gehörig schwitzen...und an der Stelle unnötig! Gruß Rainer
H.Joachim S. schrieb: > Warum denkt man überhaupt über so einen Widerstand nach? > Ja, vielleicht gehts - was hat man dann gewonnen? Man spart deutlich an Strom. In einigen Fällen kann das wichtig sein, meistens ist es egal.
Falk B. schrieb: > Man spart deutlich an Strom. In einigen Fällen kann das wichtig sein, > meistens ist es egal. Theoretisch wäre auch noch AC Terminierung möglich. Wobei ich da auch schon ordentlich Probleme mit hatte.
So Leute, nachdem ich ihr schon solche Probleme mit den banalen und immer notwendigen Abschlusswiderstaenden habt, wie ist es dann erst wenn man die Frage nach den gerne verwendeten, aber nicht unbedingt notwendigen Widerstaenden am Empfaenger stellt mit denen man einen definierten Pegel bei nicht angeschlossener Leitung sicherstellen will, erweitert? :-D Olaf
Oder gar die Frage, ob man bei dem "2-Draht-Bus" RS485 eine Masse mitführen soll (und so ja ein "3-Draht-Bus" draus würde) oder gar muss oder ob man sich das Kupfer dafür sparen kann wie im Beitrag "Re: Datenübertragung über >100m" ... ;-)
:
Bearbeitet durch Moderator
Im Wilden Westen war Telegrafie auch ein Eindraht-Bus. Funktionierte halt bei Regenwetter besser, wenn der Boden nass war...
Wir könn ja noch das Thema Schirmung mit aufmachen wenn wir schonmal dabei sind ;) Schirmung: ja/nein, einseitig/beidseitig verbinden, etc.
Ob du einen Abschlusswiderstand brauchst hängt nicht davon ab wieviele Geräte du an dem Bus dran hast, sondern hauptsächlich von der Flankensteilheit deiner Ausgangssignale. Bei langsamen Treibern wie den MAX483 und 487, kannst du dir bei deiner Leitungslänge auf jeden Fall die zusätzlichen externen Abschlusswiderstände (und den Strom darüber) sparen. Wer auf 35m und 9600 Baud bei diesen Treibern meint er müsse unbedingt Abschlusswiderstände empfehlen, der hat sowas noch nie gemessen bzw. fasselt Oberlehrerhaft von theoretischen Dingen, die er nicht richtig verstanden hat. Natürlich brauchst du aber einen Massebezug. Was wohl am besten mit einer mitgezogenen GND Leitung sichergestellt wird. Und ob Schirmung oder nicht, hängt hauptsächlich von den Störungen in der Umgebung ab. Gegen Störer wäre aber auch wieder in einem gewissen Maße ein niederohmiger Abschlusswidestand vorteilhaft. Für deine Anwendung aber wohl nicht relevant.
Andi B. schrieb: > Wer auf 35m und 9600 Baud bei diesen Treibern meint er müsse unbedingt > Abschlusswiderstände empfehlen, der hat sowas noch nie gemessen bzw. > fasselt Oberlehrerhaft von theoretischen Dingen, die er nicht richtig > verstanden hat. Ich halte mich da ganz einfach ans Datenblatt. Und wenn in jeder der Skizzen dort ein Rt eingezeichnet ist und auch im Text nichts davon steht, dass man die einfach weglassen kann, dann werden die 2 Cent auch investiert... Das doppeldeutige "should" aus Datenblättern wird nämlich korrekterweise mit "muss" und nicht mit "soll" ins Deutsche übersetzt:
1 | To minimize reflections, the line should be terminated atboth ends in its |
2 | characteristic impedance, and stublengths off the main line should be kept as |
3 | short as possible. The slew-rate-limited MAX483 and MAX487–MAX489are more |
4 | tolerant of imperfect termination. |
Und "imperfect" ist auch was anderes als "not any"... Denn morgen kommt der Nächste und braucht 115kBd auf diesem Bus...
:
Bearbeitet durch Moderator
Andi B. schrieb: > fasselt Oberlehrerhaft von theoretischen Dingen, die er nicht richtig > verstanden hat Z.B. von Leitungsimpedanzen, von denen du nicht das geringste verstanden hast. Bleib bei Gleichstrom. Georg
War ja klar das solche Kommentare kommen werden. Wie schon gesagt, von Leuten die mit "diesen" Treibern auf "dieser" Länge mit "diesen" Geschwindigkeitsanforderungen ganz sicher keine Erfahrungen haben. Moderator gibt's ja direkt zu, dass er statt auf die Anforderung des TO lieber über 115kBaud redet. Aber zur Beruhigung bei diesen Treibern und 35m sind auch die 250kBaud die die maximal können überhaupt kein Problem. Glaub es jemanden der Ahnung davon hat, oder messe es selbst nach. Wenn dich der Stromverbrauch nicht stört, dann gebe ich dir auch Recht - die paar Cent sind egal. Die Wortglauberei mit dem Datenblatt ist dabei hier gar nicht gefragt. Muß ich hier wirklich an den Threadtitel "RS485 Abschlusswiderstand nötig bei 2 Devices?" erinnern? Das wäre doch eher die Aufgabe des Moderators ;-) @ Georg (Gast) - du kennst mich und meine Fähigkeiten nicht und behauptest in deinem letzten Post über mich unhaltbaren Blödsinn. Ich kenn' dich zwar auch nicht, aber durch dein Posting hast du eindeutig bewiesen, dass du von der Problemstellung welches der TO anfragte, absolut keine Ahnung hast. Deshalb hast du dich wohl auch von meiner Aussage welche zu zitiert hast angesprochen gefühlt - passt ganz offensichtlich haargenau auf dich. Oder du willst ganz absichtlich am Thema vorbeidiskutieren.
Andi B. schrieb: > Muß ich hier wirklich an den Threadtitel "RS485 > Abschlusswiderstand nötig bei 2 Devices?" erinnern? Nein, musst du nicht. Aber seine Frage beinhaltet doch eher folgendes: - bei mehr als zwei Teilnehmern scheint ihm klar zu sein, dass er die Terminierung braucht - ist das anders bei nur zwei Teilnehmern? Aber der TO hätte für seine Bedingungen einfach mal einen Testaufbau machen können und sich den Unterschied der Signalqualität mit oder ohne Terminierung anschauen können. Und dann entscheiden, ob er in der Konfiguration welche haben sollte oder ob die 2ct und den Strom sich sparen kann. Ich würde mir die Zeit für den Test sparen und auch diesen Thread und sie einfach einbauen.
Etwas Hintergrund, damit das Forum hier nicht noch unter Tante Emma Niveau absackt... Wenn nur zwei Teilnehmer am Bus sind, dann kann man sich den (zweiten) Abschlusswiderstand sparen, um Strom zu sparen. Es tritt dann am Ende eine Reflexionen auf, die aber vom Abschlusswiderstand am Sender verschluckt wird. Die Reflexionen wandern also nur einmal hin, und dann zurück, und nicht beliebig oft hin und her. Wenn aber ein weiterer Busteilnehmer in der Mitte sitzt, dann ist es ratsam den Abschlusswiderstand am Ende einzubauen Der Teilnehmer in der Mitte sieht sonst die vorlaufende Spannungswelle mit Vcc/2 und dann nach der Laufzeit auch die rücklaufende Spannungswelle mit Vcc. Wenn die Schaltschwelle des Busteilnehmers bei ca. Vcc/2 liegt, dann kann es zu kurzen Fehlzuständen im us Bereich kommen, bis dann die rücklaufende Welle den Zustand sauber definiert. Das war bei IDE ein riesiges Problem, wo deshalb getrickst wurde. Erstens hatte man eine Fehlanpassung des Senders, sodass die vorlaufende Welle deutlich über der Schaltschwelle lag, und zweitens hatte man am Ende der Leitung einen Serien-Widerstand von ca. 80 Ohm, der mit den Eingangskapazitäten von einigen 10 pF eine Anpassung für die sehr schnellen Flanken machte. Bei 9600 Baud und einem Uart, das ja hoffentlich nicht flankengetriggert ist, geht das natürlich auch ohne irgendeinen Abschlusswiderstand. Die Laufzeit liegt ja bei 35m bei ca. 200 ns, und die Dauer eines Bits bei ca. 100 us. Bis das Uart nach ca. 50 us entscheidet, ob es eine 1 oder eine 0 sein soll, sind alle Reflexionen abgeklungen.
H.Joachim S. schrieb: > Warum denkt man überhaupt über so einen Widerstand nach? > Ja, vielleicht gehts - was hat man dann gewonnen? > Und der Nachweis, dass es dauerhaft zuverlässig funktioniert ist damit > auch noch nicht erbracht. Nicht nachdenken, nicht diskutieren. Einbauen, > fertig, funktioniert. Millionenfach bewiesen. Ich frage mich eher, warum jemand der nichts zum Thema zu sagen hat, schreibt. Man denkt darüber nach, weil man was verstehen möchte. So gehts mir jedenfalls. Wenn wir nicht drüber nachdenken würden, dann wären wir noch oben auf den Bäumen.
Udo K. schrieb: > damit das Forum hier nicht noch unter Tante Emma Niveau absackt... Das ist wohl mittlerweile gelungen. Dein Beitrag ist da ein Stück vom Kuchen. Udo K. schrieb: > der nichts ---------- Nach mehrfachen lesen des Datenblattes https://datasheets.maximintegrated.com/en/ds/MAX1487-MAX491.pdf Kann ich keine einzige Empfehlung für das weglassen erkennen. Ganz im Gegenteil: Alle Empfehlungen im dem Datenblatt verwenden die Terminierung. Wenn es mittlerweile zum guten Ton gehört, die Ansagen der Datenblätter in den Wind zu schlagen, ....... Niveau, und so ....
HildeK schrieb: > Andi B. schrieb: >> Muß ich hier wirklich an den Threadtitel "RS485 >> Abschlusswiderstand nötig bei 2 Devices?" erinnern? > > Nein, musst du nicht. > Aber seine Frage beinhaltet doch eher folgendes: > - bei mehr als zwei Teilnehmern scheint ihm klar zu sein, dass er die > Terminierung braucht > - ist das anders bei nur zwei Teilnehmern? Nun bei seinen Treibern (MAX487) braucht er auch bei mehreren Teilnehmern bei seiner Länge keine externen Abschlusswiderstände. Die internen reichen völlig. Genau genommen wird's sogar mit mehreren Teilnehmern etwas besser weil niederohmiger als mit nur 2 Teilnehmern. Viele hier scheinen noch immer nicht verstanden zu haben, dass Reflexionen in störender Form nur auftreten, wenn die Flankensteilheit hoch im Verhältnis zur Leitungslänge ist. Was aber genau bei diesen Treibern und den paar Metern nicht der Fall ist.
Hallo, ich kann das weglassen der Terminierung auch nicht gutheißen. Und wenn der MAX487 mit slew rate arbeitet dann ist das ein Sicherheitsfaktor obendrauf. Nur ohne eine ordentliche Terminierung kann auch slew rate nichts ausrichten, wenn der Bus, sprich die Kabel nix taugen, dann kann man eben nichts sicherstellen. Ich kann diese sinnfreie Diskussion zum weglassen der Terminierung schon lange nicht mehr folgen. Dafür fehlt jede Grundlagen. Das ist als wenn man Autofahrers empfielt ohne Sicherheitsgurt und ohne Airbag zu fahren. In 99% der Fahrten geht das gut.
Andi B. schrieb: > Glaub es jemanden der Ahnung davon hat Erscheint mir inzwischen auch als probate Methode. Andi B. schrieb: > keine externen Abschlusswiderstände. Die internen reichen völlig Das Ding hat keinen internen "Abschlusswiderstand". Da gibt es nur einen Eingangswiderstand, der aber extra hochohmig ist und mit den angegebenen 48k um gut 3 Zehnerpotenzen abseits irgendeines wirksamen Abschlusses ist. We frei darf man jetzt abhängig von der jeweiligen Ahnung ein Datenblatt interpretieren? Aber sei's drum, denn wer den Baustein gekauft und bezahlt hat, kann mit ihm letztlich machen was er will.
Die Frage war ob er nötig ist und der Fragesteller hat seine Anwendung genau spezifiziert. Darauf gibt es nur eine korrekte Antwort - Nein ist es nicht. Es schadet aber auch nicht wenn einem der zusätzliche Stromverbrauch und die paar Cent nicht stören. Wenn die Frage gewesen wäre ob es sinnvoll ist, bzw. welche Vor- oder Nachteile es hat, dann würde ich so manche Antwort hier verstehen. Kein Verständnis habe ich aber dafür, dass immer wieder Antworten gegeben werden auf Fragen die gar nicht gestellt wurden. Und immer wieder versucht wird eine Diskussion zu starten über ein Thema welches hier schon x-mal abgehandelt wurde und nur sehr wenig mit der eigentlichen Fragestellung zu tun hat. Übrigens, die Frage war auch nicht, wie hoch oder niedrig ein eventueller Abschlusswiderstand sein darf, soll oder muss. Und auch nicht welche Funktion er erfüllen soll - externe Störungen minimieren, Reflexionen vermeiden (welche hier gar nicht nennenswert auftreten), ... Das könnte man alles diskutieren in entsprechenden Threads. Ob das hier in diesem Thread Markus E. hilft, wage ich zu bezweifeln. Wenn man nur mal gelesen hat welche anderen Alternativen er angedacht hat, dann ist sein RS485 auch ohne extra externe Abschlusswiderstände (ja die internen sind auch Abschlusswiderstände denn ganz ohne Widerstand würde es natürlich auch bei diesen fail-safe Receivern nicht gehen) um Welten besser. Ich bin sicher dem Fragesteller wäre mehr geholfen worden, wenn man z.B. hervorgehoben hätte, warum RS485 über 35m um so viel besser ist als seine aufgezählten untauglichen Alternativen (UART,SPI,I²C,...). Aber die Theoretiker die wohl nur ihr eigenes Ego befriedigen wollen ohne zuzuhören, zerreden lieber den ganzen Thread mit in diesem Fall nebensächlichen Details.
Veit D. schrieb: > Das ist als wenn man Autofahrers empfielt ohne Sicherheitsgurt und ohne > Airbag zu fahren. In 99% der Fahrten geht das gut. Nicht alles was hinkt ist ein Vergleich. Absolut unpassend das da ist.
Hallo, das weglassen der Terminierung kann man erst mit Sicherheit sagen wenn man die Umgebung kennt, sprich den gesamten Aufbau und ihn ausreichend getestet hat. Pauschale Behauptungen "Terminierung kann man sich schenken" stehen daher Anfangs nicht zur Diskussion. Das kann erst im Nachgang eine Option sein, nur halte ich die Option für nicht sinnvoll. Und das RO vom MAX487 noch einen extra Pullup benötigt kann ich aus eigener Erfahrung auch noch beitragen.
Andi B. schrieb: > Die Frage war ob er nötig ist und der Fragesteller hat seine Anwendung > genau spezifiziert. Darauf gibt es nur eine korrekte Antwort - Nein ist > es nicht. Falsch. Die Vorgaben des Herstellers, die er im Datenblatt macht, zu verletzen ist immer Pfusch und daher sind für ein ordentliches Produkt, bei dem der Entwickler nicht für Pflichtverletzungen verantwortlich sein will, die Abchlusswiderstände sehr wohl nötig. Die Frage war eben nicht ob es auch ohne Abschlusswiderstände technisch funktioniert. Wenn schon Korinthen kacken, dann richtig. ;-)
Ralf D. schrieb: > Die Vorgaben des Herstellers, die er im Datenblatt macht, zu > verletzen ist immer Pfusch ... Ach, den Typen bekehrst du nicht mehr... Der will nur sein eigenes Ego befriedigen. Ihm ist halt glücklich damit, sich selber eine Frikadelle ans Knie zu nageln und kapiert nicht, dass er damit recht alleine ist.
Arduino Fanboy D. schrieb: > Ihm ist halt glücklich damit, sich selber eine Frikadelle ans Knie zu > nageln und kapiert nicht, dass er damit recht alleine ist. Ist er ja auch nicht! Was will man mehr, als Frikadelle am Knie :-)
Ralf D. schrieb: > Falsch. Die Vorgaben des Herstellers, die er im Datenblatt macht, zu > verletzen ist immer Pfusch Es spricht nichts dagegen, sich genau daran zu halten. Es spricht aber auch nichts dagegen, den Hintergrund zu beleuchten, ohne sich gegenseitig zum Deppen zu erklären. Das war schon in der Schule so: Verstehen ist auf lange Sicht besser als abschreiben oder auswendig lernen. Wie es bei RS-485 aussieht, wenn ein Treiber aktiv ist, wurde schon beleuchtet. Wenn sich die Reflexionen bei im Vergleich zur Länge geringer Bitrate zu dem Zeitpunkt bereits beruhigt haben, zu dem ein Async-Receiver sich für den Inhalt des Bits interessiert, ist eine Terminierung optional. Und dann kann der nicht unerhebliche Stromverbrauch der Terminierung interessant sein. Da es hier um 2-Draht RS485 geht, gibt es allerdings auch Zeiten, in denen kein Treiber aktiv ist. Da wird es dann schon interessanter, denn eine niederohmig abgeschlossene Leitung dürfte deutlich weniger auf Störungen reagieren.
:
Bearbeitet durch User
Markus E. schrieb: > wenn man nur einen Master und einen Slave hat, woran die > Leitung direkt angeschlossen wird Umso einfacher: In dem Fall kannst Du den Failsafe-Spannungsteiler am einen Ende und die Terminierung am anderen Ende direkt mit auf die beiden Platinen mit drauftackern und hast NULL Zusatzaufwand damit. Die Frage stellt sich also gar nicht. Problem gelöst, Thread ende.
:
Bearbeitet durch User
Andi B. schrieb: > Bei langsamen Treibern wie den MAX483 und 487, kannst du dir bei deiner > Leitungslänge auf jeden Fall die zusätzlichen externen > Abschlusswiderstände (und den Strom darüber) sparen. Die 35m lange Leitung hat eine Signallaufzeit pro Richtung von etwa 200ns. Beträgt bei konstanter Slewrate die Anstiegszeit des Signals von 0% bis 100% exakt das Vierfache der Signallaufzeit, also etwa 800ns, machen sich die Reflexionen nicht mehr störend bemerkbar. Nach einem gleichmäßigen Anstieg geht das Signal ohne Überschwingen in einen konstanten Pegel über. Ist die Anstiegszeit länger, schwingt das Signal noch ein wenig nach, aber mit einer Amplitude, die weit davon entfernt ist, im Empfänger Logikzustandswechsel auszulösen. Ist die Anstiegszeit aber um mehr als ca. 20% kürzer, kann das schon zu Problemen führen. In Figure 17 und 18 des Datenblatts, beträgt die Anstiegszeit gerade ca. 800ns. Somit sollten auch ohne Terminierung keine Probleme entstehen. Allerdings ist in der Tabelle die Anstiegszeit mit 250ns (min) bis 2000ns (max) angegeben, d.h. sie kann durchaus deutlich unter den 800ns liegen. Ist dies der Fall, kann man nur noch auf die terminierende Wirkung des Ausgangsimpedanz des Transmitters hoffen. Diese ist aber nirgends spezifiziert, schon gar nicht mit Min- und Max-Werten. Den einzigen Hinweis darauf geben die ersten beiden Diagramme auf Seite 5, die aber nur "Typical Operating Characteristics" wiedergeben. > Wer auf 35m und 9600 Baud bei diesen Treibern meint er müsse unbedingt > Abschlusswiderstände empfehlen, der hat sowas noch nie gemessen bzw. > fasselt Oberlehrerhaft von theoretischen Dingen, die er nicht richtig > verstanden hat. Etwas zur Kontrolle nachzumessen ist nie ein Fehler, kann aber immer nur Aussagen zu einzelnen Exemplaren liefern und ersetzt deswegen nicht das sorgfältige Durcharbeiten des Datenblatts. Und dort ist es wichtig, zu unterscheiden zwischen Werten, die garantiert werden (min/max), und solchen die meistens so Pi mal Daumen zutreffen (typical). Da im konkreten Fall die Übertragungsrate nicht sehr hoch ist, würde ich keine stromfressende Parallelterminierung verwenden, aber auch nicht gänzlich auch eine Terminierung verzichten. Stattdessen würde ich auf eine "suboptimale" Serienterminierung setzen (s. Anhang). Eine perfekte Serienterminierung würde die Kenntnis der Ausgangsimpedanz des Transmitters voraussetzen. Da diese aber exemplar-, spannungs- und temperaturabhängig ist, wird der Serienwiderstand so dimensioniert, dass er zusammen mit der Ausgangsimpedanz (Rtrans) auf keinen Fall kleiner als der Wellenwiderstand der Leitung ist. Im simulierten Beispiel liegt der Wellenwiderstand bei etwa 91Ω, weswegen der Serienwiderstand mit 100Ω dimensioniert wird. Liegt Rtrans nahe bei 0, so ist die Terminierung fast richtig, und man erhält am anderen Ende der Leitung eine schöne steile Flanke ohne Überschwingen. Liegt die Rtrans höher, stimmt die Terminierung nicht mehr, und es entstehen Reflexionen nicht nur auf Receiver-, sondern auch auf Transmitterseite. Da mit größerem Rtrans+Rser aber auch die Anstiegszeit am Eingang der Leitung zunimmt, sind die Reflexionen nicht störend. Am Ausgang der Leitung sind die Reflexionen als kleine Stufen erkennbar, dennoch steigt das Signal monoton an, so dass zu keinem Zeitpunkt die Low/High-Schwelle des Receivers in verkehrter Richtung durchlaufen wird. Selbst ein sehr giftiger Transmitter mit extrem kurzer Anstiegszeit und extrem kleiner Ausgangsimpedanz wird durch diesen Serienwiderstand gebändigt, weswegen man nicht unbedingt auf slewrate- reduzierte Typen zurückgreifen muss. Das Signal in der Simulation entspricht einem High- und Low-Bit einer Übertragung mit 38400 Baud (also dem Vierfachen von dem, was der TE benötigt). Das erste Diagramm zeigt die Signale für Rtrans=1Ω (grün), 200Ω (blau) und 500Ω (rot). Wie man sieht, sind die Signale in allen drei Fällen frei von Überschwingern, und selbst für Rtrans=500Ω (so hoch wird der Wert bei keinem RS-485-Transceiver sein) ist der Anstieg immer noch mehr als schnell genug, um unabhängig vom Abtastzeitpunkt des empfangenden UARTs eine zuverlässige High/Low- Erkennung zu ermöglichen. Im zweiten Diagramm ist zum Vergleich der Signalverlauf ohne den Serienwiderstand für Rtrans=5Ω gezeigt. Die starken Schwingungen können nicht nur zu Übertragungsfehlern führen, sie erhöhen wegen des mehrfachen Umladens der Leitungskapazität auch den Stromverbrauch.
Wenn schon man schon einen Irrsinns Aufwand betreibt, um eine einfache Schaltung, (die in der halben Zeit aufgebaut und gemessen wäre) zu simulieren, dann sollte man die üblichen Fehler vermeiden: - Einschalten des Simulators == Ausschalten des Hirns. - Einschalten des Simulators == Datenblatt nicht lesen. In der Simulation ist ziemlich alles falsch, was man falschmachen kann. - Abschlusswiderstand falsch eingezeichnet - Abschlusswiderstand hat den falschen Wert - Leitungswiderstand ist falsch - Impedanz des Treibers is völlig daneben - Nichtlinearitäten (ESD Schutzwiderstände und Dioden) sind nicht drinnen (und ja die kappen die ganzen Spannungsspizten...) - GND1 ist gleich GND2 - Spannungspegeln völlig daneben Sowas hatte man zu meiner Schulzeit auf einen Blatt Papier realistischer in 10 Minuten hinbekommen. Man braucht dazu nur die I-V Kennlinie des Treibers hernehmen, und Beacchten das der Reflexionsfaktor = ZL - ZW / (ZL + ZW) ist. Das die Schlussfolgerung richtig ist, zeigt nur wie gutmütig die Schaltung ist. Auf der einen Seite wird hier endlos herumgepöbelt, und jeder der etwas anderer Meinung ist als Dummsau beschimpft, von Leuten die NULL Ahnung haben. Dann werden die irrwitzigsten Fragen gestellt, anstatt den Blödsinnn einfach mal aufzubauen und nachzumessen. Sorry, wenn ich etwas frustriert rüberkommen, aber manchmal reisst mir echt der Geduldsfaden.
Udo K. schrieb: > In der Simulation ist ziemlich alles falsch, was man falschmachen kann. > > - Abschlusswiderstand falsch eingezeichnet > - Abschlusswiderstand hat den falschen Wert > ... Vielleicht solltest du dich nicht nur von Bildern beeindrucken lassen, sondern auch mal den Text dazu lesen. Udo K. schrieb: > Dann werden die irrwitzigsten Fragen gestellt, anstatt den > Blödsinnn einfach mal aufzubauen und nachzumessen. Das hat ja Andi bereits geschrieben und ist für einen Bastelaufbau mit Stückzahl 1 auch durchaus in Ordnung. Aber manchmal macht es eben mehr Spaß, etwas tiefer in die Materie einzudringen. > zeigt nur wie gutmütig die Schaltung ist. Genau darum ging es mir ja: Zu zeigen, wie man mit einfachen Mitteln die Reflexionen auf robuste Weise in den Griff bekommen kann, ohne dass man über im Datenblatt fehlende Informationen spekulieren muss. > Sorry, wenn ich etwas frustriert rüberkommen, aber manchmal reisst > mir echt der Geduldsfaden. Kein Problem, aber geh doch einfach draußen etwas spazieren anstatt dich hier im Forum unnötig zu stressen :)
:
Bearbeitet durch Moderator
Yalu X. schrieb: > Stattdessen würde ich auf > eine "suboptimale" Serienterminierung setzen (s. Anhang). Serienterminierung funktioniert in diesem Fall gut, auch wenn selbst sie nicht wirklich nötig wäre. Aber ich würde die Serienterminierung in jedem Fall symmetrisch einsetzen. Also auf A und B identisch, damit sich eingekoppelte Störungen weiter auf beide Signale identisch auswirken und damit im Differenzsignal in erster Näherung eliminiert werden.
Gute Idee das mit dem Spazierengehen :-) Die Idee mit dem Serienwiderstand musst du aber auf beiden Seiten machen. Sonst verlierst du die Vorteile der differenziellen Übertragung. Das geht auch nur gut definiert, wenn der Bus nur ein Ende hat. Abgesehen davon ist das überflüssig, weil die Treiber sowieso genug Serienwiderstand drinnen haben, damit da nichts wirklich böse schwingt. Ansonsten kann man das ja nicht verkaufen. Der Treiberausgangswiderstand liegt bei ca. 60 Ohm, geschätzt aus dem Datenblatt. Damit hat man ca. 120 Ohm differentiell (was für ein Zufall). Sollte es doch mal Überschwinger geben, kappen die ESD Dioden. Wenn dir der Stromverbraucch wichtig ist, dann nimm 120 Ohm mit 1nF in Serie zwischen + und -. Schönen Sonntag noch. Udo
Udo K. schrieb: > Die Idee mit dem Serienwiderstand musst du aber auf beiden > Seiten machen. Stimmt. Für die Behandlung der Reflexionen spielt das zwar keine Rolle, für die Symmetrie der Übertragung aber schon. > Der Treiberausgangswiderstand liegt bei ca. 60 Ohm, geschätzt aus > dem Datenblatt. Da sind sie wieder (was ich schon bei Andi kritisiert habe): Die Schätzungen, Spekulationen und Mutmaßungen zu allem, was im Datenblatt nicht wirklich drinsteht. Wenn dort als Anstiegszeit ein Intervall von 250ns bis 2000ns angegeben wird (dazwischen liegt immerhin ein Faktor von 8), heißt das für mich: Das Bauteil hat so hohe Exemplarstreuungen, dass ich man da nichts, aber auch gar nichts schätzen sollte. In diesem Fall geht man dann entweder den klassischen Weg mit der Parallelterminierung, oder man überlegt sich eben eine andere Lösung, die gleichermaßen von den fehlenden Informationen unabhängig ist. Aber darauf aufzubauen, dass der nicht spezifizierte Ausgangswiderstand schon irgendwie im gewünschten Bereich liegen wird, ist in meinen Augen keine sehr professionelle Vorgehensweise. > Schönen Sonntag noch. Danke, gleichfalls :)
Hab jetzt nicht alles gelesen, also Sorry wenn doppelt. Terminierung ist nötig. Andernfalls hätte die Leitung eine sehr hohe Impedanz. Dadurch entsteht a. eine Antenne und b. die Gefahr statischer Aufladung. Das durch c. - evtl. oversampling im Empfänger und den niedrigen Differenzspannungen des Senders - das Verhalten der Schaltung nicht vorhersagbar wird ist dann noch ein weiterer Punkt. Hoffe das dies zum Thema beiträgt. Bei d. - den Umgangsformen hier - halte ich aber alle Hoffnungen für vergeblich.
Yalu X. schrieb: > Da sind sie wieder (was ich schon bei Andi kritisiert habe): Die > Schätzungen, Spekulationen und Mutmaßungen zu allem, was im Datenblatt > nicht wirklich drinsteht. Wenn dort als Anstiegszeit ein Intervall von > 250ns bis 2000ns angegeben wird (dazwischen liegt immerhin ein Faktor > von 8), heißt das für mich: Das Bauteil hat so hohe Exemplarstreuungen, > dass ich man da nichts, aber auch gar nichts schätzen sollte. Da sprichst du ein Problem an, vor welchem jeder seriöser Entwickler heutzutage steht und wo es IMO kein wirklich befriedigende Antwort gibt. Auch wenn es hier nun komplett off-topic ist, nun auch von meiner Seite, die zwei Extreme zum Nachdenken - 1) früher hat man Schaltungen gebaut, vermessen und überlegt wo welche Toleranzen auftreten können und hat so gute Schaltungen entwickelt. Man wusste, dass ein Datenblatt nur einen Teil des tatsächlichen Verhaltens beschreibt und man wusste bzw. erarbeitete sich die Dinge, die das Datenblatt verschweigt. Vielleicht gibt's ja noch den einen oder anderen der z.B. Bob Pease und seine Schriften kennt. 2) ein etwas anderer Ansatz ist der, alles was nicht im Datenblatt drinnen steht, existiert auch nicht. Man kann damit herrlich worst case Szenarien für alle angegebenen Parameter berechnen und sicher sein, dass alles 100% funktioniert, weil ja spezifiziert. Der 1) Ansatz ist vor allem für die "nur" Theoretiker unbefriedigend auch weil heutzutage die allermeisten nicht mehr das umfassende Wissen haben, um die Zusammenhänge auch richtig einzuordnen und weil man ja mathematisch nicht beweisen kann, dass das was man da so baut auch wirklich funktioniert. Und dann könnte ja jemand kommen und fragen, wo ist der Beweis und die Berechnung dafür, dass dein Gerät auch wirklich funktioniert. Allein die Tatsache dass das Gerät tut was es soll, reicht heute nicht mehr. Auch wenn die meisten der Entwicklungen aus dieser Zeit auch heute noch nach mehr als 30, 40 Jahren noch immer funktionieren. Der 2) Ansatz ist sehr bequem für den Entwickler. Sorry, aber ich sehe das vor allem bei meinen deutschen Entwicklerkollegen mittlerweile ziemlich oft. Wenn's der Sub-lieferant nicht spezifiziert, dann geht es auch nicht. Damit hab ich den Beweis, dass ich die gewünschte Funktion gar nicht realisieren kann. Egal ob mir ein anderer ein Gerät vorführt, wo es sehr wohl geht, ich kann beweisen, wenn ich die Datenblattangaben zusammenrechne, dann kann es gar nicht funktionieren. Und der Mitbewerber macht fröhlich jahrzehntelang gute Geschäfte mit Geräte die eigentlich gar nicht funktionieren können.... Jeder der beiden Extreme hat was für sich. Ich persönlich bewege mich mittlerweile wieder etwas Richtung 1). Ein Grund ist z.B. das heutzutage vieles gar nicht mehr im Datenblatt drinnen steht. Man muss sich ja nur die aktuellen Datenblätter von 08/15 Transistoren anschau'n und vergleichen, was da vor 30 Jahren noch alles spezifiziert war. Und nein, es steht nicht deshalb nicht viel drinnen und es sind nicht deshalb die Toleranzen so hoch, weil die Teile heute so schlecht sind, sondern ganz einfach deshalb, weil man in der Massenfertigung nicht die z.B. pA messen will. Das würde Zeit kosten. Und darum schreibt man halt dann im Datenblatt gleich nA oder µA rein, weil bei so einem Wert nie ein Kunde reklamieren kann, auch wenn er überhaupt nie gemessen wurde in der Fertigung und der Bauteil immer 1000 fach besser ist. Aber auch komplexere Bauteile sind oft nur zum Teil und oft, ja sehr oft sogar, teilweise falsch spezifiziert. Hab ich irgendwo schon i.MX7 geschrieben? Zum Thema, nein, der Ausgangswiderstand des MAX487 streut nicht so extrem dass sich die worst case Werte der Anstiegsgeschwindigkeit im Datenblatt theoretisch erklären lassen würden. Schon gar nicht mit der Kabelkapazität in diesem Thread. Das Silizium und der Prozess in dem der gefertigt wird, ändert sich nicht mit der Mondphase. Und zusammen mit den anderen Angaben über maximale Treiberleistung, lässt sich sehr wohl ablesen, dass der keinen < 10 Ohm Ausgangs-R haben kann. Bei Datenblattangaben ist es heutzutage immer öfter auch übliche, dass einfach irgend ein Faultier irgendwas reinschreibt mit praktisch unmöglich großer Toleranz, nur weil er zu faul ist das richtig nachzurechnen bzw. zu messen und mit der richtigen Gaußschen Verteilung zu bewerten. Er macht sich das Leben viel einfacher, wenn er den Wert gar nicht reinschreibt, oder nur mit exorbitanter Toleranz. So gesehen ist die Simulation super und man kann auch eine Menge daraus ablesen. Man sollte aber schon auch mal das Ganze gemessen haben und sich dann auch die Frage stellen, warum zeigt mir die Simulation Dinge die in der Praxis gar nicht vorhanden sind und umgekehrt. Dann kann man auch was daraus lernen. Z.B. das in der hier angefragten Anwendung ein Abschlusswiderstand wegen Reflexionen überflüssig ist, aber auch wenn man externe Störer betrachtet, relativ hochohmige Verzugswiderstände die einen Differenzpegel einstellen zu Zeiten wo kein Sender aktiv, auch bei "fail-save" Receivern viel sinnvoller wären.
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.