Seite 1 von 1

Nimm Zwei

Verfasst: 29 Nov 2021, 21:52
von Pinot
Ich hab zwei identische Sensoren (Gestensensor aus Smarttech-Kasten) mit I2C-Schnittstelle. Dummerweise haben die jetzt ja die gleiche Adresse. Wie programmiert man denn die I2C-Adresse eines Bausteins um? Und woher bekomme ich eine Übersicht der vegebenen I2C-Adressen, damit ich eine freie aussuchen kann? Besten Dank fuer Tipps und Links.

Re: Nimm Zwei

Verfasst: 29 Nov 2021, 23:52
von fishfriend
Hallo...
Ich kann da nur bedinngt helfen. Ist auch nicht ft.
Ist auch schon etwas her.
Ich hab mir auf einen Arduino ein I2C Suchprogramm geladen und dann einfache alle ausgelesen.
Das folgende ist noch länger her:
Ich meine es gibt da soetwas wie "Verteiler". Da konnte man mehrere I2C "Netze" zusammenschalten und die Adressbereiche ändern.

Ich könnte mir vorstellen, dass man das auch mit einem Arduino oder Rasberry Pi hin bekommt.

Vom Protokoll her sollte es auch mit einem TXT gehen, ich denke jedoch, da sollte man es ehr von PC-Seite und C++ Programm machen.
So nach dem Motto alle Adressen durch Pingen. Das dürfte aber lange dauern, wegen dem Timeout bei jeder Adresse.
Also wie gesagt von ft-Seite hab ich es noch nicht gemacht.
Mit freundlichen Grüßen
fishfriend
Holger Howey

Re: Nimm Zwei

Verfasst: 30 Nov 2021, 00:52
von Bjoern
Hallo Pinot,

sinnvollerweise solltest du herausfinden was da für ein Chip drin ist. Den Smarttech Kasten habe ich zwar auch, aber mangels Zeit bisher wenig gemacht.
Wenn du weißt was für ein Chip drin ist findet man über die Datenblätter heraus, ob du dessen Adresse überhaupt ändern kannst. Falls ja, natürlich auch wie.
Geht das nicht und du willst unbedingt beide an einem TXT betrieben, dann bleibt noch der Umweg über einen Multiplexer. Der hat dann sozusagen einen Eingang und x-Ausgänge. Dann klappt das auch wenn die alle die gleiche Adresse haben, da Sie eben alle an einem anderen Port hängen und der Multiplexer (TCA9548a) die Arbeit macht. Da musst du aber löten. Bundhülsen bekommst du da keine dran. Maximal eine Stiftleiste.

Anderer Weg wäre natürlich den Bus zu scannen. Da könntest du dir den Code von einem Arduino I²C Scanner abschauen und einfach mit freien I²C Befehlen in RoboPro nachbauen.
Du musst einfach nur an alle Adressen versuchen zu senden. Bekommst du einen Fehler zurück, dann gibt es dort kein I²C Gerät.

Wir hatten das Thema mit dem Sensor mal hier. Müsste ein apds9960 sein. Ist auf Adresse 0x39.
Schau mal hier https://www.google.com/url?sa=t&rct=j&q ... kW8gbtrAuB
Und dort: The device supports a single slave address of 0×39 Hex using 7-bit addressing protocol. Also bleibt dir nur der Multiplexer wenn du unbedingt 2 an einem TXT betreiben willst.

Björn

Re: Nimm Zwei

Verfasst: 01 Dez 2021, 01:15
von Dirk Fox
Hallo Pinot,

ja, Björn hat recht - der Gestensensor ist ein APDS9960 von Avago.
Zum Multiplexer: siehe ft:pedia 2/2013.

Beste Grüße,
Dirk

Re: Nimm Zwei

Verfasst: 01 Dez 2021, 02:29
von PHabermehl
Das ist echt schade - die I²C-Adresse konfigurieren zu können, wäre wirklich schön. Aber Björn hat das Datenblatt ja schon zitiert, geht also nicht.

Gruß Peter

Re: Nimm Zwei

Verfasst: 01 Dez 2021, 09:01
von fishfriend
Hallo...
Gerad noch mal wiedergefunden "I2C Traslater" waren die Umsetzer.
EIne noch einfachere Moglichkeit ist mehrere I2C mit der selben Adresse zu verwenden wird hier beschrieben:
https://blog.adafruit.com/2012/07/02/gr ... ruit-gear/
Hier wird mit einem 74HC138 umgeschaltet.
Mit freundlichen Grüßen
fishfriend
Holger Howey