Forum: Mikrocontroller und Digitale Elektronik I2C-Pull-Up-Widerstand wohin?


von Martin (Gast)


Lesenswert?

Hallo Leute!

Bei meinem Projekt soll der I2C-Bus 4 Meter lang sein. Ein Master und
ein Slave-Gerät hängt dran.
Wo soll man jetzt eigentlich die beiden Pull-Up Widerstände für Clock
und Datenleitung platzieren?
Beim Master-Gerät oder beim Slave?

Danke für eure Antworten

Tschüss

Martin

von Sven Bohner (Gast)


Lesenswert?

... beim master ...

von dragon (Gast)


Lesenswert?

Wie schnell ist deine I2C übertragung? Benutzt du irgendwelche Treiber?

von Martin (Gast)


Lesenswert?

Hallo!

Bis jetzt habe ich die I2C-Funktionen benutzt die mit dem
CodeVisionAVR mitgeliefert werden (Softwareansteuerung).
Dort liegt die Frequenz bei ca. 50KHZ - 80KHZ.
Leider kann man das nicht genau sagen. Am Oszi ist zu erkennen,
dass die Clock-Frequenz zu bestimmten Zeitpunkten nicht immer gleich
ist. Sie variiert.
Ich benutze einen ATMEGA128 und steige gerade auf die Hardware-I2C-
Schnittstelle um. Dort passt das mit dem Clock perfekt.
Von der Frequenz her gehe ich auf 30,418KHZ, damit die Übertragung
sicher ist.

Die Strecke wird gerade auf 15 Meter verlängert und ich habe auch
schon Treiberbausteine gefunden - P82B715.
Im Datenblatt steht, dass mit diesen Treibern das Kabel bis zu
50 Meter lang sein darf, aber eine Gesamtkapazität von 3000pF nicht
überschritten werden darf.

In diesen Datenblätter ist auch beschrieben, wie man die Kapazität
berechnet und daraus dann die Pull-Ups.
Bei einem Master-Gerät und einem Slave-Gerät werden zwei
Treiberbausteine benötigt. Von je einem Gerät zum Treiber wird ein
PULL-UP pro Leitung von ca. 33kOhm benötigt. Auf der Second-Seite
werden die Treiber zusammengeschlossen.
Pro Meter Kabel werden hier 50pF - 100pF gerechnet - Bei 15 Meter Kabel
wären dies im schlimmsten Fall 1500pF. Dieser Pull-Up wird jetzt mit der
Formel R2=1µsec/1500pF berechnet (Wenn ich alles richtig verstanden
habe.). Ich erhalte einen Pull-Up-Widerstand von 667 Ohm.

Gibt man jetzt diesen Widerstand pro Leitung zum Master-Treiber oder
wäre es sinnvoll den Widerstanswert zu verdoppeln und jeweils einen
Widerstand zum Master-Treiber und einen zum Slave-Treiber?

Tschüss

Martin

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.