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?
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/
Andi aka
MarkU
MarkU
rohkumarj
rohkumarj
rohkumarj