Forum: Mikrocontroller und Digitale Elektronik I2C-Bus


von Dennis Goetz (Gast)


Lesenswert?

Hallo,
ich möchte eine Temperaturerfassung mit I2C realisieren und bräuchte da
mal eine Aussage über die maximale Anzahl der Slaves auf dem Bus. Der
Temp.-Sensor LM92 hat z.B. nur A0 und A1 zum Codieren, sprich, man
könnte gerade mal 4 Sensoren auf einem Bus bereiben. Gibt es da
irgendeine Möglichkeit, die Anzahl zu vergrößern oder zu erweitern? Und
wie läuft das mit der 10bit-Adressierung? Hilft mir das vielleicht
weiter?
Ursprünglich war mal 1-wire von Dallas angedacht, aber die können die
Temp.-Sensoren Ds18B20 nicht liefern, daher der Umstieg auf I2C.

Bin für jede Hilfe dankbar!

Viele Grüße, Dennis

von Andreas Hesse (Gast)


Lesenswert?

Hallo,

bei der 7-Bit-Adressierung kannst Du max. 128 Geräte anschliessen.
Bei dem Sensor sind es max. 4 (wie Du schon gesagt hast).
Die 10-Bit Adressierung bringt meinem Verständnis nach nur dann was,
wenn Du 10-Bit Devices hast.

Es gibt einen LM75 mit drei Adressbits (die Genauigkeit ist aber
schlechter).
Man könnte auch die I2C-A/D Wandler PCF8591 (4 A/D Converter * 8 ICs =
32 Messpunkte) nehmen und andere Sensoren (KTY..) verwenden. Nur das
ist mehr Aufwand.


Gruss
Andreas

von Dominik (Gast)


Lesenswert?

Wenn ich mich nicht irre, dann gibt es auch Expander-IC's mit denen man
wieder mehrere Bausteine mit der gleichen Adresse anschließen kann.

Dominik

von Florian (Gast)


Lesenswert?

Die Frage ist doch dann wenn man so einen expander verwenden muss ob man
dann nicht gleich nen anderen chip verwenden sollte / könnte.
mfg Flo

von phagsae (Gast)


Lesenswert?

Hallo Dennis

Hatt mal ein ähnliches Problem , identische Bauteile mit i2c.
Hab dann im Forum den Tipp mit Analogschalten 74HC66 bekommen und
ausprobiert.
Das funktioniert ganz ordentlich und ist spottbillig.
Die i2C Expander sind teuer und eigentlich nirgendwo erhältlich.

Die pullups werden jeweils in den "Ur-Bus" und in den geschaltenen
verteilt. ( Halbe Werte )

Nachteil: Je erweiterung muss ein IO pin verwendet werden.

Phagsae.

von Alexander Niessen (Gast)


Lesenswert?

Da du der Master bist, hast du die Sache doch selber in der Hand:
Eine billige und einfache Möglichkeit wäre einen zweiten I2C-Bus am
Mikrocontroller zu realisieren und damit die Anzahl der Sensoren zu
verdoppeln.

Grüße,
Alex

von Tobi (Gast)


Lesenswert?

@phagsae:
man kann doch den analogschalter über eine i2c porterweiterung
umschalten. dann verliert man keinen pin

von Sebastian (Gast)


Lesenswert?

Guck mal nach dem TMP100 von TI. Der hat drei freie Adressbits, also
maximal 127 Devices.

von phagsae (Gast)


Lesenswert?

@ tobi
Hmmm.. klingt eigentlich ganz gut.
Müsste man aber vom gefühl her noch ein Zeitglied einbauen.
Der IO Expander schaltet sich ja dann den Bus um an dem er selbst
hängt.
Das könnte komische Effekte produzieren.

Halbe pullup werte ist natürlich kompletter Unsinn
Muss wohl an halbieren gedacht haben.

Phagsae

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.