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
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?"
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.
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.
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 :)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.