Forum: Mikrocontroller und Digitale Elektronik RS485 (PC<->MAX485) Wirsches Verhalten mit PullUp/PullDown


von Sebastian Feike (Gast)


Lesenswert?

Hallo,

ich habe ein Problem bei dem ich nicht mehr weiterkomme geschweige denn
durchblicke, vielleicht finde ich hier ja den entscheidenden Hinweis.

Mein SetUp ist recht uebersichtlich, ich habe einen AVR Controller
an dessen UART ein Max485 haengt. Auf der "anderen Seite" einen preis-
werten USB auf RS485 Halbduplex Adapter. Dazwischen sind ca 10 cm
Experimentierkabel zwischen den Leitungen A und B, also Halbduplex.

Die Platine mit dem MAX485 wird von einer anderen Stromquelle gespeist,
ein Steckernetzteil an der selben Phase wie der PC. Enden Terminiert
mit 390 Ohm.

Wenn ich den MAX485 aus dem PC speise, klappen ein paar Moeglichkeiten
mehr, aber das ist eher uninteressant als Anwendungszweck.

Nun zudem was klappt: Eigentlich alles, WENN ich Leitung A vom MAX
an Leitung B vom USB Dongle haenge und umgekehrt. Dazu wird die
A Leitung (MAX Seitig) mit einem 120 Ohm Widerstand auf +5V und
die B Leitung mit 120 Ohm auf GND am PC gelegt und die B Leitung am
MAX zusaetzlichmit mit 120 Ohm gegen GND vom MAX.

Oder: Es wird die B Leitung am PC auf +5V gelegt und GND vom
PC und vom MAX bleiben unberuehrt.

Und nur so, kann ich in beide Richtungen fehlerfrei senden und 
empfangen.
Ich habe alle weiteren Moeglichkeiten durchprobiert (+5V und GND vom
PC, beides vom MAX, A an A und B an B, etc). Bei manchen Kombinationen
kann ich nur in eine Richtung Daten uebertragen, bei anderen gar nicht,
bei anderen kommt Datenmuell an.

Nehmen wir mal ganz billig an die Beschriftung vom Dongle ist falsch,
das wuerde das A an B Problem klaeren, aber in meinem Verstaendnis
sollte es doch reichen nur A an A, B an B, und egal wer die PullUps
und PullDowns macht reichen.

Und um noch einen draufzusetzten: Ich vergesse immer ob der PullUp an
A oder B muss, und immer wenn ich neu google und eine andere Quelle
lese, ists mal so und mal andersrum. Dazu schwanken die Widerstands-
werte zwischen 120 und 22k Ohm.

Wird da vielleicht jemand schlau raus?

von besupreme (Gast)


Lesenswert?

Immer Potentialausgleich zwischen den Bausteinen verwenden. Sonst geht's 
halt nur mit Glück. Die Werte für die Abschlußwiderstände kannst du 
überall was anderes finden, weil es dem einen 'nur' auf einen bestimmten 
Ruhezustand ankommt, und der nächste irgendein Kabel mit bestimmter 
Impedanz verwendet und vielleicht auch großer Länge.

von Sebastian Feike (Gast)


Lesenswert?

Wenn ich Potentialausgleich mit einer dritten Leitung herstelle und
zusaetzlich den Strom fuer den MAX aus dem PC Netzteil beziehe
passiert folgendes:

Ohne PullUps und/oder PullDown empfaengt der PC keine Daten. Sende ich
vom PC Daten, kommen diese nicht an, statt dessen wird bei einem 
"*PING#"
ein FF vom Adapter an den PC "gespiegelt".

Mit PullUp und PullDown empfaengt der PC das vom MAX gesendete 
einwandfrei,
jedoch spiegelt der Adapter im Falle des Sendens ein FF FF 00 an den PC
zurueck. Ankommen tut auch hier nichts.

von besupreme (Gast)


Lesenswert?

Jetzt gibt's noch ein paar Möglichkeiten zur Fehlersuche.
Ich würde zuerst versuchen, die Widerstände mit 120 Ohm gegen einen 
höheren Wert zu ersetzen. Ich erinnere mich ganz dunkel, daß der Bus 
früher bei Modicon abgeschlossen wurde  in der Art wie (+5V) -330R- (A) 
-330R- (B) -330R- (GND). Leider bin ich mir jetzt nicht mehr 100% 
sicher, ob's von den 5V zuerst auf (A) oder auf (B) ging, aber der 
Abschlußwiderstand für das Adernpaar insgesamt ging in die Richtung 
160-180 Ohm symmetrisch mit Vorspannung.

Außerdem könnte es vielleicht an der Konfiguration des 485 Umsetzers 
liegen. Bei FT232 Umsetzern zumindest gibt es da eine Wahlmöglichkeit 
zwischen manuellem und automatischem RX/TX Umschalten. Da stecke ich nur 
(noch) zu wenig in der Meterie drin.

von Juergen G. (jup)


Lesenswert?

Bei 5V und dem MAX485 nehme ich 380 Ohm Pull R's.

A PullUp
B PullDown

zwischen A un B dann ein 120 Ohm R mit einem Jumper in Serie

ob Du den 120 Ohm R aktivieren musst, haengt von der Leitungslaenge und 
der Position deines Geraetes im Bus ab.

von Olaf (Gast)


Lesenswert?

> ich habe ein Problem bei dem ich nicht mehr weiterkomme geschweige denn
> durchblicke, vielleicht finde ich hier ja den entscheidenden Hinweis.

Hast du keinen Oszi? Das Problem liesse sich mit einem Bild vermutlich 
in 5Min klaeren.

> Mein SetUp ist recht uebersichtlich, ich habe einen AVR Controller
> an dessen UART ein Max485 haengt.

Wer schaltet die Signalrichtung um? Schaltest du um wenn das letzte Bit 
aus dem Senderegister raus ist, oder wenn der Controller dir sagt das 
die RS232 fertig ist?

> Auf der "anderen Seite" einen preis-
> werten USB auf RS485 Halbduplex Adapter.

Wer schaltet da die Signalrichtung um? Es gibt Adapter die machen das 
ueber dir Rts-Leitung. Da bist du, bzw deine Software in der Pflicht. 
Das ist bei Windows nicht der beste Loesungsansatz. Es gibt aber auch 
welche (FTDI) die machen das intern vollkommen selbststaendig.

> Enden Terminiert mit 390 Ohm.

Kommt mir etwas viel vor. Ueblich sind doch 120Ohm. Allerdings sollte 
das bei 1m Kabel auf dem Tisch erstmal egal sein.

> A Leitung (MAX Seitig) mit einem 120 Ohm Widerstand auf +5V und
> die B Leitung mit 120 Ohm auf GND am PC gelegt und die B Leitung am

Kommt mir etwas wenig vor. Ich nehme immer so um die 1k. Die 
Bias-Widerstaende sind aber nicht unbedingt erforderlich. Auch ohne 
sollte die Uebertragung bei dir funktionieren. Wichtig sind sie nur wenn 
der Eingang offen ist, weil es dann sein kann das der Controller 
bergeweise IRQs auf der RxD Leitung bekommt.


> Wenn ich den MAX485 aus dem PC speise, klappen ein paar Moeglichkeiten
> mehr, aber das ist eher uninteressant als Anwendungszweck.

Das wirft natuerlich die Frage auf ob du auch GND verbunden hast. Nur A 
und B ist etwas wenig.

Olaf

von Juergen G. (jup)


Lesenswert?

Olaf schrieb:
> Das wirft natuerlich die Frage auf ob du auch GND verbunden hast. Nur A
> und B ist etwas wenig.
>

Da muss ich Olaf zustimmen. In manchen Beispielen aus dem Internet 
findet man Aussagen wie "RS485 ist differenzial, da braucht man nur A 
und B"

Das Funktioniert manchmal auf dem Basteltisch, aber fast nie in 
industrieller Umgebung.

Bei mir ist GND bei RS485 Pflicht, wenn ich Potenzialtrennung brauche 
kommen Optokoppler zwischen den MAX und dem uC.

von Olaf (Gast)


Lesenswert?

> In manchen Beispielen aus dem Internet findet man Aussagen wie
> "RS485 ist differenzial, da braucht man nur A und B"

Ob dieselben Leute auch die Eingaenge eines Operationsverstaerkers auf 
-5V (gegen OP-GND) legen wuerden weil der doch differentielle Eingaenge 
hat?

Es sollte doch klar sein das ein Baustein seine Eingangssignale nur 
innerhalb seiner eigenen Versorgungsspannung verarbeiten kann.

Olaf

von Falk B. (falk)


Lesenswert?

@Olaf (Gast)

>Ob dieselben Leute auch die Eingaenge eines Operationsverstaerkers auf
>-5V (gegen OP-GND) legen wuerden weil der doch differentielle Eingaenge
>hat?

Gute Frage.

>Es sollte doch klar sein das ein Baustein seine Eingangssignale nur
>innerhalb seiner eigenen Versorgungsspannung verarbeiten kann.

Stimmt nicht. Die normalen Tranciever werden mit 5V/GND versorgt, 
verkraften aber -7/+12V Gleichtaktspannung. Einige OPVs können das auch 
(over the rail input common mode range).

von Falk B. (falk)


Lesenswert?


von Falk B. (falk)


Lesenswert?

Siehe auch RS485.

von Olaf (Gast)


Lesenswert?

> Siehe auch RS485.

Ist ja alles schoen aus dem Datenblatt des ADM485 abgeschrieben, aber 
der entscheidende Punkt ist auf Seite 5:

Absolute Maximum Ratings Reciever Input: -9V bis +14V.

Welche Spannung hat wohl..na sagen wir mal die Masse eines Laptops mit 
dem ueblichen Eingangsfilter am Schaltnetzteil gegenueber einem anderen 
Geraet mit eigener Versorgung? Ich wuerde da auch mal 120V erwarten.

Der OP kann da ja mal messen und uns berichten. .-)

BTW: Verwendet ihr eigentlich Steckverbinder die zuerst GND verbinden, 
habt ihr nur Kunden die immer alle Geraete ausschalten bevor sie ein 
Kabel anstecken oder ist potentialfrei nicht irgendwie klueger? :-)

Olaf

von Sebastian Feike (Gast)


Lesenswert?

Soderle,

einige Experimente spaeter komme ich zu folgendem Schluss:

Auf dem Schreibtisch lief es sofort reibungsfrei wenn ich A
mit 380 Ohm gegen +5V und B mit 380 Ohm gegen GND ziehe, egal
an welcher der beiden Enden (=Spannungsquellen).

Im Feldversuch mit zwei Phasen aus zwei Gebaeuden, 100m Standard
XLR Kabel aus dem Buehnenbau (ich vermute unverdrillt) gings auch
auf Anhieb (9600 baud).

Damit waeren eigentlich alle Probleme geloesst :) Vielen Dank an
dieser Stelle.

Zu der GND Problematik: Bei mir laeufts mit ebenso wie ohne.
Schlau geworden bin ich aus dieser (und den verlinkten) Beiträgen
allerdings nicht, das scheint mir eher eine Glaubensfrage zu sein.
Was an sich schon verwunderlich ist.

MfG, Sebastian

von RS (Gast)


Lesenswert?

Sebastian Feike schrieb:
> Zu der GND Problematik: Bei mir laeufts mit ebenso wie ohne.
> Schlau geworden bin ich aus dieser (und den verlinkten) Beiträgen
> allerdings nicht, das scheint mir eher eine Glaubensfrage zu sein.
> Was an sich schon verwunderlich ist.

Na dann viel Spass bei der Fehlersuche wenn es denn hin und wieder nicht 
mehr geht. Da kann man doch nur noch mit dem Kopf schütteln. Es gab 
genug Hinweise in diesem und den verlinkten Beiträgen.

von Rumpel (Gast)


Lesenswert?

Ich lass auch solche Systeme laufen. Bei kurzen Leitungen, dh ein paar 
Meter kann man sich die Pullups, und Terminierungen schenken. Wichtig 
ist vor allem, den GND durchzuziehen.
Die Maximum Ratings meinen : bei diesem Betriebszustand geht der 
Baustein nicht kaputt. Es bedeutet nicht, dass er ordnungsgemaess 
funktioniert.

von Sebastian Feike (Gast)


Lesenswert?

Hallo,

> Na dann viel Spass bei der Fehlersuche wenn es denn hin und wieder nicht
> mehr geht. Da kann man doch nur noch mit dem Kopf schütteln. Es gab
> genug Hinweise in diesem und den verlinkten Beiträgen.

Eben, und zwar sowohl dafuer als auch dagegen.

Mir persönlich isses egal, es liegen ohnehin 3 polige Leitungen.
Ich muss da nicht sparen. Aber ich muss feststellen, das man
Einigkeit in der Summe der Beitraege nicht finden kann.

--
MfG, Sebastian

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
Noch kein Account? Hier anmelden.