Forum: Mikrocontroller und Digitale Elektronik Mehrere Pull-Up-Widerstände notwendig?


von Florian K. (f-kae)


Lesenswert?

Hallo,

beim Erstellen meines Boardlayouts bin ich gerade auf eine Frage 
gestossen.

Ich nutze einen µC und habe an diesen 3 Geräte über I2C angeschlossen, 
diese teilen sich ja die beiden Leitungen SDA und SCL und man braucht ja 
grundsätzlich Pull-Up Widerstände an diesen Leitungen. Wie gehe ich denn 
nun vor wenn ich eben drei Devices habe und verschiedene 
Pull-Up-Widerstandswerte.

Bauelemente:

HMC5883L -> 2,2k Ohm
BMP085 -> 4,7k Ohm
LSM303DLHC -> 10k Ohm

Ich nehme an alle Pullups müssen verbaut werden und diese so nah am 
Bauelement wie möglich, aber warum stören sich die Pull-Ups dann nicht 
gegenseitig? Beziehungsweise "sehen" die Bauelemente nicht nur die 
Parallel-Schaltung der Widerstände?

Viele Grüße,
Florian

von MaWin (Gast)


Lesenswert?

Man nimmt den kleinsten Wert und platziert nur einen Widerstand,
als demnach nicht direkt neben jedem Bauteil,
sondern egal wo.


Nur bei ganz langen Leitungen kann eine Endterminierung nötig sein.
So lang ist deine Platine nicht.

von datenblatt (Gast)


Lesenswert?

I2C dürfen nur einen PULL-UP pro Leitung haben.
mit 4,7k läufst du nicht schlecht.

Hab mir die Datenblätter der Chips aber nicht angeguckt!

von Der (Gast)


Lesenswert?

datenblatt schrieb:
> I2C dürfen nur einen PULL-UP pro Leitung haben.

Nö, du kannst beliebig viele hinmachen. Interessant ist nur der 
Gesamtwiderstand. Und man muss mehr löten...

von HildeK (Gast)


Lesenswert?

Florian K. schrieb:
> Wie gehe ich denn
> nun vor wenn ich eben drei Devices habe und verschiedene
> Pull-Up-Widerstandswerte.

Da sich alle I2C nennen (und nicht einer davon TWI), müssen die 
Hersteller vermutlich sogar Lizenzgebühren an NXP zahlen und ich gehe 
davon aus, dass sie die Spezifikationen von I2C auch einhalten (auf 
NXP-Webseite auffindbar). In dem Papier stehen auch Kurven zur 
Verfügung, die einem helfen, den richtigen PuP auszuwählen - nach den 
unten genannten Randbedingungen.
Da spielen nämlich eine Reihe von Parametern zur Auswahl der PullUps 
eine Rolle.
1. mit welcher Geschwindigkeit soll der Bus laufen, 100kBit/s oder 
400kBit/s?
2. wie lange sind die Leitungen und wie viele Slaves hängen dran - bzw. 
wie groß ist die dadurch hervorgerufenen kapazitiven Belastungen?
3. wie hoch ist die Versorgungsspannung?

Ich habe die Zahlen nicht genau im Kopf, aber bei 3.3V ist bei 700Ω-800Ω 
die untere Grenze erreicht. Und bei kleiner Platine, einem einzelnen 
Slave und 100kBit/s sind sicher auch 10kΩ ein brauchbarer Wert.

Je niederohmiger der PuP wird, desto mehr Strom benötigt die Schaltung - 
klar. Ein niederohmiger PuP trägt aber zu größerer Störsicherheit bei 
und die Schaltung arbeitet auch bei 400kBit/s und etwas längeren 
Leitungen noch zuverlässig.

Wenn du nicht auf Batteriebetrieb angewiesen bist, dann würde ich dir zu 
den 2k2 raten.

von troll (Gast)


Lesenswert?


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.