Forum: Mikrocontroller und Digitale Elektronik Serienterminierung SPI


von Martin R. (martin84)


Lesenswert?

Hallo,

habe mich gerade durchs Forum gelesen und mir die Zusammenhänge der 
Serienterminierung der SPI Leitungen angeschaut.

Ich will einen Sensor mit einem AVR verbinden, dabei verwende ich ein 
Flachbandkabel (ca. 70cm lang und jeweils eine Masseleitung zwischen den 
Signalleitungen).

Im Artikel "Wellenwiderstand" steht, das für einen CMOS-IC ein 
Ausgangsinnenwiderstand Ri von 15...50ohm zu erwarten ist.

Im Datenblatt des Atmega88 habe ich auf Seite 303 die Angaben zu V_OL, 
V_OH, I_OL, I_OH gefunden.

Es gibt sich doch dann folgendes: R_OL = V_OL / I_OL = 0,7V / 20mA = 35 
Ohm
und R_OH = V_OH / I_OH = 4,2V / 20mA = 210 Ohm

Das entspricht ja nicht wirklich der Angabe 15...50 Ohm.
Das gleiche habe ich auch in ein oder zwei Beiträgen schon gelesen, nur 
war da keine Lösung, oder habe ich etwas übersehen? Habe ich die 
falschen Angaben verwendet?? Oder habe ich noch einen anderen 
Denkfehler?

Der Wellenwiderstand für Flachbandkabel beträgt 150 Ohm, vorgeschlagen 
wird hier im Forum 100 Ohm zur Terminierung, also müsste ich doch auf 
einen Ri_AVR = 50 Ohm kommen.

Könnt ihr mir weiterhelfen? Wo finde ich die nötigen Daten im 
Datenblatt?

Gruß Martin

von (prx) A. K. (prx)


Lesenswert?

Martin Ringel schrieb:

> Im Datenblatt des Atmega88 habe ich auf Seite 303 die Angaben zu V_OL,
> V_OH, I_OL, I_OH gefunden.

Schau dir auf den Seiten 327ff (30.8) die Charakteristik der Pintreiber 
an und bestimme daraus den differentiellen Innenwiderstand, d.h. die 
Steigung der dortigen Kurve an der relevanten Stelle.

In Fig 30-22 ergibt sich daraus beispielsweise bei 1V Differenz (5,0V 
bis 4,0V) eine Stromdifferenz von 40mA, ergibt 25 Ohm. Je geringer die 
Versorgungsspannung desto grösser der Widerstand.

Und ausserdem solltest du beim oberen Wert (4,2V / 20mA) den 
Innenwiderstand des Ausgangs berechnen, und nicht den dazu passenden 
externen Lastwiderstand. Also (5,0V-4,2V) / 20mA.

von (prx) A. K. (prx)


Lesenswert?

PS: Die von dir verwendeten Werte im Datasheet definieren die 
min/max-Werte, nicht die typischerweise auftretenden Werte. 
Dimensionieren solltest du hierbei aber für die typischen Werte, und die 
sind in den erwähnten Kurven aufgeführt.

von Martin R. (martin84)


Lesenswert?

Hallo A.K.,

danke für deine Hilfe:-) Die Kennlinien im Datenblatt hatte ich bis 
jetzt noch nie betrachtet.

Welche Werte nehme ich denn genau?

Versorgungsspannung Vcc - Spannung am Ausgang / deltaI = Ri

von Martin R. (martin84)


Lesenswert?

Ok das habe ich jetzt soweit...komme mit meiner Rechnung auf ca. 35mA 
:-)

Jetzt habe ich Flachbandkabel von Reichelt. Im Datenblatt steht: es hat 
eine Impedanz von 100 Ohm bei 1MHz.

Meine SPI Verbindung läuft mit 4,6MHz. Da die Reflexionen nicht 
frequenzabhängig sind, gehe ich davon aus, dass ich die 100 Ohm als 
Wellenwiderstand annehmen kann??

Also würde ich auf einen Terminierungswiderstand von 100 Ohm - 35 Ohm = 
65 Ohm kommen.

Diesen Widerstand würde ich nun für SCK und MOSI verwenden.

Kann ich so vorgehen?

Muss ich für die MISO-Terminierung 100 Ohm - Ri_Sensor rechnen?? Oder 
lasse ich die Terminierung für MISO und MOSI am besten weg??

von Martin R. (martin84)


Lesenswert?

Sorry, da war ich wohl zu eilig.

Anstatt 35mA sollte es 35 Ohm heißen.

von Falk B. (falk)


Lesenswert?

@  Martin Ringel (martin84)

>Also würde ich auf einen Terminierungswiderstand von 100 Ohm - 35 Ohm =
>65 Ohm kommen.

Also 68 Ohm, Normwert.

>Diesen Widerstand würde ich nun für SCK und MOSI verwenden.

>Kann ich so vorgehen?

Ja.

>Muss ich für die MISO-Terminierung 100 Ohm - Ri_Sensor rechnen?? Oder
>lasse ich die Terminierung für MISO und MOSI am besten weg??

Würde ich weglassen, kritisch ist in erster Linie SCK, ggf. CS.

MFG
Falk

von Martin R. (martin84)


Lesenswert?

Danke Falk!! :-)

Werd es gleich mal umsetzen...

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.