www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Benötigt der i2c-Bus einen Pull-UP


Autor: florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle miteinander, trifft das zu das der I2C-Bus für SDA und SDL 
jeweils einen Pull-UP Widerstand benötigt und gibt es da eine 
Widerstandsvorgabe? hab nämlich gelesen das mind. 3ma über den Pull-UP 
fließen sollen, mein Controller kann aber nur 2ma ab.

Vielen Dank schonmal
MfG Florian

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
florian wrote:
> mein Controller kann aber nur 2ma ab.
Der Controller muss bei I2C die Leitungen gegen Masse ziehen... Da Du 
von 2mA schreibst gehe ich dal davon aus dass es sich nicht um einen 
Mega oder Tiny handelt. Einfach mal im Datenblatt nachsehen ob der 
Controller unterschiedliche Ströme bei "L" und "H" hat.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  florian (Gast)

>Hallo alle miteinander, trifft das zu das der I2C-Bus für SDA und SDL
>jeweils einen Pull-UP Widerstand benötigt und gibt es da eine
>Widerstandsvorgabe?

Je nach Geschwindigleit und Betriebsspannung zwischen 1K und 100K.

> hab nämlich gelesen das mind. 3ma über den Pull-UP
>fließen sollen, mein Controller kann aber nur 2ma ab.

Welcher Controller? Glaub ich kaum, die meisten können wesentlich mehr.
Ausserdem kannst du grössere Widerstände nutzen, dann wird der Bus nur 
etwas langsamer.

MFG
Falk

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, der I2C-Bus benötigt einen Pull-up, an beiden Leitungen. Doch manche 
Bausteine können auch ohne Pull-up laufen, müssen den Bus dann 
allerdings als Master treiben. Geht, ist aber unsauber.

Üblich für die Pull-up's sind bei 5V Betriebsspannung irgendwas zwischen 
10k und 4,3k. Hängt von der Art und Menge der angeschlossenen Geräte ab 
(Kapazität der Busleitungen wäre hier ein Stichwort).

Den Strom kannst du ja berechnen :-) liegt selbst im worst-case deutlich 
unter 2mA.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Falk:

100k wären aber schon arg viel, oder?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Stefan (Gast)

>100k wären aber schon arg viel, oder?

Warum? Wenn man nur wenige ICs am Bus hat und kurze Leitungen und nicht 
schnell kommunizieren muss reicht das. Sagen wir mal 20pF 
Leitungskapazität +2x10pF für die ICs, macht 40pF. Mit 100k ergibt das 
4µs Zeitkonstante und ~8us Anstiegszeit. Damit macht man noch locker 
30kHz.

MfG
Falk

Autor: Thomas Otto (tarzanwiejane)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@florian
Pullups sind absolut notwendig. 4,7k oder 10k sollten es auf jeden fall 
tun.

cu Tarzanwiejane

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2mA ist merkwürdig.

Philips hat für I2C-Bausteine mindestens 3mA festgelegt und daran halten 
sich alle mir bekannten ICs.

Deshalb nehme ich immer 1,8k (=2,8mA) für den I2C.


Peter

Autor: A. F. (artur-f) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich einen Atmega als Master habe und ca. 10 Atmegas als Slave, was 
empfiehlt sich da als Rpu zu nehmen? Sollte man zu 4,7k oder 10k 
tendieren, wenn man noch störsicher und möglichst schnell übertragen 
möchte?

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo setzt man den pullup denn hin? am master?

Oder macht es sinn jeden teilnehmer einen zB 100k Pullup zu geben damit 
sich bei z.B. 8 teilnehmern rund 12 k ergeben?

Autor: A. F. (artur-f) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich (im Normalfall) am Master. Ein Pull-UP kann aber sonst wo am 
BUS platziert werden. Das Spiel glaube ich keine Rolle, ob am Anfang 
oder am Ende. Die Pull-Ups sollen die Pegel der Leitungen auf VCC 
ziehen.

Autor: Martin Ernst (mrtnernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

was für Pullups soll ich am besten bei einem Sensirion SHT1X 
Temperatursensor nehmen? Im Datenblatt ist nur ein Pullup an DATA mit 
10k eingezeichnet und im Atmleldatenblatt vom Atmega 32 zwei 
Widerstände. Was ist euerer Meinung nach nun richtig. Fahre ich bei 
diesem Sensor mit jeweils einem Pullup von um die 2k richtig oder muss 
es unbedingt einer sein und dieser brauch um die 10K?

Danke!

Martin

Autor: Rubelus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe meine SHT11 immer mit 10k hochgezogen. Laufen wunderbar.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

In einem Datenblatt steht Rp<25k.

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.