-         

+ Antworten
Ergebnis 1 bis 9 von 9

Thema: I2c

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.04.2011
    Beiträge
    15

    I2c

    Anzeige

    Hallo,

    ich besitze verschiedene I2C Sensoren, die alle die gleiche Slave Adresse besitzen und an denen man diese nicht ohne Zerstörung des Gehäuses ändern kann.
    Gibt es ein IC mit welchem es möglich ist Hardwaremäßig die Adresse zu ändern? Also in etwa so:
    Mikrokontroller --> IC mit festdefinierter Adresse x --> Inputport 1 --> Sensor mit identischer Slave Adresse wie an Port2
    Mikrokontroller --> IC mit festdefinierter Adresse y --> Inputport 2 --> Sensor mit identischer Slave Adresse wie an Port1
    usw.

    Gruß
    Stefan8010

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.398
    Zitat Zitat von stefan8010 Beitrag anzeigen
    Hallo,

    ich besitze verschiedene I2C Sensoren, die alle die gleiche Slave Adresse besitzen und an denen man diese nicht ohne Zerstörung des Gehäuses ändern kann.
    Gibt es ein IC mit welchem es möglich ist Hardwaremäßig die Adresse zu ändern?
    Das macht man in etwa so: Man teilt den I2C Bus in mehrere Segmente auf. Auf jedem Segment darf dann jede Adresse nur einmal vorkommen. Der µC spricht dann nur mit einem Segment und sieht jede Adresse nur einmal. Das Umschalten zwischen den Segmenten erfolgt praktischerweise auch über I2C, dann braucht man keine weiteren Portleitungen dafür. Bei NXP gibt es dafür den PCA9546A. Der kann auch Busse mit verschiedenen Spannungen verbinden.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hallo,
    vielleicht sind Multiplexer eine Lösung?
    Sodass der Mikrocontroller steuern kann, mit welchem Slave seine SDA und SCL-Leitungen verbunden werden sollen?
    Grüße,
    Bernhard

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    16.04.2011
    Beiträge
    15
    Hallo,

    danke!

    Werde das mal versuchen. Habe aber noch eine Frage. Wenn ich an SDA und SCL 83k Pull Ups habe, kann ich dann die Widerstände an channel0-channel3 nicht weg lassen, oder welchen Wert sollten diese besitzen?

    Nach dem Adresswert kommt ja das Controll Register. Wenn ich beispielsweise channel0 (SD0/SC0) auslesen möchte, muss ich dann nach dem Adresswert einfach nur Hex1 senden?

    Gruß
    stefan8010

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Zitat Zitat von stefan8010 Beitrag anzeigen
    Hallo,

    danke!

    Werde das mal versuchen. Habe aber noch eine Frage. Wenn ich an SDA und SCL 83k Pull Ups habe, kann ich dann die Widerstände an channel0-channel3 nicht weg lassen, oder welchen Wert sollten diese besitzen?
    ...
    Das ist im English, aber es wird du weiter helfen.

    http://www.dsscircuits.com/articles/...resistors.html

    83k Pull ups sieht etwas wenig aus ( 1 bis 2 kohm ist starker), aber das ist abhängich von dein I2C netz. Wie fiel Bus-kapazität die ICs und Leitungen gesammt zusammen generieren. Starke Pull-ups 'laden' die I2C Buss schneller auf, und dass hat du erfolg das die Pegelflanken starker aufsteigen. Mit schwache Pull-ups steigen die Pegelflanken zu langsam und dan kann es vorkommen die I2C Pegeln nicht erkannt werden. Aber das können die Bilder in dem Link oben besser erklären. Um die Pegelflanken zu sehen sollte man das mit ein Oszilloskop anschauen. Mit den Kapazität Funktion einer Multimesser geht das vermutlich nicht so einfach.
    Geändert von Valen (07.10.2011 um 14:51 Uhr)

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058
    Es gibt von TI auch I2C Multiplexer. Ich muss 16 Temperatur und Feuchtesensoren von Sensirion ansprechen und die haben auch alle die gleiche I2C-Adresse. ich werde einen I2C Multiplexer verwenden der über 3 externe Pins von uC umgeschaltet wird. Genaue Type werde ich erst in den nächsten Tagen entscheiden, da es auch um die Verfügbarkeit und den Mindestbestellwert ohne Portokosten beim Lieferanten, Digikey, bei der nächsten Bestellung geht.
    MfG

    Hellmut

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Vielleicht kannst du die Multiplexer als Sample bestellen. Die bekommst du normalerweise kostenlos.

    MfG Hannes

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Valen Beitrag anzeigen
    Das ist im English, aber es wird du weiter helfen.

    http://www.dsscircuits.com/articles/...resistors.html

    83k Pull ups sieht etwas wenig aus ( 1 bis 2 kohm ist starker),
    83 k sind eher viel zu groß, üblich sind ca. 4k7.

    Gruß Richard

  9. #9
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    Zitat Zitat von Richard Beitrag anzeigen
    83 k sind eher viel zu groß, üblich sind ca. 4k7.

    Gruß Richard
    Nicht unbedingt, wennn er z.b einen Lego NXT verwendet sind 82k Pullups vorgeschrieben....

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •