I2C mehrere Slaves, selbe Addresse

OP #5503024
Lesenswert?

Hi,

Ich habe eine Problem, und zwar möchte ich mehrere dieser Farbsensoren 
auf den selben I2C Bus legen: 
https://www.aliexpress.com/item/5-pcs-DIY-Mall-RGB-Gesture-Sensor-APDS-9960-APDS-9960-for-Arduino-I2C-Interface-3/32756777280.html?spm=a2g0s.9042311.0.0.27424c4dNMKUM5

Nun haben die aber keine Möglichkeit, die Addresse zu ändern, warum auch 
immer dies so konstruiert wurde o_0. Was wäre die einfachste 
Möglichkeit, 6 von den Dingern auf dem selben I2C Bus zu verwenden? 
Power Up mit Transistor für jeden Sensor? Dann müsste aber 
wahrscheinlich auch jedes mal die ganze Initialisierung getätigt werden, 
also einen ziemlichen overhead.
#5503064
Lesenswert?

Bert S. schrieb:
> auf dem selben I2C Bus zu verwenden?

Wie wörtlich ist das zu verstehen? I2C ist räumlich meist enger 
aufgestellt, so dass getrennte Verkabelung nicht unbedingt das 
Hauptproblem sein muss.

Alle direkt an einem Bus geht nicht. Irgendwas muss dazwischen. 
I2C-Muxer erzeugen mehr oder weniger zentral getrennte Busse. 
Adresstranslatoren können direkt an jedem Sensor angebracht werden und 
diese damit einzeln vom Bus abkoppeln.
Beitrag #5503081 wurde von einem Moderator gelöscht.
#5503145
Lesenswert?

Boris O. schrieb:
> Ein einfacher 74er Multiplexer für SCL, ohne Clock-Signal arbeitet
> keiner der Chips.

Unsauber. Die Start Condition aktiviert SDA bei inaktivem SCL. Muxed man 
SCL bei gemeinsamem SDA, kriegt jeder Slave die Start Condition ab, 
nicht nur einer. Wenn man SDA statt SCL muxed (dann aber bidirektional) 
kriegt nur einer die Start Condition zu sehen und die anderen ignorieren 
den Bus.
(Firma: Vescomp) #5503158
Lesenswert?

A. K. schrieb:
> Die Start Condition aktiviert SDA bei inaktivem SCL. Muxed man SCL bei
> gemeinsamem SDA, kriegt jeder Slave die Start Condition ab, nicht nur
> einer. Wenn man SDA statt SCL muxed kriegt nur einer die Start Condition
> zu sehen und die anderen ignorieren den Bus.

 Hmmm.

 Man kann auch unbenutzte SCL auf LOW halten, ist ja nicht verboten,
 wenn auch unüblich und normalerweise nur beim Clockstreching gebraucht.

 Beim Start dann zuerst SDAx auf HIGH -> SCLx auf HIGH ->  SDAx auf LOW.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren