-         

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

Thema: Wie realisiere ich meine I2C-Bus Verbindungen

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058

    Wie realisiere ich meine I2C-Bus Verbindungen

    Anzeige

    Hallo Freunde

    Ich setze in meinem Modell eine größere Anzahl von Sensoren mit einem I2C-Bus ein. Das Problem, diese Sensoren haben alle die gleiche Adresse! Ich plane also den Einsatz eines mega8L Controllers im SMD-Gehäuse wegen der zusätzlichen I/Os und möchte in Bascom in Software für diese Kommunikation 16x den I2C-Bus realisieren.

    Nun habe ich mir die Beschaltung wie folgt überlegt:



    Wie auf der Skizze zu erkennen gehen von jeder sensorplatine 4 Leitungen ab. Gnd und Vcc (3.0V), werden an die entsprechenden Versorgungsleitungen angeklemmt. Nun meine Fragen:

    1. Kann man auch die SCL-Leitung des I2C-Busses (eigentlich kein Bus, da nur eine Adresse möglich) ebenfalls an eine "Clock-Bus-Leitung anschliessen?meine Frage begründet sich darin, das ja alle 16 Sensoren dann ihre Clock-Leitungen parallel angeschlossen hätten, außerden könnte ich dann nicht bei jedem Sensor die Pull-Ups an der Clockleitung anbringen!

    2. Was ist für die Signalqualität der Verbindung am I2C-Bus besser? Den Pull-Up direkt am Sensor anzubringen oder beim Controller? Die Leitung kann bis zu 1 Meter lang werden und es verlaufen viele Leitungen in einem Kabelbaum parallel! Mein Gedanke den Pull-Up direkt am Sensor anzubringen geht von der Überlegung aus am Ursprung die best mögliche Wirkung des Pull-Ups zu haben.

    3. Ich dachte daran die Leitungen im Kabelbaum mit Klingeldraht zu realisieren, oder wäre ein Flachbandkabel geeigneter? Ich möchte bei der Auslegung für möglichst hochwertige Datenverbindungen sorgen, um die durch die Vielzahl der Elektronik und einiger Motoren im Rumpf zu erwartenden Störungen möglichst gering zu halten!

    Gruß Hellmut
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken I2C Bus Carina.jpg  
    MfG

    Hellmut

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.05.2005
    Ort
    Berlin
    Beiträge
    316
    Hallo Hellmut,

    erstens sollte gehen, da die Slaves nur die Datenleitung manipulieren.
    Zu zweitens und drittens will ich nichts sagen, weil ich mir da nicht sicher bin.

    Im Hinblick auf mögliche zukünftige Erweiterungen und die angesprochenen elektromagnetischen Bedingungen in deinem Modell, würde ich dir dazu raten, RS485 als Bus einzusetzen. Ich würde dann jeden Sensorknoten mit einer MCU ausrüsten. Dann kann dein Hauptcontroller über ein einheitliches Interface auf alle Sensoren zugreifen und Änderungen im System sind jederzeit möglich.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Erst einmal, nur EINMAL Pull-UP's in der Schaltung! Setzt Du mehrere ein liegen diese Parallel und der gesamt Widerstand wird zu klein! 2. Denke Daran das I²C ein Bus für Platinen = kurze Wege ist. Die Leitungen sollten verdrillt werden.

    Um einzelne Sensoren mit gleicher Adresse anzusprechen würde (ich) versuchen die Takt Leitung jedes einzelnen Sensors über einen Analogmultiplexer mit dem Master zu verbinden. Die Sensoren ohne Takt halten dann (hoffentlich) ihr Maul. Aber man wird wahrscheinlich während des Umschaltens die Versorgungsspannung der Sensoren unterbrechen damit sie nach dem Umschalten einen Reset machen. Ob Softwaremäßig ein I²C stop/start ausreicht?

    http://lh3.ggpht.com/_BGvgroHHiOU/Sw...-8-to-1-ic.jpg

    Gruß Richard

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058
    Hallo Freunde

    Erstmal Danke für die Antworten, sie sind über die hier gestellte Frage hinaus für mich wertvoll. ich habe mich entschlossen das problem mit einem PCA9518A zu lösen. Der Hub kann mit weiteren parallel geschaltet werden. Jeder Hub kann 4 I2C-Busse mit jedem anderen über alle ICs verbinden und wirkt nur wie ein Repeater, beim "Master PCA9518A" kann ich dann den Controller an den 5. Port anschliessen. Für meine 16 Sensoren komme ich also mit 4 PCA9518A aus, werde aber zusätzliche vorsehen, da die STS21-Sensoren, nur Temperatur- und keine Feuchtemessung und billig, genauso funktionieren. Das Gehäuse ist sehr klein, wodurch ich viele auf kleinem Raum unterbringen kann und gleichzeitig setze ich die Hardware I2C schnittstelle im mega8L ein.

    Der Hinweis auf die Analogmultiplexer war sehr wertvoll. Ich werde in meinem Segler, nicht lachen, es ist eine wahre Technologieplatform, den LT6802-1 als BMS (Battery Monitoring system) und als Balancer einsetzen. Da es bei Akkumatik.de eine Karte mit diesem IC gibt, der interne Balancer für den aktuellen Akkumatik-Lader, werde oich diesen in doppelter Funktion einsetzen. Der Vorteil, neben der Balancer- und BMS-Funktionalität, ist die Möglichkeit vom Ladegerär zum Modell nicht die 13 Leitungen für einen balancer anschluß führen zu müssen und so am Modell einen entsprechenden Anschluss vorzusehen der wasserdicht abgeschlossen werden muss, sondern nur die Leitung für den Controller im Akkumatik an seinen internen Balancer, der ja damit identisch ist. Nun möchte ich, je nachdem ob der Lader angeschlossen und aktiv ist, oder nicht, die Balancer-Leitungen von 12S1P LiFePo4 Selbstbau Akkupack wahlweise an die im Modell eingebaute Balancerkarte führen, oder an den im Akkumatik intern eingebauten. Bei TI nach analogen Multiplexern/Demultiplexern recherchiert sieht man den Wald vor lauter Bäumen nicht. Ich habe also eine Support-Anfrage initiert, welcher der geignetste wäre.

    Gruß Hellmut
    MfG

    Hellmut

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.400
    Hallo
    3. Ich dachte daran die Leitungen im Kabelbaum mit Klingeldraht zu realisieren, oder wäre ein Flachbandkabel geeigneter? Ich möchte bei der Auslegung für möglichst hochwertige Datenverbindungen sorgen, um die durch die Vielzahl der Elektronik und einiger Motoren im Rumpf zu erwartenden Störungen möglichst gering zu halten!
    Geeignet sind beide Kabel. Bei Klingeldraht sollte man jeweils ein Signal (SDA, SCL) mit einer Versorgung (Vcc, GND) verdrillen, bei Flachkabel die Signale nicht nebeneinander legen. Wenn du gerne mit Flachkabel und gequetschten Steckern arbeitest, kannst du auch Flachkabel bekommen, bei dem immer zwei verdrillt sind. Das Kabel hat dann so alle 20 cm eine flache Stelle, wo man die Stecker quetschen kann.

    Ich hab mal gelesen, daß jemand Probleme mit der Übertragung hatte, weil er SCL und SDA als Paar verwendet hat. Die verschwanden, nachdem er jeweils Daten und Versorgung als Paar geführt hat.

    Ich denke, einen I2C-Hub einzusetzen, ist die richtige Lösung.

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

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    wann kommen neue Bilder?

    Gruß Richard

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058
    Hallo Richard

    Ich berichte über den Bau meines Seglers wo das alles rein kommt z. B. hier oder hier. Da werden dann auch die Bilder zu den realisierten Dingen stehen. Da an diesem Modell, ich habe in in diesem Forum mal als "schwimmenden Roboter" bezeichnet, ich viele Fronten habe wo ich arbeite, so kann ich je nach Laune aktiv sein. Gerade baue ich meine erste Schrittmotorschaltung mit dem mega8, dem L297 und L298 auf, da ich im Segler 2 Spindeln mit 2 aus Druckern gewonnenen Schrittmotoren betreiben möchte. In diesem Forum werde ich bei Fragen zum Thema Elektronik und Robotik-verwandeten Themen aktiv, darf und sollte ja nicht zu sehr Off-Topic sein!

    Gruß Hellmut
    MfG

    Hellmut

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Hellmut Beitrag anzeigen
    Hallo Richard

    Ich berichte über den Bau meines Seglers wo das alles rein kommt z. B. hier oder hier. Da werden dann auch die Bilder zu den realisierten Dingen stehen.
    Den Bericht kenne ich natürlich. Respekt! Aber solltest Du einmal etwas zeit übrig haben, "darfst" Du den ruhig ergänzen/weiterführen. Z.B. wie ist es mit dem Gießharz weiter gegangen, hat es mit den Blei Accuhaltern geklappt?

    Gruß Richard

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058
    Der Bericht beim 1. "hier" enthält die Daten. Allerdings bin ich noch nicht beim Bleigiessen, aber bald!
    MfG

    Hellmut

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Es gibt I²C Slaves bei denen die Adresse per Software ( Bestimmte Befehls Sequenz ) geändert werden kann. Ob das auch bei Deinen Sensoren der Fall ist, sollte im Datenblatt zu finden sein. Wenn nicht hat der Hersteller sich eigentlich selber ein Bein gestellt.....

    Gruß Richard

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. RN-Funk: Kurze Frage zu Verbindungen
    Von DEAF BOY im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 1
    Letzter Beitrag: 02.07.2009, 11:58
  2. Wie realisiere ich IR-Verbindung?
    Von Jacob2 im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 17.12.2008, 15:08
  3. Wie realisiere ich Zähler?
    Von azubistd im Forum Elektronik
    Antworten: 15
    Letzter Beitrag: 16.11.2007, 17:11
  4. RN-Definitionsvorschläge für FPC Verbindungen
    Von oc2k1_ im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 2
    Letzter Beitrag: 19.05.2006, 09:25
  5. Begriffe bei Press-Verbindungen
    Von Hellmut im Forum Mechanik
    Antworten: 2
    Letzter Beitrag: 08.02.2005, 20:07

Berechtigungen

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