PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2c



stefan8010
05.10.2011, 06:31
Hallo,

ich besitze verschiedene I2C Sensoren, die alle die gleiche Slave Adresse besitzen und an denen man diese nicht ohne Zerstörung des Gehäuses ändern kann.
Gibt es ein IC mit welchem es möglich ist Hardwaremäßig die Adresse zu ändern? Also in etwa so:
Mikrokontroller --> IC mit festdefinierter Adresse x --> Inputport 1 --> Sensor mit identischer Slave Adresse wie an Port2
Mikrokontroller --> IC mit festdefinierter Adresse y --> Inputport 2 --> Sensor mit identischer Slave Adresse wie an Port1
usw.

Gruß
Stefan8010

Klebwax
05.10.2011, 07:15
Hallo,

ich besitze verschiedene I2C Sensoren, die alle die gleiche Slave Adresse besitzen und an denen man diese nicht ohne Zerstörung des Gehäuses ändern kann.
Gibt es ein IC mit welchem es möglich ist Hardwaremäßig die Adresse zu ändern?

Das macht man in etwa so: Man teilt den I2C Bus in mehrere Segmente auf. Auf jedem Segment darf dann jede Adresse nur einmal vorkommen. Der µC spricht dann nur mit einem Segment und sieht jede Adresse nur einmal. Das Umschalten zwischen den Segmenten erfolgt praktischerweise auch über I2C, dann braucht man keine weiteren Portleitungen dafür. Bei NXP gibt es dafür den PCA9546A. Der kann auch Busse mit verschiedenen Spannungen verbinden.

MfG Klebwax

BMS
05.10.2011, 11:30
Hallo,
vielleicht sind Multiplexer eine Lösung?
Sodass der Mikrocontroller steuern kann, mit welchem Slave seine SDA und SCL-Leitungen verbunden werden sollen?
Grüße,
Bernhard

stefan8010
07.10.2011, 12:25
Hallo,

danke!

Werde das mal versuchen. Habe aber noch eine Frage. Wenn ich an SDA und SCL 83k Pull Ups habe, kann ich dann die Widerstände an channel0-channel3 nicht weg lassen, oder welchen Wert sollten diese besitzen?

Nach dem Adresswert kommt ja das Controll Register. Wenn ich beispielsweise channel0 (SD0/SC0) auslesen möchte, muss ich dann nach dem Adresswert einfach nur Hex1 senden?

Gruß
stefan8010

Valen
07.10.2011, 13:44
Hallo,

danke!

Werde das mal versuchen. Habe aber noch eine Frage. Wenn ich an SDA und SCL 83k Pull Ups habe, kann ich dann die Widerstände an channel0-channel3 nicht weg lassen, oder welchen Wert sollten diese besitzen?
...Das ist im English, aber es wird du weiter helfen.

http://www.dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors.html

83k Pull ups sieht etwas wenig aus ( 1 bis 2 kohm ist starker), aber das ist abhängich von dein I2C netz. Wie fiel Bus-kapazität die ICs und Leitungen gesammt zusammen generieren. Starke Pull-ups 'laden' die I2C Buss schneller auf, und dass hat du erfolg das die Pegelflanken starker aufsteigen. Mit schwache Pull-ups steigen die Pegelflanken zu langsam und dan kann es vorkommen die I2C Pegeln nicht erkannt werden. Aber das können die Bilder in dem Link oben besser erklären. Um die Pegelflanken zu sehen sollte man das mit ein Oszilloskop anschauen. Mit den Kapazität Funktion einer Multimesser geht das vermutlich nicht so einfach.

Hellmut
17.10.2011, 19:15
Es gibt von TI auch I2C Multiplexer. Ich muss 16 Temperatur und Feuchtesensoren von Sensirion ansprechen und die haben auch alle die gleiche I2C-Adresse. ich werde einen I2C Multiplexer verwenden der über 3 externe Pins von uC umgeschaltet wird. Genaue Type werde ich erst in den nächsten Tagen entscheiden, da es auch um die Verfügbarkeit und den Mindestbestellwert ohne Portokosten beim Lieferanten, Digikey, bei der nächsten Bestellung geht.

021aet04
19.10.2011, 09:05
Vielleicht kannst du die Multiplexer als Sample bestellen. Die bekommst du normalerweise kostenlos.

MfG Hannes

Richard
19.10.2011, 11:35
Das ist im English, aber es wird du weiter helfen.

http://www.dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors.html

83k Pull ups sieht etwas wenig aus ( 1 bis 2 kohm ist starker),


83 k sind eher viel zu groß, üblich sind ca. 4k7.

Gruß Richard

Chypsylon
19.10.2011, 14:55
83 k sind eher viel zu groß, üblich sind ca. 4k7.

Gruß Richard

Nicht unbedingt, wennn er z.b einen Lego NXT verwendet sind 82k Pullups vorgeschrieben....