Dies ist eine Fortsetzung von SN65176 RS485-Konkurrenz .
Ich habe das Konfliktproblem gelöst, indem ich nach dem Stoppbit eines mit dem PC verbundenen XS201A RS485-Treibers mindestens 26 us gewartet habe, bevor ich vom SN65176 gesendet habe. Es reicht jedoch nicht aus, Konflikte zu vermeiden.
Anfänglich bestand mein PIC-seitiges Terminierungsnetzwerk aus einem einzelnen differentiellen 100-Ohm-Terminator:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Sobald der XS201A mit dem Senden fertig ist, kehrt die Differenzspannung zu einem mittleren Wert zurück. Dieser Durchschnittswert ist jedoch kein 0-V-Differential, wie ich erwarten würde. Stattdessen zieht der Fahrer die Linie stark auf halbem Weg zum Markierungszustand. Dabei denkt er, dass das ein Startbit ist und gibt ein „0“-Byte aus (oder ein korruptes Teilbyte von der PIC-Seite, wenn er kurz danach zu senden beginnt).
Ich habe dann ein Bias-Netzwerk erstellt, um den Zustand "Leerzeichen" (Gegenteil von Markierung) nachzuahmen, so dass:
Simulieren Sie diese Schaltung
Das Hinzufügen dieses Bias-Netzwerks hat dazu geführt, dass meine Fehlerrate über ein paar tausend Bytes jetzt etwa 0,4 % beträgt (von 100 %). Trotz dieser Verbesserung gibt es jedoch keine sichtbare Änderung der Ruhezustandsspannungen - der XS201A überschreibt im Wesentlichen mein Vorspannungsnetzwerk und kehrt die Polarität des mittleren Widerstands um.
Meine Fragen sind:
RS-485 hat eine definierte Differenzspannung sowohl am Mark als auch am Space. Der Ruhezustand liegt vor, wenn die Spannung V_diff –0,2 V < V_diff < 0,2 V ist; Dies geschieht, indem der Sender in einen Hi-Z-Zustand versetzt wird, normalerweise durch Steuern des RTS-Signals vom UART. RTS wird dann verwendet, um den Sender ein-/auszuschalten, von Hi-Z auf den definierten Spannungspegel für Mark/Space.
Alte Frage, aber...
Es gibt so etwas wie eine ausfallsichere Vorspannung, bei der die Leitungen leicht in einem von nur zwei gültigen Zuständen gehalten werden , in denen sich das verdrillte Paar befinden sollte.
Wenn dies bei Ihrem XS201A auftritt, könnte dies bedeuten, dass es tatsächlich wie vorgesehen funktioniert. Die unerwarteten Spannungen könnten durch eine hackige DC-DC-Wandlung erklärt werden, wie sie es bei den alten PIC/AVR-Programmierern taten. Wenn das ein Problem ist, würde ich empfehlen, sich einen geeigneten Adapter mit eigener Stromversorgung zu besorgen.
Eine ausführlichere Erläuterung der ausfallsicheren Vorspannung auf RS485 finden Sie in diesem Ti-Anwendungshinweis .
Um diese Probleme zu umgehen, habe ich den XS201A schließlich ganz aufgegeben. Es hat keine richtige Hardware-Signalisierung und seine Bias-Eigenschaften waren problematisch.
Jasen
Jasen
Reinderien
Marko Buršič
Reinderien