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?
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.
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.
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.
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.
> 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
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.
> 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
@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).
> 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
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.