Seltsame Spannungspegel in einem Multi-Slave-Vollduplex-RS485-Bus

Ich arbeite an einem Projekt mit RS485-Bus für die Kommunikation. Hier sind Designparameter:

  • Der Bus kann 1 Master und 30 Slaves enthalten
  • Die Konfiguration ist Vollduplex mit 4 Drähten.
  • SLAVE(Y-Z) -> MASTER(A-B)Alle zum Senden angeschlossenen Slaves
  • SLAVE(A-B) -> MASTER(Y-Z)Alle Slaves zum Empfang angeschlossen
  • Der Meister hört immer zu. (Empfang aktiviert)
  • Der Meister fährt immer. (Laufwerk aktiviert)
  • Sklaven hören immer zu. (Empfang aktiviert)
  • Sklaven fahren immer NICHT . Außer wenn sie Daten senden wollen dann Laufwerk freigeben. Laut Datenblatt sind die Ausgänge ohne Antriebsfreigabe hochohmig.
  • Master und alle Slaves verwenden max491.
  • Es gibt eine einzige 12-V-Stromquelle. Jeder Slave und Master ist parallel zueinander an diese Stromquelle angeschlossen und verfügt über eigene Abwärtswandler, um die benötigten Spannungen zu erzeugen. Somit haben alle Systeme eine gemeinsame Basis.
  • Ich habe es auf der Master-Seite mit Failsafe Biasing versucht und es hat funktioniert. Mit fehlersicherer Vorspannung von 4 Slaves und 1 Master funktioniert die Kommunikation einwandfrei. (Aber die Frage betrifft die Berechnung der Vorspannung von 20 Sklaven)

ÜBERWACHUNG

These plots are excel plots simplified from actual scope measurements

Wenn das System aus 1 Slave und 1 Master besteht, sind die Spannungen am Slave-YZ-Bus (Slave-Sendebus) wie folgt:

1 Sklave, 1 Herr

So erfolgt die Kommunikation erfolgreich.

Wenn das System aus 2 Slaves und 1 Master besteht, sind die Spannungen am Slave-YZ-Bus (Slave-Sendebus) wie folgt:

2 Sklaven, 1 Herr

So gelingt die Kommunikation. Wie wir sehen, gibt es eine Änderung der Spannungspegel. Die Kommunikation erfolgt, weil die Spannungen immer noch auf den richtigen Seiten der mittleren sinnlosen Zone liegen (die + -0,2 V von der Mitte entfernt ist).

Wenn das System aus 3 Slaves und 1 Master besteht, sind die Spannungen am Slave-YZ-Bus (Slave-Sendebus) wie folgt:

3 Sklaven, 1 Meister

Wie Sie sehen, findet auf diese Weise keine Kommunikation statt, da die Spannungen auf der falschen Seite der sinnlosen Zone liegen. Und Ebenen sind (für mich) seltsam.

Für die weitere Analyse habe ich 4 Slaves und 1 Master konfiguriert. Hier ist das Ergebnis:

4 Sklaven, 1 Meister

Die Spannungen steigen etwas mehr an.

Die Spannungsdifferenz zwischen Y- und Z-Leitung in jeder Konfiguration zeigt, dass der max491 im Hochimpedanzmodus eine ernsthafte Impedanz auf der Leitung hat.

Ich habe diese max491-Chips bei einem lokalen Händler gekauft und dann den Preis von digikey überprüft. Was ich gesehen habe, ist, dass meine Preise dreimal niedriger sind als die Digikey-Preise für den Chip. Vielleicht sind die Chips Klone. Ich weiß nicht. Aber ich muss sie nutzen.

FRAGE

Die Frage ist, wie kann ich diese "parasitäre" Impedanz berechnen und dafür eine Vorspannungsschaltung aufbauen und was kann der Grund sein? Ich bin ein bisschen durcheinander. Ich werde 20 Slave- und 1 Master-Konfiguration bauen und kann mir nicht vorstellen, wie hoch die Spannungen sein werden.

ANMERKUNGEN

  • Es gibt kein Problem auf dem Slave-Empfangsbus
  • Diese Beobachtungen sind nahezu gleich, wenn ein Master-seitiger Abschlusswiderstand verwendet wird.
  • Es ist nicht möglich, dass 2 oder mehr Slaves gleichzeitig senden. Es ist ein Hardware-Sync eingebaut. Dies ist getestet.

Bearbeiten

Der Schaltplan ist so. Nichts mehr. Die durchschnittliche Kabellänge zwischen Slaves beträgt 1,5 Meter. Kabel ist CAT6 - UTP8. Zum Senden und Empfangen werden Twisted Pairs verwendet.Schema

Slave-Datenblatt vielleicht?
Auch Sklaven benutzen den max491. Mcu ist atmega328.
Wo ist der Schaltplan?
Wird hinzugefügt werden. :)
@MertGülsoy "Der Schaltplan ist so. Nichts weiter." Wenn dieser Schaltplan vollständig ist, fehlt eine gemeinsame Erdung zwischen den Geräten. Die wahrscheinliche Auswirkung dieser fehlenden Referenz ist schwer zu erraten, ohne viele weitere Details zu den Master-/Slave-Geräten und ihren Stromquellen (ich stelle fest, dass Sie keine Details zu Stromquellen angegeben haben - ist das geheim oder können Sie weitere Informationen geben?) . Oder Sie könnten analysieren, wie Sie am besten die Gemeinsamkeiten hinzufügen und es versuchen. Oder haben Sie Tests durchgeführt und entschieden, dass eine gemeinsame Masseverbindung nicht erforderlich ist? Wenn ja, teilen Sie bitte diesen Testaufbau und seine Ergebnisse mit.
@SamGibson Es tut mir leid, aber ich kann die Schaltung nicht teilen. Es ist eine Art Geheimnis. Aber ich werde mein Bestes tun, um so viele Informationen wie möglich zu präsentieren. Ich habe die Details hinzugefügt, von denen Sie erzählt haben. Vielen Dank für Ihr Interesse.
@MertGülsoy Danke für das Update. "Ich kann die Rennstrecke nicht teilen." Das ist ein Problem, da Worte hier nicht ausreichen (zu mehrdeutig usw.) für eine effiziente Fehlersuche :-( "Es gibt eine einzige 12-V-Stromquelle." Es ist nicht klar, wie genau die Leistung ohne Schaltplan und Teilenummern usw. verteilt wird „ Jeder Slave und Master hat seine eigenen Abwärtswandler, um die benötigten Spannungen zu erzeugen. Somit haben alle Systeme eine gemeinsame Basis.“ Ich kann mich noch nicht einigen, abhängig von den genauen „Abwärtswandlern“ usw. usw. Ihr neues Update zu Die ausfallsichere Vorspannung (die eine Massereferenz hinzufügt) ist ein Hinweis. Viel Glück!
Die Frage des Massedurchgangs lässt sich leicht überprüfen. Die Pins 6 und 7 des MAX491 sind geerdet. Führen Sie eine Widerstandsprüfung zwischen Pin 7 an jedem Treiber durch. Master-Erde zu Slave-Erde für alle Einheiten. Was ist der maximale Widerstand? Es sollte besser weniger als etwa 10 Ohm sein. Verwechseln Sie das, was Ihrer Meinung nach passiert, nicht mit dem, was wirklich passiert, nicht wenn Sie es überprüfen können. Beachten Sie, dass eine Spannungsprüfung von der Master-Erde zur Slave-Erde nicht ausreicht. Wenn keine Kontinuität besteht, gibt es wenig oder keine Spannungsdifferenz.
Ich werde es überprüfen und mit dem Ergebnis hierher zurückkommen.

Antworten (2)

Es sieht für mich so aus, als ob Ihre DE-Leitungen auf den Sklaven falsch gefahren werden. Ihre Busspannungen sind (qualitativ) das, was ich erwarten würde, wenn die "nicht ausgewählten" Slaves tatsächlich mit einem hohen Eingang zu jedem "nicht ausgewählten" Slave-DI aktiv getrieben werden.

Wenn die Anzahl der Slaves zunimmt, nimmt die Gesamtbusansteuerung von den nicht ausgewählten Einheiten zu, und der ausgewählte Ausgang hat immer weniger Einfluss auf die Busspannung.

Die offensichtliche Prüfung wäre, die von Ihnen gezeigten Effekte zu erzielen, dann den ausgewählten Slave-Chip aus der Schaltung zu ziehen und die Busspannung zu betrachten. Wenn die anderen Chips inaktiv sind, sollte die Bus-Differenzspannung auf ungefähr Null abfallen.

Heh. Oder der Grund dafür, dass Ihre Chips 1/3 des Digikey-Tarifs kosten, könnte natürlich sein, dass sie nicht richtig funktionieren und die DE-Leitung keine Wirkung hat. Ich sag bloß'.

Scheint, als ob DE-Linien nur die hohe Seite schneiden. Die niedrige Seite ist immer noch verbunden (nicht hochohmig), da sich ändernde Spannungen am nichtinvertierenden Ausgang niedrig und am invertierenden Ausgang hoch sind.
@MertGülsoy - Das ist sowohl irrelevant als auch falsch. Effektiv verbindet sich jeder Ausgang je nach Schaltungsstatus entweder mit Masse, +5, oder stellt keine Verbindung her. Aber es spielt keine Rolle. Mach es wie ich gesagt habe. Richten Sie die Schaltung wie gezeigt ein und ziehen Sie dann den ausgewählten Slave (den Sie für ausgewählt halten). Stellen Sie sicher, dass alle Slaves mit Strom versorgt werden. Geht die Bus-Differenzspannung auf Null? Wenn nicht, haben Sie Aktivierungsprobleme.
Ich werde versuchen, das Ergebnis hier zu schreiben.
Nach gründlicher Inspektion hier mit den gegebenen Antworten denke ich, dass diese Antwort akzeptabel ist, weil ich zu denselben Schlussfolgerungen gekommen bin. Danke schön.

Um die Terminologie zu klären, ist die von Ihnen beschriebene Topologie RS-422, da RS-485 ein Zweidraht-Halbduplex-Schema ist. Ich habe Tausende von großen RS-422-Netzwerken ohne die Probleme, die Sie haben, bereitgestellt.

Überprüfen Sie, ob Sie die richtige Übertragungsaktivierungslogik verwenden. Sie ist der Empfangsfreigabelogik entgegengesetzt. Bringen Sie ein Oszilloskop oder eine Hochgeschwindigkeits-Logiksonde an jedem an, um seinen Zustand zu bestätigen und sicherzustellen, dass es keine Transienten gibt.

Die von Ihnen ausgewählten Geräte sind nicht auf die Anstiegsgeschwindigkeit beschränkt, sodass Kabelimpedanz, Kabelkapazität, Reflexionen, Abschlüsse und Übersprechen zu kritischeren Aspekten werden. Sie sollten für jeden dieser Faktoren ein einzelnes Experiment zur Eliminierung von Änderungen durchführen.

Wenn Sie Ihre Baudrate drastisch verlangsamen, erhalten Sie möglicherweise mehr Hinweise auf die Ursache Ihres Problems.

Ihre Methode zur Darstellung von Busspannungen könnte Teil des Problems sein, wenn sie keine hochohmigen Differenzsensoren verwendet.

Sie haben ausdrücklich erwähnt, dass die Bedingungen die gleichen sind, wenn die Terminierung auf der Masterseite verwendet wird. Je nach Verteilungstopologie und Taktfrequenz kann es erforderlich sein, an beiden Enden des Kabels Abschlüsse zu platzieren. Stellen Sie sicher, dass Sie reine Widerstandsabschlüsse haben - nicht alle Filmwiderstände sind es.

Wenn das Problem dadurch nicht behoben wird, posten Sie Ihren Schaltplan, die Kabelspezifikationen, die Abschlusswerte und -orte sowie Bilder Ihres Testaufbaus, um weitere Einblicke zu ermöglichen. Sie sollten auch kommentieren, wie Sie Ihre Busmessungen durchgeführt haben, da die Diagramme offensichtlich eine sehr geringe Bandbreite aufweisen und daher wichtige Details fehlen. Und vergessen Sie nicht, bei solchen Diagrammen eine geeignete X-Achsen-Skala einzufügen.