Forum: Mikrocontroller und Digitale Elektronik Frage zu Pull Ups beim TWI (I2C)


von Sepp (Gast)


Lesenswert?

Guten Tag

Ich habe eine Frage zu den pull ups beim TWI-Master.
Normalerweise verwende ich 5K bis 10 Widerstände beim TWI(I2C).
Jetzt habe ich den Fall, dass an einen Master nur gelegentlich ein oder 
mehrere Slaves angeschlossen werden.
Kann man da die beiden Pins mehrfach verwenden, indem anstatt der pull 
up Widerstände low current LED's mit Vorwiderstand verwende?

Funktioniert das problemlos, oder ist dass eine Schnapsidee?

mfg Sepp

von (prx) A. K. (prx)


Lesenswert?

Ersetzt nicht den notwendigen Pullup. An der LED gehen über 2V drauf, da 
passt der "high" Pegel sonst nicht mehr.

Strombelastung beachten. Der AVR zieht alles runter, aber der I2C-Slave 
könnte Probleme kriegen.

von Sepp (Gast)


Lesenswert?

A. K. schrieb:
> Strombelastung beachten. Der AVR zieht alles runter, aber der I2C-Slave
> könnte Probleme kriegen.
Die verwendeten LED's leuchten schon bei 4 mA ausreichend hell.
Können die Slaves diesen Strom "runterziehen"?

A. K. schrieb:
>Geht, ersetzt aber nicht den notwendigen Pullup. An der LED gehen über
>2V drauf, da passt der "high" Pegel sonst nicht mehr.
Ich hatte eigentlich vor den pull up zu ersetzen.
Ist es nicht egal, dass wenn ein Teilnehmer die Leitung auf low legt an 
der LED 2V abfallen und am Vorwiderstand 3V anstatt den 5V beim pull up?

Ich hatte eigentlich nur damit gerechnet dass die 4mA zu viel sein 
könnten oder dass irgendwelche kapazitiven Effekte sich negativ 
auswiken.

von (prx) A. K. (prx)


Lesenswert?

Sepp schrieb:

> Die verwendeten LED's leuchten schon bei 4 mA ausreichend hell.
> Können die Slaves diesen Strom "runterziehen"?

Das sagt dir das Datasheet des mir unbekannten Slaves.

> Ist es nicht egal, dass wenn ein Teilnehmer die Leitung auf low legt an
> der LED 2V abfallen und am Vorwiderstand 3V anstatt den 5V beim pull up?

Der "low" Zustand ist nicht das Problem. Der "high" Zustand ist es. Denn 
wer sorgt dafür? Die LED nicht, die hört zu früh auf.

von Sepp (Gast)


Lesenswert?

A. K. schrieb:
> Sepp schrieb:
>
>> Die verwendeten LED's leuchten schon bei 4 mA ausreichend hell.
>> Können die Slaves diesen Strom "runterziehen"?
>
> Das sagt dir das Datasheet des mir unbekannten Slaves.
Aktuell werden nur AVR's angeschlossen.
Da ich bis jetzt den TWI nur zur Komunikation zwischen AVRs verwendet 
habe, weis ich nicht wie viel Strom typischerweise von anderen I2C 
Bausteinen verkraftet wird. Desswegen wollte ich wissen, wie groß der 
Strom bei im Normalfall sein kann. Ich will ja nicht alles umlöten 
müssen, nur weil ich I2C Teilnehmer anschließen will die nicht wie der 
AVR höhere Ströme verkraftet.

A. K. schrieb:
> Der "low" Zustand ist nicht das Problem. Der "high" Zustand ist es. Denn
> wer sorgt dafür? Die LED nicht, die hört zu früh auf.
Ich dachte dass im high-Zustand alle Eingänge sehr hochohmig sind, 
wodurch so gut wie gar kein Strom fließt. Da dürfte auch bei einer LED 
so gut wie keine Spannung abfallen.

Da sieht man's wieder. Man lern nie aus.

von HildeK (Gast)


Lesenswert?

Sepp schrieb:
> Ich dachte dass im high-Zustand alle Eingänge sehr hochohmig sind,
> wodurch so gut wie gar kein Strom fließt.

Ist ja nicht ganz falsch, deshalb hat man ja auch die Pull-Ups, um einen 
richtigen HIGH-Pegel zu erreichen. Derjenige, der das Signal liest, hat 
auch keinen unendlich hohem Eingangswiderstand. Und er will eine 
ordentliche '1' sehen.
Wenn deine Slaves imstande sind, die 4mA der LED und noch 1mA für den PU 
zu sinken, dann schalte einfach noch einen normalen R als Pullup 
parallel zu den LEDS+R, so wie vorher auch. Oder spendiere einen 
zusätzlichen Buffer á la 74xx125 für die Anzeige.

von Sepp (Gast)


Lesenswert?

Hi Leute
Ich habe es jetzt so gelöst, dass die LEDs mit Vorwiderstand in einem 
Blindstecker sitzen.

Wenn Slaves angeschlossen werden sollen, nehme ich den Stecker heraus 
und stecke den Verteiler mit den pull up Widerständen hinein.

Aber weil mir das Ganze keine Ruhe gelassen hat, habe ich es trotzdem 
einmal nur mit LED's und Vorwiderständen versucht.
Es hat sauber funktioniert.
Ich weis zwar nicht wie es dynamisch aussieht, aber wenn ich langsam 
zwischen high, low und tristate wechsle, kann ich mit meinem Multimeter 
keinen Unterschied zur konventionellen Widerstandsmethode messen.

von Pothead (Gast)


Lesenswert?

Probleme wird die Diodenkapazität machen, da sie die maximale Datenrate 
nicht unerheblich beschränken wird. Brute force: Pack einen Widerstand 
parallel zur LED.

Sepp schrieb:
> Ich weis zwar nicht wie es dynamisch aussieht, aber wenn ich langsam
> zwischen high, low und tristate wechsle, kann ich mit meinem Multimeter
> keinen Unterschied zur konventionellen Widerstandsmethode messen.

Hol schnell das Oszilloskop raus!

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.