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.
Du brauchst sowas hier: https://learn.adafruit.com/adafruit-tca9548a-1-to-8-i2c-multiplexer-breakout/overview EDIT: Argh, da war jemand schneller weil ich erstmal gegoogelt hab ob der rgb Chip da keine per software veränderliche Adresse hat :D
:
Bearbeitet durch User
Oder so etwas (viel billiger): https://www.aliexpress.com/item/1PCS-TCA9548A-I2C-Multiplexer-Breakout-board-for-chaining-Modules-NEW/32808950368.html
:
Bearbeitet durch User
oder I2C Address Translater LTC4316/LTC4317 http://www.analog.com/en/products/interface-isolation/i2c-smbus-bus-buffers-accelerators/ltc4316.html http://www.analog.com/en/products/interface-isolation/i2c-smbus-bus-buffers-accelerators/ltc4317.html
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.
:
Bearbeitet durch User
Beitrag #5503081 wurde vom Autor gelöscht.
Ein einfacher 74er Multiplexer für SCL, ohne Clock-Signal arbeitet keiner der Chips. Wird bspw. auf Adafruit beschrieben. https://blog.adafruit.com/2012/07/02/great-scott-delorean-inspired-time-circuit-clock-with-adafruit-gear/
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Da reden wir jetzt aber von der Manipulation des Protokolls in Software... Denke da der TE genau 6 von den Teilen an einem Bus haben wollte, ist er mit einem Multiplexer am besten und einfachsten beraten und erspart ihm vielleicht sogar etwas Verkabelung.
Man kann I2C-Master leicht in SW realisieren. Nimmt man einen 8Bit-Port, sind damit ein SCL- und 7 SDA-Pins möglich. Ohne Start/Stop werden die SCL-Takte ignoriert. Die Auswahl des SDA-Pins erfolgt über eine Bitmaske (0x01..0x40).
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.