RS485-Netzwerk schlägt fehl, wenn SP485-Chip durch MAX485 ersetzt wird

Ich habe ein RS485-Kommunikationsnetzwerk wie unten gezeigt erstellt.

{PC}->[FT232->RS485](120 Ohm)<----Twisted Pair (2 Drähte)------>(120 Ohm)[RS485 -> MSP430]

Hier fungiert der PC als Master und sendet die Daten an MSP430. Daten sind ein einzelnes 8-Bit-Zeichen. Ich verwende CBUS-Pins, um die RS485-Chips in den Empfangsmodus und den Sendemodus zu versetzen, indem ich den CBUS-Bitbang-Modus verwende. Danach sende ich das Zeichen einfach im seriellen Format.

Der PC versetzt den RS485-Chip in den Sendemodus und sendet die Daten.

Auf der MSP430-Seite versetzt MSP430 den Chip in den Empfangsmodus und wartet darauf, dass das Zeichen empfangen wird.

Auf beiden Seiten verwende ich 120R Abschlusswiderstand.

Wenn ich jetzt den SP485-Chip von EXAR (ähnlich wie MAX485) auf beiden Seiten verwende, funktioniert das System wunderbar. Keine Probleme.

{PC}->[FT232->SP485](120 Ohm)<----Twisted Pair (2 Drähte)------>(120 Ohm)[SP485 -> MSP430]

Die Übertragung des Zeichens erfolgt problemlos.

Wenn ich andererseits SP485 auf der PC-Seite und MAX485 auf der MSP430-Seite verwende, kann das System das Zeichen einfach nicht empfangen.

{PC}->[FT232->SP485](120 Ohm)<----Twisted Pair (2 Drähte)------>(120 Ohm)[MAX485 -> MSP430]

Bitte beachten Sie, dass ich die Schaltung nicht ein bisschen geändert habe, ich habe nur MAX485 anstelle von SP485 eingebaut. Die Länge der Übertragungsleitung beträgt etwa 1,5 Meter und ich verwende auf beiden Seiten Abschlusswiderstände von 120 Ohm. Ich habe kein Oszilloskop, also habe ich eine LED an den RO-Pin von MAX485 auf der MSP430-Seite angeschlossen, um den Empfang von Zeichen zu überprüfen. Wenn ich das Zeichen von der PC-Seite sende, leuchtet die LED am RO-Pin auf, um anzuzeigen, dass einige Daten kommen, aber der Mikrocontroller weigert sich, sie zu bestätigen. Ich habe auch den MAX485-Chip zweimal gewechselt, um zu überprüfen, ob es das Problem des ICs ist.

Hat irgendjemand eine Lösung dafür?

Welchen Wellenwiderstand hat Ihr Verbindungskabel? Welche Datenrate verwendest du? Wie viel Zeit nach Aktivierung der Übertragung erzwingen Sie das erste Datenbit? Was bedeutet "kann das Zeichen einfach nicht empfangen"?
Kannst du dir ein Oszilloskop ausleihen? Der RO-LED-Test zeigt keine dynamische Signalumschaltung an oder zeigt, ob es Belastungs- oder Anstiegsgeschwindigkeitseffekte gibt. Besteht Ihr RO-LED-Test, wenn Sie Exar SP485 auf beiden Seiten verwenden?
Welche Datenrate verwenden Sie - Exar SP485 beansprucht eine Datenrate von 5 MBps, Maxim MAX485 beansprucht nur eine Datenrate von 2,5 MBps. Maxim MAX485 oder MAX485E? (Der MAX485E hat einen höheren ESD-Schutz, ist aber in der Anstiegsgeschwindigkeit begrenzt). Haben Sie Linear Technology LTC485 (direktes Ersatzäquivalent von Maxim MAX485) ausprobiert?
@ Andy alias - Ich verwende ein 1,5-Meter-Litzenkabel für allgemeine Zwecke. "das Zeichen kann einfach nicht empfangen werden" bedeutet, dass auf der MSP40G2553-Seite kein Empfangsinterrupt erkannt wird.
Nein, ich kenne niemanden, der gerade ein Oszilloskop besitzt. Ich verwende den FT232RL UART bei 9600 bps und übertrage ein einzelnes Zeichen. Wenn ich SP485 verwende, werden keine Probleme beobachtet, ich kann die Daten perfekt empfangen Budget und die von Ihnen erwähnten Teile sind auf dem lokalen Markt nicht erhältlich.
"Besteht Ihr RO-LED-Test, wenn Sie Exar SP485 auf beiden Seiten verwenden?" Die mit dem RO-Pin verbundene LED verhält sich für SP485 und MAXx485 unterschiedlich. 1) Bei beidseitiger Verwendung von SP485 leuchtet die RO-LED (auf der RX-Seite in der Nähe von MSP430) kontinuierlich. 2) Wenn Sie SP485 auf der TX-Seite und MAX485 auf der RX-Seite verwenden, blinkt die RO-LED auf der RX-Seite Bitte beachten Sie, dass ich in diesem Fall ASCII 'A' mit 9600 bps in einer Schleife mit einem Intervall von 1 Sekunde zwischen jeder Übertragung von sende 'A'

Antworten (2)

Haben Sie Pull-Up/Pull-Down-Vorspannungswiderstände in den Leitungen? Diese Vorspannungswiderstände legen den Zustand der Leitung fest, wenn sie im Leerlauf ist, dh keine Geräte sie ansteuern. Das Verhalten der Treiberchips ist durch den Standard nicht definiert, wenn die Leitungen beide auf Null Volt schweben dürfen. Einige Treiber implementieren eine Funktion namens "Fail-Safe", wie der MAX485, mit dieser Funktion sind keine Vorspannungswiderstände erforderlich.

Siehe Abschnitt Ausfallsichere Vorspannungswiderstände in diesem Anwendungshinweis.

Schauen Sie sich Ihr Grundstück an. Damit RS485 korrekt funktioniert, muss die Masse des Transceivers verbunden werden. Weitere Informationen zu RS485-Gründen: http://www.chipkin.com/rs485-cables-why-you-need-3-wires-for-2-two-wire-rs485/

... aber nur an einem Ende, oder Sie haben ein Erdschleifenproblem.
Sie erhalten eine Masseschleife, wenn Sie mehr als eine Masseverbindung haben. Aber Sie müssen diese eine Erdverbindung haben, ohne die seltsame Dinge passieren werden.
Wenn beispielsweise zwei Geräte mit der Masse an der Stromversorgung verbunden sind und ihre RS485-Masse nicht isoliert ist, ist eine separate Masseverbindung nicht erforderlich. Wenn jedoch 2 Geräte nur mit den Signalen RS485 A und B verbunden sind (wie es in der Frage beschrieben zu sein scheint), ist eine Erdungsverbindung erforderlich.
Ich hätte klarstellen sollen - der Kabelschirm (falls verwendet) sollte nur an einem Ende angeschlossen werden. Wenn bei bestimmten Anwendungen das Risiko besteht, dass die Gleichtaktspannung außerhalb des zulässigen Bereichs liegt, ist ein dritter (gemeinsamer oder Masse-) Draht erforderlich.
Ich werde nicht ablehnen, da ich sicher bin, dass Sie technisch korrekt sind, aber eine Menge CCTV- und andere Geräte der Welt verwenden "schwebendes" RS485, entweder vom Design her oder durch faule Installation, normalerweise ohne Probleme.