-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: I²C Adresse ändern/maskieren

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    30
    Beiträge
    248

    I²C Adresse ändern/maskieren

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo zusammen,

    ich stehe vor dem Pronblem, das ich in meinem System mehrere Beschleunigungssensoren nutzen muss. Der Ausgewählte Sensor kann 2 I²C Adressen annehmen, leider benötige ich mehr als nur zwei Sensoren.

    Jetzt hatte ich die Idee die Adresse mithilfe eines Microkontoller zu maskieren. Also Jeder Sensor bekommt ein Mikrokontroller, welcher als I²C Slave koniguriert ist und die Daten an den Sensor weiter reicht.

    Klicke auf die Grafik für eine größere Ansicht

Name:	I2C_Aufbau.png
Hits:	4
Größe:	17,2 KB
ID:	28368

    Die Daten an den Sensor werden dann per Software-I²C weitergegeben.
    Somit ist die Adresse des Sensors frei programmierbar.

    Was meint ihr? Machbar?

    Gibt es hierfür eventuell schon ein Beispiel?


    Viele Grüße
    Bastii

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hallo,
    ehrlich gesagt finde ich das sehr umständlich. Nimm doch einfach einen Multiplexer, der SDA und SCL auf den entsprechenden Slave schaltet, z.B. 74HC4052.
    Mit dem 74HC4052 lassen sich dann 4 Slaves mit gleicher Adresse verwenden. Der Bus-Master benötigt nur zwei zusätzliche Pins (bzw. zusätzlich Enable wenn gewünscht) um den Multiplexer zu konfigurieren.
    Die Slaves brauchen dann lediglich eigene Pullup-Widerstände, damit die Busleitungen der ungenutzten Sensoren definierten Pegel hat.
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    30
    Beiträge
    248
    Hallo Bernhard,

    du hast recht das ganze ist etwas umständlich, aber leider MUSS das ganze an einen I²C Bus und nicht an 4 bzw mehrere getrennte Bussysteme.

    Viele Grüße
    Bastii

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Jeder Sensor ein Mikrocontroller anhängen ist vielleicht etwas viel aufwand. Und zu verzögerung von die Daten leiten. Ich wurde multiplexing versuchen mit mehrere I2C-busses, wo an jeder nur 2 Sensoren angeschaltet sind. Die eine Mikrocontroller könnte dann den gewünschte Bus wählen mit weitere IO pins, und die andere abschalten.


    Mit diese Mosfet-lösung geeignet für Spannungsniveau-trennung muss im Prinzip auch für abschalten der ganzen Bus funktionieren:

    http://www.nxp.com/documents/applica...te/AN10441.pdf
    Geändert von Valen (12.06.2014 um 18:05 Uhr)

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    30
    Beiträge
    248
    Hallo Valen,

    danke für den Link,

    aber wie Oben schon beschreiben ist es Plicht das alle Sensoren am gleich Bus hängen. Es darf somit nur ein Bus geben.

    Viele Grüße
    Bastii

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Mit ein Mikrocontroller an jeder Sensor wirst du 5 getrennte I2C-Busses haben. Wieso MUSS das so sein?

    - - - Aktualisiert - - -

    Die einzige andere Lösung das ich mich Vorstellen kann ist die Spannungsversorgung zu den ungewünschte Beschleunigungssensoren ab zu schalten mit ein Bipolären PNP Transistor oder P-mosfet. Ist aber nicht so nett, und könnte Einstellung und Kalibrierung Problemen geben in dem Werten.

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    30
    Beiträge
    248
    Da hast du vollkommen recht, im Prinzip sind es 5 Bussysteme. Alle münden aber un einem zentalren Bus und das ist Plicht. Das ganze soll variabel auf einem Bus aufgebaut werden können.

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hallo,
    wie oft müssen die Sensoren abgefragt werden und mit welcher Frequenz soll SCL getaktet werden?
    Die Auslastung des Busses sollte im Voraus berechnet werden.
    Bei zu hoher Abtastraten oder zu vielen Slaves wird der Bus zum Flaschenhals.
    Wie viele Sensoren sollen maximal am Bus hängen?
    Und noch viel wichtiger: Wie lange wird die Busleitung (??? cm).
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    30
    Beiträge
    248
    Hallo,
    die Sensorden befinen sich auf einem Stück von ca 20cm Busleitung.
    Die Clock soll im Optialfall mit 400kHz getacktet sein. (mindestens 100kHz)

    Das ganze wurde schon einmal grob berechntet, der Bus ist auf alle fälle nicht der Flaschenhals. Das Problem ist momentan nur die Addressierung

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    279
    finde auch, dass der Multiplexer die einfachere Variante ist ... und ganz nebenbei: die mit den wenigsten I2C Bussen Wenn Du mit dem Controller die Maskierung übernehmen willst, brauchst Du einen, der 2 I2C's zur Verfügung stellt. An einen kommt der Sensor - denn der kann ja nur I2C und über den zweiten kommuniert der Controller als Slave. Das ist also weit ENTFERNT VON EINEM I2C. Und ja, es müssen in diesem Szenario 2 getrennt Busse pro Controller sein, da Du ja sonst wieder in das Adress-Dilema kommst, wenn alle Sensoren am gleichen Bus hängen. Bei Verwendung eines Multiplexers hängen alle am GLEICHEN I2C ... welche Lösung ist denn da jetzt wohl näher an Deiner Ausgangs-Frage-Stellung?

    Um nicht einen Controller mit zwei I2C Bussen verwenden zu müssen, könnte man die Controller untereinander auch über einen anderen Bus wie z. B. 1Wire kommunizieren lassen ... allerdings brauchst Du dann am Ende der Signalkette wieder einen Controller, der aus 1Wire I2C macht:

    Sensor --> I2C --> Slave-Controller --> 1Wire -|
    Sensor --> I2C --> Slave-Controller --> 1Wire --> Master-Controller --> I2C --> Rest Deines Projektes
    Sensor --> I2C --> Slave-Controller --> 1Wire -|

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Kompass-Modul CMPS10 I2C-Adresse ändern (Bascom)
    Von t0bias im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 25.12.2013, 00:31
  2. SRF02 Adresse ändern von 0xE0 auf 0xE2
    Von superkato im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 02.04.2011, 13:08
  3. Usb->seriell-adapter adresse ändern
    Von Roboman93 im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 27.06.2008, 15:13
  4. RN-Relais (PCF 8574) Slave Adresse ändern
    Von ulby im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 28.12.2007, 12:34
  5. Unit M 2 IRQ maskieren
    Von The Man im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 09.02.2007, 17:43

Berechtigungen

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