I2C Multiplexer TCA9548A

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

Hinweis kann nach Kenntnisnahme deaktiviert werden!

  • Für den Fall das man zwei I2C IC mit der gleichen Adresse verwenden muss benötigt man einen separaten I2C Bus. Dies kann einem z. b. mit dem ADXL345 passieren, dieser hat eine nicht änderbare I2C Adresse.
    Hierfür eignet sich ein I2C Multiplexer, dieser hat auch noch den Vorteil das er als Levelshifter arbeitet und man so einfach 5V/3,3V /1,7V Sensoren und Prozessoren in einem System mischen kann. Der I2C Bus besitzt Beschränkungen von der maximalen Leitungskapazität, diese lässt sich durch aufteilen auf mehrere Busse vermeiden.
    Will man später mehr Sensoren zu einem System addieren ohne das Layout zu änder kann man den Multiplexer nachträglich als "Verteiler" an einen Vorhandenen I2C Bus einfach anhängen.
    Wie man sieht benötigt man nur für jeden separaten Bus die passenden Pullup Widerstände zur entsprechenden Bus Spannung.
    tca9548.png
    Quelle: ti.com/lit/ds/symlink/tca9548a.pdf

    Mein Testmodul:
    Image2017_070117_212709_00000.jpg

    Leider ist das Datenblatt etwas „ungenau“. Im Datenblatt im Netz findet man die Device Adresse Hex 70. Passt leider nicht, das Datenblatt zeigt aber auch ein Bitmuster: 01110000 = E0 wenn man es in Hex umrechnet und alle Adresseingänge logisch null sind. Sind Adresseingänge gesetzt einfach für A0=2,A1=4,A2=8 addieren. Darauf reagiert er dann auch richtig:

    Quellcode

    1. const TCA9548write = &HE0 ‘A0,A1 undA2 Adresseingänge =0
    2. i2cstart
    3. i2cwbyte TCA9548write ‘ multiplexer ansprechen
    4. i2cwbyte 1 'kanal waehlen
    5. i2cstop 'ganz wichtig I2C zu stoppen bevor man den neuen Kanal anspricht
    6. i2Cstart .... 'Jetzt das Device ansprechen als ob der Multiplexer nicht da währe
    7. ...
    8. ...
    9. I2Cstop 'Bus Stoppen um den 2ten Kanal zu waehlen
    10. i2cstart
    11. i2cwbyte TCA9548write ‘ multiplexer ansprechen
    12. i2cwbyte 2 'kanal waehlen
    13. i2cstop 'ganz wichtig I2C zu stoppen bevor man den neuen Kanal anspricht
    14. i2Cstart .... 'Jetzt das Device ansprechen als ob der Multiplexer nicht da währe
    15. ...
    Alles anzeigen

    9.159 mal gelesen