Forum: Mikrocontroller und Digitale Elektronik Widerstandsgröße Serienterminierung


von liefers (Gast)


Lesenswert?

Hallo zusammen,

um signalverfälschung durch Reflexion zu verhinder kann man ja 
bekanntlich einen Widerstand als Serienterminierung nutzen. Wie bekomme 
ich nun aber raus, welcher Widerstandswert für einen bestimmten IC 
geeignet ist? Kann ich das irgenwo im Datenblatt herauslesen, gibt es da 
bestimmte Werte für bestimmte Technologien oder wie geht man sonst am 
besten vor?

von peter-neu-ulm (Gast)


Lesenswert?

Wichtiger ist die Frage, welcher Bus verwendet wird, bzw. welche Leitung 
angeschlossen ist. Das IC ist dabei weniger von Belang, nur manchmal hat 
es einen definierten Innenwiderstand. Meistens muss der Innenwiderstand 
am Pin eingestellt werden, durch Zuschalten von R.

Für nahezu jedes Bussystem gibt es "übliche" Werte des 
Abschlusswiderstandes. Wenn der Name des Bus bekannt ist, lässt sich 
vielleicht der übliche Wert ergoogeln.

von liefers (Gast)


Lesenswert?

Ok,
nehmen wir mal an, ich möchte einen Datenbus terminieren (SDRAM). Was 
für Werte müsste ich da zur Terminierung nutzen und woher würde ich die 
bekommen (also die Begündung, warum es gerade die Werte sind).
Ich hatte das bis jetzt so verstanden, dass eigentlich der 
Wellenwiderstand der Leitung ausschalggebend ist. Wenn ich nun einen 
Widerstand in Serie, meinetwegen zum Treiber schalte, so dass der 
Innenwiderstand des Teibers+der Terminierungswiderstand dem 
Wellenwiderstand entsprechen, dann sollte doch keine Reflexion (bzw. nur 
eine am Empfänger, die dann aber am Sender wieder absorbiert wird) 
auftrete, oder? Um diesen Widerstand aber nun zu berechnen bräuchte ich 
ja den Innenwiderstand des Treibers?

von peter-neu-ulm (Gast)


Lesenswert?

Der Treiber des IC ist im Allgemeinen recht niederohmig, da ja 
MOS-Schalter dafür verwendet werden. Reflexionen am Treiber sind dann 
eben unvermeidlich. Wenn die Datenrichtung aber nur vom Treiber weggeht, 
macht das nichts aus.
Üblich ist es, am Ende des Bus den für den Bus typischen Widerstand 
anzuschließen, oft an halbe Betriebsspannung gelegt, damit die 
DC-Verluste gemindert werden. Solche Abschlusswiderstände findet man als 
150-Ohm Widerstands-arrays auf schnellen PC-boards. Damit ist das 
Leitungsende reflexionsfrei ausgeführt, die Teilnehmer dazwischen sind 
recht hochohmig gehalten, sodass sie wenig Reflexion verursachen.

manchmal wird ein 33 OHM-Widerstand längs in die Leitung geschaltet. 
Dieser Widerstand dämpft das Nutzsignal in erträglicher Weise, das 
reflektierte Signal deutlich stärker, da dieses zwei- oder mehrmals über 
den Widerstand läuft. der Widerstand stellt eine verlustbehaftete 
Leitung her. Diese Lösung ist bei kurzen Leitungen gut machbar, oft z.B. 
auf Steckkarten für PCs zu finden.

Die Größe des Widerstands ist auf die Leiterbahnen des Bus abgestimmt, 
der Entschluss, welchen Wellenwiderstand die Leitungen haben sollen 
trifft der Systementwickler. Ich meine, meistens werden 
150-Ohm-Leiterbahnen auf den Leiterplatten verwendet.

von HildeK (Gast)


Lesenswert?

>Ich meine, meistens werden
>150-Ohm-Leiterbahnen auf den Leiterplatten verwendet.
Wohl eher 50-60 Ohm. Bei differentiellen liegt man im Bereich von 
100-120 Ohm. Und, ich als Schaltungsentwickler entscheide darüber und 
nicht der Systementwickler!

>manchmal wird ein 33 OHM-Widerstand längs in die Leitung geschaltet.
>Dieser Widerstand dämpft das Nutzsignal in erträglicher Weise, das
>reflektierte Signal deutlich stärker, da dieses zwei- oder mehrmals über
>den Widerstand läuft. der Widerstand stellt eine verlustbehaftete
>Leitung her. Diese Lösung ist bei kurzen Leitungen gut machbar, oft z.B.
>auf Steckkarten für PCs zu finden.
Ja, man verwendet diesen Widerstand. Aber die Erklärung dazu ist nicht 
korrekt. Er dämpft weder, noch ist er nur bei kurzen Leitungen zu 
gebrauchen.

Dieser Widerstand passt zusammen mit dem Innenwiderstand der Quelle das 
Signal auf die Leitungsimpedanz an. Eine Signalflanke wird dadurch 
während der Bruchteile von Nanosekunden, in der sie von der Quelle zur 
Senke läuft, durch den Spannungsteiler aus Quellwiderstand+33 Ohm und 
der Leitungsimpedanz halbiert. Diese 33 Ohm müssen übrigens so nahe wie 
möglich an der Quellpin angeordnet werden.
Am Ende der Leitung sitzt (in der Digitaltechnik) ein hochohmiger 
Eingang, das ist also ein sog. Leerlauf und erzeugt eine Totalreflektion 
dieser Flanke. Sie wird dabei doppelt so groß wie es die vorlaufende 
Flanke war. Genau das will man ja - den dort soll der volle Signalhub 
auftreten. Dieser reflektierte Teil läuft nun wieder zurück zu Quelle 
und trifft dort auf deren Quellwiderstand incl. der 33 Ohm. Da dies auf 
die Leitungsimpedanz passt, ergibt sich keine weitere Reflektion und der 
Vorgang ist abgeschlossen.
Da kann man schön mit einem schnellen Skope messen, indem man irgendwo 
in der Leitung abgreift. Es ist eine Treppe zu sehen - um so deutlicher, 
je näher man auf der Quellseite misst.

Diese Art der Terminierung hat Vor- und Nachteile. Der Vorteil ist, dass 
mit nur einem Widerstand eine Punkt-zu-Punkt-Verbindung sehr gut 
angepasst werden kann. Außerdem fließt im statischen Zustand kein Strom.
Der Nachteil ist, dass es eben nur eine Punkt-zu-Punkt-Verbindung sein 
kann. Irgend ein zweiter Verbraucher wird die erwähnte Treppe sehen und 
das ist für ein Taktsignal nicht akzeptabel. Man kann, je nach innerem 
Quellwiderstand, zwei oder auch drei Leitungen mit je eigenen 
33-Ohm-Widerständen noch verwenden; darüber hinaus wäre ein aktiver 
Verteiler empfehlenswert.

Terminierung mit einem Widerstand am Ende sind natürlich elektrisch die 
richtige Art und das wird auch bei analogen Signalen (Antennen usw. ) 
gemacht. Leider ist die Signalamplitude dann nur noch halb so groß, das 
Signal ist aber überall auf der Leitung hochohmig abgreifbar (ohne 
Stichleitung!) und sauber.

Bei DDR-RAMS wird häufig (aber nicht immer) eine aktive Terminierung 
vewendet - also ein Abschluss statt nach Masse auf die 
Schwellenspannung, meist die halbe Signalamplitude. Das bringt bessere 
Ergebnisse, da solche RAMs meist als zu mehreren an den Leitungen hängen 
und so gewisse Stichleitungen nicht vermeidbar sind. Speziell bei DIMMs, 
die ja z.B. im PC über Steckverbinder auch relativ weit weg von der CPU 
platziert sind, ist dies notwendig. Die Terminierungsspannung muss von 
einem Netzteil erzeugt werden, welches aber auch genauso Strom aufnehmen 
können muss, wie es ihn liefern können muss.
Wenn du eine einfache Schaltung (CPU/FPGA + ein DRAM) in kleiner 
Entfernung (<5cm) anordnen kannst, dann vergiss die Terminierung - mit 
Ausnahme der Takte - deren Flanken müssen sauber sein. Da würde ich 
wieder auf die 33 Ohm verweisen. Dies hängt nicht von der verwendeten 
Taktfrequenz ab, sondern von der verwendeten Technologie: wie steil sind 
die Flanken meines Treibers!
Bei Daten, die irgendwo in Datenmitte abgetastet werden, ist eine 
unsauber Flanke uninteressant, solange sie nicht in diesen Abtastpunkt 
hineinreichen.

Natürlich ist der Wert 33 Ohm (ich habe ihn hier zu Identifikation 
verwendet) nicht absolut zu sehen. Die Wahl hängt vom Quellwiderstand ab 
und natürlich von der vorhandenen Leitungsimpedanz (dazu gibt es Rechner 
im Netz: Transmission Lines). Für normale CMOS-Signale (HC, AC FACT, LVC 
usw.) und auf normalen mehrlagigen Platinen mit Leitungen um 0.2mm (und 
kleiner) sowie Masseflächen sind aber die 33 Ohm eine gute Wahl. Bei 
kräftigen Treiben sollte man ev. etwas höher gehen - bis etwa 43 Ohm. 
Die Werte sind selten wirklich kritisch - kritisch ist nur, wenn sie 
durch 0 Ohm ersetzt werden.

>Um diesen Widerstand aber nun zu berechnen bräuchte ich
>ja den Innenwiderstand des Treibers?
Strenggenommen ja. Aber vielleicht kennst du die Berechnung des 
Reflexionsfaktors von fehlabgeschlossenen Leitungen. Mach da mal die 
Annahme, dass der innere Quellwiderstand 15 Ohm sei und verändere ihn 
auf 10 oder 20. Nimm aussen die genannten 33 Ohm und eine 50 Ohm 
Leitung, am Ende offen. Vergleiche die Ergebnisse und versuche vor 
allem, die Amplitude des dann wieder quellseitig erneut reflektierten 
Signalanteils zu bestimmen, der dann deinen Eingang stören könnte. 
Vergleiche diese Werte mit der Luft, die dein Eingang noch hat, um 
wieder die Schwelle zum Umschalten zu überschreiten. Es ist nicht 
wirklich kritisch.

Ich habe auf ganzen Platinen immer den selben Wert verwendet (27 Ohm 
übrigens) - unabhängig vom Treiber und ohne zu Forschen, wie es im IC 
aussieht. Gut, anfangs habe ich mit unterschiedlichen Widerständen 
gemessen. Da die Unterschiede aber zu gering waren, habe ich mir das 
später erspart! Natürlich wurde die Leitungsgeometrie entsprechend des 
Platinenaufbaus auf rund 50 Ohm berechnet.

War zu lange - zugegeben ...

von Ulrich (Gast)


Lesenswert?

Bei einigen Datenblättern findet man Kurven, aus denen man den 
Ausgangswiderand ablesen kann. Beim Atmel Mega48 sind es bei 5 V z.B. 
etwa 20-30 Ohm und etwas mehr bei weniger Spannung. Der 
Ausgangswiderstand kann je nach Chip auch unsymetrisch sein zwischen H 
und L Ausgangspegel. Eine perfekte Terminierung ist bei Digitalsignalen 
auch nicht so wichtig wie bei analogen Signalen.

von liefers (Gast)


Lesenswert?

@HildeK
vielen Dank für die ausführliche Beschreibung. Hab es jetzt denke ich 
vollständig begriffen.
Nur noch eine Frage, du schreibst, dass mann beim Taktsignal von 
DDR-RAMS eine serienterminierung von 33 Ohm vornehmen sollte. Wenn ich 
aber nun mehrere DDR-RAMS an einem Taktsignal dranhänge wäre doch eine 
Parllelterminierung auf halbe Signalamplitude besser geeigent oder?

von Falk B. (falk)


Lesenswert?

@  liefers (Gast)

>aber nun mehrere DDR-RAMS an einem Taktsignal dranhänge wäre doch eine
>Parllelterminierung auf halbe Signalamplitude besser geeigent oder?

Taktleitungen sollten nie mit Serienterminierung betrieben werden. 
Warum? Siehe Artikel Wellenwiderstand.

Mfg
Falk

von HildeK (Gast)


Lesenswert?

>Wenn ich
>aber nun mehrere DDR-RAMS an einem Taktsignal dranhänge wäre doch eine
>Parllelterminierung auf halbe Signalamplitude besser geeigent oder?
Ja, bei mehr als einem RAM ist das der richtige Weg.
Auf der Quellenseite würde ich trotzdem Serien-Widerstände vorsehen, mit 
wenigen Ohm (10-20) bestücken - die bringen manchmal noch eine 
Signalverbesserung (auf Kosten der Amplitude). Und ein 0-Ohm-Widerstand 
ist als Brücke auch möglich.

Übrigens, achte auf das Layout:
Quelle --> (ev. Rs) --> DDRRAM1 --> DDRRAM2 --> 50 Ohm --> 
Term.-Spannungsquelle.
Schön der Reihe nach und ohne Stichleitungen verdrahten.
Ich habe es, glaube ich, schon mal gesagt: bei aktiver Terminierung muss 
die Spannungsquelle auch Strom aufnehmen können.

Falk Brunner (falk) schrieb:
>Taktleitungen sollten nie mit Serienterminierung betrieben werden.

Diese Aussage ist so, wie sie hier so alleine steht, schlichtweg falsch!
Auch im verlinkten Artikel stehen Zusätze.
Meine Erfahrung:
- Taktleitungen sind kritisch und sollten idealerweise immer 
PtP-Verbindungen sein - mit quellseitiger Serienterminierung
- bei geeigneter Treiberstärke notwendigem Betrieb mehrere Verbraucher 
an einem Takt (DDRRAM) ist die Parallelterminierung besser.
- bei geeigneter Treiberstärke (niederohmige Quelle) kann dieser auch 
zwei oder drei Taktleitungen treiben - jede für sich mit einem eigenen 
Serienwiderstand.
- die Notwendigkeit einer Terminierung bei gegebener Leitungslänge hängt 
ab von der Flankensteilheit des Taktsignals und von der Geschwindigkeit 
(Bandbreite) des Empfängers. Mit der Betrachtung kann auch der maximale 
Abstand zweier Empfänger (wenn es denn anders gar nicht gehen sollte) an 
einer serienterminierten Leitung bestimmt werden.

von Falk B. (falk)


Lesenswert?

@  HildeK (Gast)

>>Taktleitungen sollten nie mit Serienterminierung betrieben werden.

>Diese Aussage ist so, wie sie hier so alleine steht, schlichtweg falsch!

Jain. Ich bezog mich auf mehrere Taktempänger auf einer Leitung, aka 
Multidrop.


>- bei geeigneter Treiberstärke notwendigem Betrieb mehrere Verbraucher
>an einem Takt (DDRRAM) ist die Parallelterminierung besser.

Notwendig! Sonst gibt es Treppenstufen auf dem Signal -> Viel Spass!

Der Rest steht alles im Artikel.

MFG
Falk

von Paul B. (Gast)


Lesenswert?

Ich schliesse meine Frage hier an, weil sie dazu passt, denke ich:

Ich benutze einen programmierbaren Taktgenerator mit 50MHz, der durch 
einen Quarz ersetzt werden soll und zwei parallel geschaltete Chips 
takten muss.

Momentan ist garnichts verwendet und ich hatte eine Serienterminierung 
mit 33R nahe am Taktgeber hin zu dem ersten Chip vorgesehen. Nun, da ich 
das Thema erblickt habe, bin ich geneigt, eine 2. Leitung aufzumachen 
und den 2. Chip ähnlich zu verschalten, also so:

Taktgeber---R33--------------------- Chip 1
          |
          |--R33-------------------- Chip 2


Ist das richtig, jeweils 33R zu nehmen, oder müsste ich auf 66R gehen?


Wie vedrahte ich dann einen den Quarz? Zum Schwingen bringen kann ihn ja 
nur ein Chip. Kann ich den zweiten einfach dranhängen?

ChipClockOut ---- Quarz ------ ChipClockIn1
              |
              |--R33--------------- Chip 2

oder muss ich einen Treiber dranhängen? Ich fürchte nämlich, der Quarz 
ist nicht niederohmig genug.

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.