An der I²C Schnitstelle des MSP430 hängen parallel: eine Uhr DS32C35 und ein Feuchtefühler SHT21. Das läuft problemlos. Jetzt sollte ein weiterer Feuchtefühler dazukommen. Da beide Feuchtefühler intern die gleiche Adresse (0x40) haben, sollte die V+ Leitung getrennt werden und der SHT21 über einen Ausgang des MSP430 (hier P3.0 = H) versorgt werden (P3OUT | =BIT0); Das funktioniert auch noch. Wenn aber P3.0 auf L gelegt wird, um den Fühler abzuschalten, zeigt die Uhr irre Werte an und dann hängt sich das Programm auf. Nun zur eigentliche Frage: Welche Möglichkeit gibt es, mehrere Geräte mit gleicher Adresse an I²C zu betreiben?
>Welche Möglichkeit gibt es, mehrere Geräte mit gleicher Adresse an I²C >zu betreiben? google i2c multipexer
wolle g. schrieb: > Welche Möglichkeit gibt es, mehrere Geräte mit gleicher Adresse an I²C > zu betreiben? Ja, mit I2C Multiplexer, z.B. so etwas: http://www.nxp.com/documents/data_sheet/PCA9547.pdf oder es könnte auch mit Analogmultiplexern wie z.B. 74HC405x
holger schrieb: > i2c multipexer oder analog Multiplexer 74HC4052 Max H. schrieb: > oder es könnte auch mit Analogmultiplexern wie z.B. 74HC405x hihi 2 doofe ein Gedanke der 52 bietet sich doch direkt an, 2 aus 4
:
Bearbeitet durch User
der ist ein 4fach I2C Umschalter http://docs-europe.electrocomponents.com/webdocs/0b4c/0900766b80b4cb76.pdf und kommt sogar mit unterschiedlichen Spannungen am I2C Bus klar.
Du weist schon, dass du die sht21 addressieren kannst? Frag mal bei Sensirion wegen der Saftware an. Benutze ich täglich.
murr schrieb: > Du weist schon, dass du die sht21 addressieren kannst? Nein, das war mir nicht bekannt. > Frag mal bei Sensirion wegen der Saftware an. Gibt es da Lizenzprobleme, oder könntest Du mir die Saftware zukommen lassen. > Benutze ich täglich. Dann nehme ich mal an, dass Du mit den Dingern ausreichend Erfahrungen hast. Obwohl für die Fühler nur max +- 3%Fehler angegeben werden, komme ich bei dem SHT21 bei 75% (gesättigte NaCl-Lösung) auf ca 68% und bei dem Si7021 auf ca 84%. Wie sind denn Deine Erfahrungen?
murr schrieb: > Du weist schon, dass du die sht21 addressieren kannst? > Frag mal bei Sensirion wegen der Saftware an. > Benutze ich täglich. Man kann bei den SHT21 die I2C-Adresse umprogrammieren? Das ist SEHR interessant? Kannst Du näheres dazu erklären? Ich stehe gerade vor demselben Problem. VCC abklemmen funktioniert nicht, da der unversorgte SHT21 den I2C-Bus stört (im Datenblatt wird sogar erwähnt, dass bei VCC=GND der SHT21 sowohl SDA als auch SCL ebenfalls auf GND zieht). Was wohl funktioniert ist SCL separat pro SHT21 und SDA gemeinsam. Aber das Umprogrammieren der I2C-Adresse wäre natürlich VIEL einfacher. LG, Sebastian
Sebastian Wangnick schrieb: > murr schrieb: >> Du weist schon, dass du die sht21 addressieren kannst? >> Frag mal bei Sensirion wegen der Saftware an. >> Benutze ich täglich. > > Man kann bei den SHT21 die I2C-Adresse umprogrammieren? Das ist SEHR > interessant? Kannst Du näheres dazu erklären? Da keine weitere Erklärung von murr kommt, nehme ich an, dass er/sie einfach nur die allgemeine I2C-Adressierung angesprochen hat, nicht aber das Problem der gleichen I2C-Adresse aller SHT21-Sensoren. Sensirion hat mir heute auf Anfrage bestätigt, dass sich in der Tat die I2C Adresse des SHT21 nicht umprogrammieren lässt. Eine gemeinsame SDA-Leitung mit je separater SCL pro SHT21 scheint bei mir gut zu funktionieren, macht aber natürlich die Programmierung etwas aufwendiger (und belegt einen weiteren Pin). LG, Sebastian
> Sebastian Wangnick schrieb: > Ich stehe gerade vor demselben Problem. VCC abklemmen funktioniert > nicht, da der unversorgte SHT21 den I2C-Bus stört Hallo, wenn man so was machen will, dann muß man die Leitungen entkoppeln. Also mindestens in die Leitung vor jedem Chip den man abschalten will, einen Widerstand, der so groß ist, dass der abgeschaltete IC die Leitung nicht runter zerrt. Aber natürlich auch nicht zu groß, sonst wird Leitung zu lahm. Aber I²C ist ja eh keine Ausgeburt an Geschwindigkeit. Ich würde mal so 1kOhm ausprobieren. Alternativ zu den i²C-Muxern könnte man auch Analogschalter nutzen, um die Leitungen zu trennen. Gruß Öletronika
Sebastian Wangnick schrieb: > Sensirion hat mir heute auf Anfrage bestätigt, dass sich in der Tat die > I2C Adresse des SHT21 nicht umprogrammieren lässt. Dann werde ich mal mit Analogschaltern arbeiten. Da ich nur SMD-Schalter habe, muss ich erst einmal eine kleine Leiterplatte anfertigen.
Hallo Sebastian, auch an Dich mal die Frage: Wie sind Deine Erfahrungen mit der Messgenauigkeit der Fühler? Natürlich kann sich jeder, der mit SHT21 oder mit Si7021 Erfahrung hat, beteiligen.
wolle g. schrieb: > auch an Dich mal die Frage: Wie sind Deine Erfahrungen mit der > Messgenauigkeit der Fühler? Muss ich noch mal eine Messreihe machen. Ich hab jetzt noch eine recht einfache Hardwarelösung für I2C-Multiplexing im Versuch, die so weit gut funktioniert (inklusive clock stretching durch die SHT21), siehe Anhang. Der gesamte Strom für die I2C-Sensoren wird durch einen Atmega-Port geliefert, dort sind auch alle I2C-Pullup-Widerstände angehängt. LG, Sebastian
@ Sebastian Wangnick (wangnick) >Ich hab jetzt noch eine recht einfache Hardwarelösung für >I2C-Multiplexing im Versuch, die so weit gut funktioniert (inklusive Sieht komisch aus. Ich hab das einfacher gemacht. Einfach I2C per Software und das auf mehreren Pins. Fertig. ALternativ ein I2C MUX, PCFirgendwas. Oder gute, alte Analogschalter ala 4066. Aber dieses Konstrukt da oben? neee.
Falk Brunner schrieb: > Ich hab das einfacher gemacht. Einfach I2C per > Software und das auf mehreren Pins. Fertig. Auch mein erstes Vorgehen. Allerdings sind beim Fleury-Code die Ports hardcodiert, so dass man die Funktionen pro Sensor duplizieren muss. Nicht so schön. > ALternativ ein I2C MUX, PCFirgendwas. > Oder gute, alte Analogschalter ala 4066. Leider nicht in meinem Bastelvorrat. > Sieht komisch aus. Aber dieses Konstrukt da oben? neee. Ist doch nur ein Transistor, ein I2C-Pullup, ein Basisvorwiderstand und ein uC-Enable-Pin pro SCL-Slaveleitung. Es braucht eben auch nicht mehr. Oder wo liegt das Problem? LG, Sebastian
:
Bearbeitet durch User
Problem gelöst. Die Stromversorgung für die Fühler ist immer EIN. Die Daten- und Taktleitungen werden über Analogschalter umgeschaltet. Verwendete Analogschalter: TS5A3159
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.