-
        

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

Thema: I2C Bus Mehrere Teilnehmer unter der gleichen Adresse

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.01.2006
    Beiträge
    31

    I2C Bus Mehrere Teilnehmer unter der gleichen Adresse

    Anzeige

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

    ich möchte über den I2C Bus mehrere ( 4 ) Teilnehmer (Slaves) unter der gleichen Adresse adressieren. Diese befinden sich auf verschiedenen Platinen, sollen aber die gleiche Funktion haben. Es handelt sich um LED's die über PCF8574 angesprochen werden.

    Ist dies eigentlich möglich, oder kommen die sich hier in die Quere?

    Für eure Hilfe wäre ich sehr dankbar.

    Viele Grüße

    Rici

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.09.2004
    Beiträge
    264
    Mehrere I2C-Bausteine mit einer Adresse lassen sich nicht betreiben. Der PCF8574 läßt sich aber doch auf 8 verschiedene Adressen setzen.

    mfg

    Stefan

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.01.2005
    Ort
    hessen
    Alter
    29
    Beiträge
    1.099
    da musst du auf jeden fall andere Adressen nehmen wie du schon gemerkt hast.

    sonst klappt nichts

    gruß
    patrick

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    07.01.2006
    Beiträge
    31
    Danke für Eure Antwort.

    An einem AVR mehrere I2C Buse anschließen, ist das ein Problem?
    An dem ATMEGA32 hab ich ja auf PC0 und PC1 einen, aber eigentlich kann ich mir doch noch welche per SW machen, oder?

    Für jeden Bus brauch ich doch eigentlich nur 2 freie Ports oder?

    Da kann ich mir doch 4 I2C Busse stricken. Sind da Probleme zu befürchten?

    Gruß

    Rici

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Nicht so schnell Leute,beim 8574 geht das schon aber nur eingeschränkt.:



    @Infosystems


    Elektrisch gibt es da jedenfalls keine Probleme da der Bus komplett auf Offene Kollektoren aufgebaut ist.

    Rein Logisch geht das natürlich nur beim Schreiben aber das dürfte dir ja sicher klar sein.

    Der Master sendet "Start" + "Adresse" und alle angesprochenen Slaves geben ein "ACK" zurück.
    Wegen der Bindung am Takt ist das Synchron.

    Was dir passieren kann ist das ein Slave kein "ACK" gibt.
    Das würde der Master nicht mitbekommen.
    Du hast also keine Kontrollmöglichkeit mehr.
    Im Ernstfall kommen auf diesem Slave die Daten nicht an oder nur Müll.

    Dagegen hilft nur die Daten doppelt oder dreifach zu schicken aber wenn du das eh mehrfach schickst dann kannste auch gleich einzeln adressieren.
    Macht also wenig Sinn.

    Eine reduzierung des Taktes würde zusätzliche Sicherheit (Naja,so in etwa) geben.


    Ich hab das mal mit 2 PCF8574 an nem M16 gemacht.
    Der M16 hat auf 2 gleichadressierte Portexpander die gleichen Daten geschickt und die 2x8 Bit hab ich dann wieder am M16 eingelesen.
    Das ganze mit unterschiedlichen Taktraten und Leitungslängen.(Jeweils 10'000 Durchgänge bei 100-1 Khz Takt mit 0.1 bis 5m Leitungslänge)
    Der M16 hat die Daten gespeichert und am Ende über die Serielle ausgeworfen.
    Bei 100Khz gabs einige fehler aber unterhalb von 30Khz keine mehr.
    Die Leitungslängen sind unabhängig davon eine Frage der Kapazitäten und dienten nur dem Hintergrund unterschiedliche Längen und Kabelsorten zu testen.

    Is also mit Einschränkungen machbar.



    PS:
    Am Ende hab ich mich aber dann doch für unterschiedliche Adressen entschieden weil es Zeitlich kein Problem war und ich so "jeden" Portexpander Individuell beschicken konnte.
    Gruß
    Ratber

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.01.2005
    Ort
    hessen
    Alter
    29
    Beiträge
    1.099
    hallo

    du musste doch alle nur mit den zwei leitungen anschliessen und dann mit zwei Widerständen mit 10 k an die 5Votl mehr nicht.
    5Volt<---10kOhm-----Scl-------Slave1------Slave2----usw.
    5Volt<---10kOhm-----Sda------Slave1------Slave2----usw.


    gruß
    patrick

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Zitat Zitat von infosystems
    Danke für Eure Antwort.

    An einem AVR mehrere I2C Buse anschließen, ist das ein Problem?
    An dem ATMEGA32 hab ich ja auf PC0 und PC1 einen, aber eigentlich kann ich mir doch noch welche per SW machen, oder?

    Für jeden Bus brauch ich doch eigentlich nur 2 freie Ports oder?

    Da kann ich mir doch 4 I2C Busse stricken. Sind da Probleme zu befürchten?

    Gruß

    Rici
    Also wenn du ganz ausgefuchst programierst dann könntest du die 4 busse ineinander Verschachteln um Zeitlich was zu gewinnen aber wenn du das vorhhast was ich vermute dann hast du am Ende nix gewonnen weil dir dann daurch Prozesszeit fehlt.

    Was soll es denn konkret werden ?
    Gruß
    Ratber

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    07.01.2006
    Beiträge
    31
    Ich werde das anders machen. Eigentlich brauche ich genau 16 Slaves. Die sollen ja irgendwie ansprechbar sein. Muß mich mal reinlesen. Die Idee mit mehreren Busen nebeneinander, das ist nichts, die Verdrahtung wird mir auch zu aufwendig.

    Danke für Eure Hilfe.

    Rici

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.09.2004
    Beiträge
    264
    Ich werde das anders machen. Eigentlich brauche ich genau 16 Slaves. Die sollen ja irgendwie ansprechbar sein. Muß mich mal reinlesen. Die Idee mit mehreren Busen nebeneinander, das ist nichts, die Verdrahtung wird mir auch zu aufwendig.

    Danke für Eure Hilfe.

    Rici
    Das geht auch einfach so 8x PCF8574 und 8xPCF8574A.

    Schon hast Du 16 Stück mit verschiedenen Adressen.

    mfg

    Stefan

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    07.01.2006
    Beiträge
    31
    Danke, genau so hab ich es gemacht.

    Viele Grüße

    Richard

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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