mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Reflektionen mit Oszi messen


Autor: Azubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Forumgemeinde, in meiner Schaltung sind zwei Mikrocontroller 
über UART miteinander verbunden. Die Kommuniaktion ist zeitweise gestört 
und mir wurde empfohlen Serienwiderstände in die RX TX Leitungen 
einzubauen, seitdem kommt es zu keiner Fehlübertragung. Ich würde gerne 
den Fehler Messtechnisch festhalten, aber längeres messen zeigte kein 
Fehler in den Spannungsamplituden. Ich vermute es sind reflektionen, 
aber wie misst man diese Reflektionen mit einem Oszi? Kann mir jemand 
einen Tipp geben?

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht jede schnelle Reflektion kann man mit jedem Oszi sichtbar machen.

Trotz LAN-Tester habe ich vor vielen Jahren ein ganzes Hochhaus 
systematisch abgesucht. Im obersten Stockwerk hatte einer umgeräumt und 
der RG-58-Terminator an den VORletzten PC gesteckt.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> in meiner Schaltung sind zwei Mikrocontroller
> über UART miteinander verbunden.
Wie weit auseinander?
Welche Potentiale?
Wie ist die Versorgung?

> Die Kommuniaktion ist zeitweise gestört und mir wurde empfohlen
> Serienwiderstände in die RX TX Leitungen
> einzubauen, seitdem kommt es zu keiner Fehlübertragung.
Wo hast du die Widerstände eingebaut?
Welcher Wert?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Azubi (Gast)

>Hallo liebe Forumgemeinde, in meiner Schaltung sind zwei Mikrocontroller
>über UART miteinander verbunden. Die Kommuniaktion ist zeitweise gestört
>und mir wurde empfohlen Serienwiderstände in die RX TX Leitungen
>einzubauen, seitdem kommt es zu keiner Fehlübertragung.

Naja, da ist was faul. Ein UART ist sooo langsam, dass Reflexionen 
praktisch keine Rolle spielen. Ich tippe eher auf Masseverschiebungen 
oder EMV-Einkopplungen.

> Ich würde gerne
>den Fehler Messtechnisch festhalten, aber längeres messen zeigte kein
>Fehler in den Spannungsamplituden.

WIE hast du denn gemessen?

> Ich vermute es sind reflektionen,
>aber wie misst man diese Reflektionen mit einem Oszi? Kann mir jemand
>einen Tipp geben?

Mit einem SCHNELLEN Oszi , 300MHz++, und einem HF-tauglichen Tastkopf 
mit KURZER Masseanbindung.

Ist hier aber IMO ein Irrweg, siehe Wellenwiderstand.

MFG
Falk

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Azubi,

was du sagst ergibt nur Sinn, wenn du eine sehr hohe Datenrate in den 
UARTs eingestellt und auf RS232 Transciever verzichtet hast. Dann kannst 
du in der Tat Probleme mit der Wellenwiderstandsanpassung haben.

Wenn die Übertragungsgeschwindigkeit auf vernünftige Werte für die 
Kabellänge eingestellt ist und RS232 Transceiver verwendet werden, 
dürften eingefügte Serienwiderstände eigentlich nichts wesentlich 
ändern.

Heutezutage verwendet man für solche Zwecke symmetrische, differentielle 
Signalübertragung mit RS422/485 Transceivern und verwendet abgeschirmte 
Kabel mit beidseitig aufgelegtem Schirm und floatender Signalmasse (-> 
Profibus). Der LT1785 beispielsweise ist optimal dafür geeignet.

Kai Klaas

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kai Klaas (Gast)

>was du sagst ergibt nur Sinn, wenn du eine sehr hohe Datenrate in den
>UARTs eingestellt und auf RS232 Transciever verzichtet hast. Dann kannst
>du in der Tat Probleme mit der Wellenwiderstandsanpassung haben.

???
Bitte?

Selbst bei 115k2 muss man VERDAMMT lange Kabel haben, um mit Reflexionen 
Probleme zu bekommen. Und man beachte, ein UART macht eine 16x 
Überabtastung.
Und was soll ein popeliger MAX232 in bezug auf Anpassung und 
Wellenwiderstand besser machen?

>Heutezutage verwendet man für solche Zwecke symmetrische, differentielle
>Signalübertragung mit RS422/485 Transceivern und verwendet abgeschirmte
>Kabel mit beidseitig aufgelegtem Schirm und floatender Signalmasse (->
>Profibus). Der LT1785 beispielsweise ist optimal dafür geeignet.

Mag sein, spielt hier aber keine Geige. Wenn auf einer Platine bzw. in 
einem Gerät zwei uCs per UART direkt miteinander reden auf CMOS-Pegel, 
dann braucht man keinen Tranceiver.

MFg
Falk

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manchmal kommt es auch auf diiie Kabel und deren Länge an.

Es gab auch schon kuriose Fälle wo 2m Kabel zu lang waren für eine 
störungsfreie Verbindung. Ursache habe ich damals nicht gesucht, da ich 
wußte daß 20 cm kürzen half. Mein Verdacht war Wellenwiderstand/ 
Resonanzen.

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fakt ist, dass der OP mit seinen Widerständen eine Verbesserung erzielt 
hat. Wenn wir also einfach statt von Reflexionen von einem Klingeln auf 
der Leitung reden, könnten wir dann die Diskussion voran bringen?

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk
>Selbst bei 115k2 muss man VERDAMMT lange Kabel haben, um mit Reflexionen
>Probleme zu bekommen.

Wissen wir was er für Kabel verwendet?? Woher weißt du, daß das 115kbaud 
sind??

>Und was soll ein popeliger MAX232 in bezug auf Anpassung und
>Wellenwiderstand besser machen?

Endliche Diver Slew Rate. Beim MAX232 von TI 3V/µsec, typisch. Bewirkt 
das Gleiche wie beim LT1785 mit seiner limited slew rate: "Controlled 
slew rates on the driver outputs control EMI emissions and improve data 
transmission integrity on improperly terminated lines."

>Mag sein, spielt hier aber keine Geige. Wenn auf einer Platine bzw. in
>einem Gerät zwei uCs per UART direkt miteinander reden auf CMOS-Pegel,
>dann braucht man keinen Tranceiver.

Woher weißt du, was er hat??

Kai Klaas

Autor: Azubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, vielen Dank für die Antworten.

Die beiden Bausteine sind ohne RS232 Pegelwandler miteinander auf der 
PCB verbunden und die Baurate beträgt 115k2. Die Platine ist nicht 
geätzt, sondern eine Lochrasterplatine. Zur Fehlersuche wurden alle 
anderen Bausteine deaktiviert und letzte Nacht wurde ein Dauerlauf mit 
zwei Widerstandswerten durch geführt. Der erste Dauerlauf lief mit 
330Ohm und 1KOHm einwandfrei. Die Widerstände wurden so nah wie möglich 
am Empfänger (RX) angeschlossen. Der Sender sendet immer die gleiche 
Charakterfolge und der Empfänger speichert die Information in einem 
Software FIFO Buffer. Zwischendurch prüft der Mikrocontroller die 
Empfangendaten auf Richtigkeit.

Der zweite Testablauf war identisch nur mit 120Ohm Widerständen und es 
kam zu Fehlern.

Wellenwiderstandsanpassung ist für mich ein neues Thema und zum besseren 
Verständnis wollte ich dieses Problem messtechnisch Untersuchungen, aber 
irgendwie suche ich die Nadel im Heuhaufen, weil der Fehler recht 
sporadisch auftritt.

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Azubi,

>Die Platine ist nicht geätzt, sondern eine Lochrasterplatine.

Dann hast du wahrscheinlich keine durchgehende Massefläche, oder? Dann 
brauchst du dich nicht zu wundern. Ohne Massefläche kein einheitliches 
Bezugspotential und jeder Schaltvorgang erzeugt genügend Störungen auf 
der Masse um die Noise Margin am jeweilen UART Eingang zu zerstören.

Also, du brauchst eine durchgehende Massefläche und dann solltest du 
nicht beim Empfänger, sondern beim Sender einen Widerstand von sagen wir 
mal 47R in Serie zum Ausgang schalten. Wie weit sind denn die beiden 
Mikrocontroller von einander entfernt?

Kai Klaas

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest zusätzlich jedem UART-Eingang einen Schmitt-Trigger 
voransetzen mit einem RC-Glied aus 1k und 100..220pF an seinem Eingang. 
Das RC-Glied siebt dir dann hochfrequente Störspikes aus und der 
Schmitt-Trigger erzeugt dir wieder ein sauberes Rechteck. Achte darauf, 
daß der Schmitt-Trigger symmetrisch um Vcc/2 schaltet.

Das ist aber kein Ersatz für die durchgehende Massefläche!

Zur Not könntest du direkt unter der Lochrasterplatine eine durchgehende 
Kupferplatine anordnen und verschiedene Massepunkte der Schaltung auf 
kurzem Weg mit dieser Massefläche verbinden.

Kai Klaas

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UART Leitung auf einer Platine mit 115200Baud und Probleme mit 
Reflektionen, Klingeln o.ä.? Da läuft doch gravierend was schief!
Wie Falk schon schrieb: Ein UART verwendet in der Regel Überabtastung, 
und selbst wenn nicht, dann werden die Daten in der Mitte der Periode 
abgetastet. Nach rund 5µs sollte der Pegel soweit stabil sein, dass die 
Signale richtig eingelesen werden.
Wenn das nicht der Fall ist, dann gibt es auf der Platine weitaus mehr 
Probleme als nur die UART Leitung. -> Fotos vom Aufbau.

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn das nicht der Fall ist, dann gibt es auf der Platine weitaus mehr
>Probleme als nur die UART Leitung.

Er hat wahrscheinlich durch den Lochrasterplatinenaufbau und das Fehlen 
einer niederimpedanten Masse jede Menge Ground Noise. Der Widerstand 
arbeitet mit der Eingangskapazität des UART-Eingangs wie ein Tiefpaß, 
der einzelne Spikes aussiebt. Das würde erklären, warum er mit einem 1k 
Ohm Widerstand Erfolg hat, aber nicht mit einem 120 Ohm Widerstand.

Kai Klaas

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Kai Klaas (Gast)

>>Die Platine ist nicht geätzt, sondern eine Lochrasterplatine.

>Dann hast du wahrscheinlich keine durchgehende Massefläche, oder?

Sicher nicht. Braucht er auch nicht. Aber eine HALBWEGS gescheite 
Masseführung und Entkopplung der Versorgungsspannung. Siehe 
Wellenwiderstand (ich wieder hole mich).

> Dann
>brauchst du dich nicht zu wundern. Ohne Massefläche kein einheitliches
>Bezugspotential und jeder Schaltvorgang erzeugt genügend Störungen auf
>der Masse um die Noise Margin am jeweilen UART Eingang zu zerstören.

Im Einzelfall ja, allgemein sicher nicht! Soviel EMV Müll erzeugt kein 
uC!

>Also, du brauchst eine durchgehende Massefläche

Braucht er nicht.

>nicht beim Empfänger, sondern beim Sender einen Widerstand von sagen wir
>mal 47R in Serie zum Ausgang schalten.

Unsinn.

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also zB die charakteristische Impedanz eines Kabels laesst sich super 
mit ca. 5MHz Rechteck (Quarzkanisterchen und einen LS00 als Treiber 
dahinter), einem Einkoppelwiderstand (ich nehme gern ein Kiloohm), einem 
500R Poti am Ende, und einem 30-60MHz Oszi auf Senderseite (hinterm 
Widerstand) messen. Dabei geht es gar nicht darum die Reflektionen 
einzeln zu sehen - die Art auf die das Rechteck senderseitig verzerrt 
wird spricht schon eine sehr klare Sprache.

Ein aehnlicher Aufbau wuerde es auch hier tun.

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Fuer die Variante mit variabler Terminierung natuerlich kein 
Drahtpoti nehmen ;)

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kai Klaas schrieb:
>>Wenn das nicht der Fall ist, dann gibt es auf der Platine weitaus mehr
>>Probleme als nur die UART Leitung.
>
> Er hat wahrscheinlich durch den Lochrasterplatinenaufbau und das Fehlen
> einer niederimpedanten Masse jede Menge Ground Noise.

Wie gesagt:
Wenn der Masseversatz auf einer Platine so stark ist, das Logikpegel 
durcheinander kommen, dann hat nicht nur die UART Verbindung Probleme, 
sondern auch die Funktion der restlichen Bauteile ist fragwürdig.
Um ein paar Volt Groundnoise hinzubekommen, so dass die überabgetastete 
UART Verbindung nicht mehr funktioniert, muss man schon ziemlich viel 
Mist bauen (z.B. eine PWM ohne Kondensatoren, oder ein Schaltnetzteil 
mit miserabler Masseführung o.ä.) Auf jedenfall irgendwas was sehr viel 
Strom zieht oder eine extrem hochimpedante Masseleitung.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt K. (benedikt) (Moderator)

>Strom zieht oder eine extrem hochimpedante Masseleitung.

Wenn er denn überhaupt eine hat . . . soll ja des öfteren vorkommen 8-0

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>nicht beim Empfänger, sondern beim Sender einen Widerstand von sagen wir
>>mal 47R in Serie zum Ausgang schalten.

>Unsinn.
Sinn!

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was liegt den noch auf dem Board? Kannst du die Störung zeitlich 
eingrenzen? Wenn z.B. alle 60min ein Relais schaltet und du zuuufäällig 
alle 20min eine Störung auf der UART hast...

Eventuell hilft es auch, wenn du mal eine extra Masse-Strippe um die 
RX/TX Leitungen wickelst um eventuelle Störungen draussen zu halten...

Knipps doch mal den Aufbau (Achtung, Bildformate ;) )

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  HildeK (Gast)

>>>nicht beim Empfänger, sondern beim Sender einen Widerstand von sagen wir
>>>mal 47R in Serie zum Ausgang schalten.

>>Unsinn.
>Sinn!

Klar, bei einem UART mit 115K2 und nicht mal 1m Leitung. Was kommt als 
Nächstes? Terminierungswiderstände für Taster?

Kopfschüttelnde Grüsse
Falk

Autor: fb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Azubi:

hat du Quarze für die Mikrocontroller verwendet, oder werden interne 
Oszillatoren benutzt ?

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
>Was kommt als
>Nächstes? Terminierungswiderstände für Taster?
Nein, aber z.B. für Resetleitungen!
Einen Vorschlag, einen Serienwiderstand an die Quellseite und nicht auf 
Seite der Senke anzubringen, nur mit dem Wort 'Unsinn' zu kommentieren, 
konnte ich nicht unwidersprochen lassen.

Autor: Kai Klaas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

>Um ein paar Volt Groundnoise hinzubekommen, so dass die überabgetastete
>UART Verbindung nicht mehr funktioniert, muss man schon ziemlich viel
>Mist bauen (z.B. eine PWM ohne Kondensatoren, oder ein Schaltnetzteil
>mit miserabler Masseführung o.ä.) Auf jedenfall irgendwas was sehr viel
>Strom zieht oder eine extrem hochimpedante Masseleitung.

Es reicht, wenn du ein paar 74HCMOS-Bauteile ohne 
Betriebsspannungsentkopplung auf der Platine hast. Eine nicht 
ausreichend niederimpedante Masseführung besorgt dann den Rest.

Im Anhang ist schön zu sehen, was 74HCMOS-Chips für Störungen 
produzieren, wenn sie nicht sauber entkoppelt werden.

@Falk
>>Dann hast du wahrscheinlich keine durchgehende Massefläche, oder?
>
>Sicher nicht. Braucht er auch nicht.

>>nicht beim Empfänger, sondern beim Sender einen Widerstand von sagen wir
>>mal 47R in Serie zum Ausgang schalten.
>
>Unsinn.

Wenn du nicht weißt, wozu man eine durchgehende Massefläche und 
Widerstände an Ausgängen braucht, dann kann ich dir auch nicht helfen.

Kai Klaas

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Das obige Bild stammt aus dem "High-speed CMOS Logic Data 
Book" von Texas Intruments. Es gibt auch ein pdf-file, der diese Passage 
enthält, habe das aber auf die Schnelle nicht finden können.

Kai Klaas

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kai Klaas schrieb:

> Es reicht, wenn du ein paar 74HCMOS-Bauteile ohne
> Betriebsspannungsentkopplung auf der Platine hast. Eine nicht
> ausreichend niederimpedante Masseführung besorgt dann den Rest.

Aber das ist ein sehr kurzer Peak, der dauert keine 10µs lang und stört 
nicht alle Werte der Überabtastung des UARTs. Daher ist UART an sich 
sehr fehlertolerant, solange die Baudrate passt. Das ist der Punkt wieso 
ich solche Fehler für unwahrscheinlich halte.
Klar, das IC kann mit mehreren MHz schalten, so dass andauernd diese 
Peaks vorhanden sind, aber dann beeinflussen diese Peaks mit Sicherheit 
mehr als nur den UART, wie ich weiter oben schon schrieb. Ich weiß nicht 
ob es einem µC gefällt, wenn ein paar Volt Ripple auf der 
Betriebsspannungsleitung sind.

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

>Aber das ist ein sehr kurzer Peak, der dauert keine 10µs lang und stört
>nicht alle Werte der Überabtastung des UARTs. Daher ist UART an sich
>sehr fehlertolerant, solange die Baudrate passt. Das ist der Punkt wieso
>ich solche Fehler für unwahrscheinlich halte.
>Klar, das IC kann mit mehreren MHz schalten, so dass andauernd diese
>Peaks vorhanden sind, aber dann beeinflussen diese Peaks mit Sicherheit
>mehr als nur den UART, wie ich weiter oben schon schrieb. Ich weiß nicht
>ob es einem µC gefällt, wenn ein paar Vss Ripple auf der
>Betriebsspannungsleitung sind.

Ja, da gebe ich dir Recht. Mit Ground Noise ist es vielleicht nicht 
alleine erklärt. Vielleicht hat er ja auch zusätzlich kapazitives 
Überkoppeln in die UART Leitung? Da scheint eine Menge nicht zu stimmen.

Jedenfalls kann er mit seinem 1k Widerstand am Eingang die Fehler 
reduzieren und mit 120 Ohm nicht. Das sieht doch so aus, als ob da 
Störungen auf seiner UART Leitung sind, die er durch Tiefpaßfilterung 
minimieren kann?

Kai Klaas

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Kai Klaas (Gast)

>Wenn du nicht weißt, wozu man eine durchgehende Massefläche und
>Widerstände an Ausgängen braucht, dann kann ich dir auch nicht helfen.

Bist du so dumm oder tust du nur so? Schau dir mal an, wer den Artikel 
Wellenwiderstand geschrieben hat.

http://www.mikrocontroller.net/wikisoftware/index....

>Jedenfalls kann er mit seinem 1k Widerstand am Eingang die Fehler
>reduzieren und mit 120 Ohm nicht. Das sieht doch so aus, als ob da
>Störungen auf seiner UART Leitung sind, die er durch Tiefpaßfilterung
>minimieren kann?

Das bestreitet doch keiner. Aber es ist Herumdoktern an Symtomen, 
anstatt echter Ursachenforschung oder gar Bekämpfung!

MfG
Falk

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk
>Bist du so dumm oder tust du nur so? Schau dir mal an, wer den Artikel
>Wellenwiderstand geschrieben hat.

Mann, bist du wieder unfreundlich! Wie kann man sich nur so aufregen?

Komm mal von deinem hohen Roß runter, es gibt auch noch andere Menschen, 
die was wissen...

Kai Klaas

Autor: ABAPer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also meine erste Frage wäre gewesen ob die µC genügend 
Stützkondensatoren haben. Als nächstes wäre natürlich ein Bild vom 
Aufbau interessant. Alles andere ist doch reine Spekulation...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.