Forum: Mikrocontroller und Digitale Elektronik i2C-Bus und maximal mögliche Sensoren


von Stefan L. (avlbger)


Lesenswert?

Hallo zusammen,

Ich versuche mich gerade ein wenig in i2C einzulesen da ich 
i2C-Temperatursensoren für die Neuauflage meiner Solarsteuerung 
verwenden möchte.

Auf der Suche nach Sensoren ist mir aufgefallen dass die meisten, 
zumindest die die in meine nähere Auswahl gekommen sind 
(LM75/LM76/ADT7410) nur 8 bzw. 4 unterschiedliche Adressen haben.

Wenn ich nun also mehr Sensoren anschließen möchte habe ich in dem Fall 
also ein Problem.. ich frage mich nun, warum hier so restriktiv mit den 
möglichen Adressen umgegangen wird, da der Bus selbst ja sicherlich weit 
mehr als die paar Sensoren verkraftet, oder?

Mein erster Plan, als ich festgestellt habe dass der ADT7410 nur 4 
Adressen definierbar hat war, dass ich einfach zusätzlich noch andere 
Sensoren verwenden wollte die andere Adressen haben.. blöderweise haben 
alle oben angegebenen Sensoren 1001 fix vorgegeben, der ADT sogar 10010, 
womit ich also auch mit Kombination dieser Sensoren nur max 8 
zusammenbekomme..

Wie geht ihr sowas an oder kennt jemand Temperatursensoren wo ich mehr 
als 8 an einen i2cBus anschliessen kann?

Falls die Frage total bescheuert ist und ich grad einfach total auf der 
Leitung stehe entschuldige ich mich mal vorab :) Bin eben erst dabei 
mich mit Mikrocontrollern und Peripherie zu befassen und zu lernen..

vg,
Stefan

von TestX .. (xaos)


Lesenswert?

i2c multiplexer und gut

von Matthias (Gast)


Lesenswert?

Stefan L. schrieb:
> Wie geht ihr sowas an oder kennt jemand Temperatursensoren wo ich mehr
> als 8 an einen i2cBus anschliessen kann?

Ein I2C-Bus Multiplexer könnte eine mögliche Lösung sein
Beitrag "Re: 50 X LM75 an ATMEGA16?"

von Obelix X. (obelix)


Lesenswert?

Schau dir mal die Daten auf einem i2c Bus an. Da siehst du, das als 
erstes die Adresse des i2c IC gesendet wird. Ein Bit geht drauf für das 
r/w Bit. Es bleiben also 7 Bit übrig. Es gibt aber nun auch noch andere 
ICs als die Temp-Sensoren, die auch ihre Adresse haben wollen. Damit es 
nun keine Doppelbelegungen der Adressen gibt bleibt nicht  viel Auswahl 
an Adressen. Ausser man benutzt die oben erwähnten Multiplexer.

von Martin (Gast)


Lesenswert?

Obelix X. schrieb:
> Damit es nun keine Doppelbelegungen der Adressen gibt bleibt nicht
> viel Auswahl an Adressen.

Darum hat man ja die 10-Bit Adressen für den I2C-Bus eingeführt, die 
kompatibel zu den Bausteinen mit 7-Bit Adresse sind und deutlich mehr 
Spielraum geben, aber nicht so verbreitet sind.

von Stefan L. (avlbger)


Lesenswert?

Danke für die Antworten, Multiplexer scheints dann wohl zu sein, na dann 
werd ich mich da auch mal einlesen..

Ja 7 Bit bleiben für die Adressierung über, aber davon sind ja zumindest 
bei den von mir begutachteten Sensoren nur 2 bzw. 3 Bit frei 
definierbar.
Und da frag ich mich halt warum das so ist, weil wenn die 7 Bit frei 
definierbar wären, dann könnte sich ja jeder die Adressen seiner 
Busteilnehmer selbst zusammenstellen und hätte somit kaum das Problem 
dass man auf 8 Temperatursensoren limitiert ist oder so.. naja.. es wird 
schon seine Gründe haben, weiß es zwar nicht, aber eventuell gibts auch 
hier so etwas wie Geräteklassen, also dass z.b alle Tempsensoren eine 
Adresse haben die mit 1001 beginnt... oder es liegt halt daran dass die 
Anzahl der Pins eben auch limitiert ist und deshalb nur ein paar Bit 
durch Pins frei wählbar sind..

Egal.. Multiplexer ist das Zauberwort, dann werd ich gleich mal 
recherchieren und hoffen dass das nicht allzu kompliziert ist :)

von Peter Kranl (Gast)


Lesenswert?

Der TMP175 von TI hat 27 Adressen und ist zum LM75 softwarekompatibel.

von Obelix X. (obelix)


Lesenswert?

Stefan L. schrieb:
> Ja 7 Bit bleiben für die Adressierung über, aber davon sind ja zumindest
> bei den von mir begutachteten Sensoren nur 2 bzw. 3 Bit frei
> definierbar.

Diw ICs würden dann aufwendiger werden oder mehr Pins benötigen, was die 
ICs teurer macht. Ich weiß, z.B. bei einem Saa1064 werden auch nicht 
mehrere Pins verwendet.

von Klaus 2. (klaus2m5)


Lesenswert?

Pins übrig: Mehrere I2C-buses
Pins knapp: Subcontroller sammelt Daten über mehrere I2C-buses

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.