Rasperry mit zwei unabhängigen i2c Master betreiben

Deutsch
2019-02-19
2020-05-14
  • markodelling

    markodelling - 2019-02-19

    Hallo,

    ich möchte gern den Raspberry mit 2 unabhängigen I2C Mastern betreiben. Anlegen kann ich es in Codesys. Mir ist nur noch nicht klar an welche Pins des Raspberry der 2te SDA und SCL kommt.

    Hat dies schon ml jemand probiert?

     
  • markodelling

    markodelling - 2019-02-20

    Hallo Edwin, ich hab schon einiges am i2c. Allein schon 8x pca9555d, gerne würde ich weitere gpio anschließen. Geht aber aufgrund des adressbereiches nicht. Auch andere Bausteine nutzen genau diesen Adressbereich. Bisher hab ich mich auf einen Multiplexer eingestellt, dann kam mir die Idee mit dem 2ten i2c Master. Dies würde alle meine Sorgen lösen.
    Grüße Marko

     
  • eschwellinger

    eschwellinger - 2019-02-21

    Hallo,
    ja dann musst du mal sowas probieren:
    https://www.instructables.com/id/Raspbe ... c-Devices/
    Allerdings bin ich nicht sicher ob das mit allen PI's gleich funktioniert ( irgendwo steht ja auch das die GPU den 2. I2C blockiert)
    Denke mit "googeln" kommt man da weit
    In CODESYS dann muss du ja nur die Adresse ändern wo der I2C Master ist... also würde behautpen wenn du in Linux die lösung dafür findest
    muss CODESYS gleich funktionieren.

    Grüße
    Edwin

     
  • markodelling

    markodelling - 2019-02-23

    Hallo,

    so, eben wie Edwin im Link desvorigen Posts geschrieben hat i2c -3 angelegt unddurchgebootet. Verzeichnis i2c-3 existiert, i2cdetect läuft und in Codesys kann ich einen Master unter i2c-3 anlegen (GPIO23=SDA, GPIO24=SCL).
    Im nächsten Schritt werde ich mal ein I2C "Gerät" ranhängen und testen. Muss nur noch Pull-Ups mit 1k8ohm suchen...
    Ich berichte...

    Marko

     
  • markodelling

    markodelling - 2019-02-23

    Feedback:
    Raspberry mit 2 I2C scheint stabil zu funktionieren.

    Ich habe ein 2tes I2C Device einrichten können und auf die GPIO20 und GPIO21 (Pin 38 und 40) gelegt.
    Angeschlossen hab ich ein PCA9685 und lasse seit ein paar Stunden über eine Sinusfunktion 2 Leds wackeln. Funktioniert bisher einwandfrei.

    Frage gelöst, danke EDWIN!!

     
  • Stefan2

    Stefan2 - 2019-03-04

    Hallo,

    macht für mich auch Sinn wenn man eine langsamen weit ins Feld führt für ein paar BME 280 und schnelle IOs im Feldverteiler braucht.

    Weche PI Version hast du Marko?

    Grüße Stefan

     
  • markodelling

    markodelling - 2019-03-05

    Hallo Stefan,

    ich benötige den 2 I2C um damit das Erdgeschoss + Keller zu bedienen. Der erste erschließt OG+DG. Da bei mir Input und Output über PCA9555 läuft und dieser nur 8 Adresspaare hat ist es eng geworden. Mit der Aufteilung in 2 unabhängige I2C hab ich eine bequeme und schnelle Lösung, die nun ausreichend IO mir zur Verfügung stellt.

    Die Idee mit langsamen und schnellen I2C ist auch super! Da damit vielleicht ohne weitere Technische Maßnahmen eine höher Leitungslänge möglich ist.

    Ich verwende den PI3B.

    Grüße
    Marko

     
  • Stefan2

    Stefan2 - 2020-05-12

    Hallo,

    ich wollte nun 3 I2C Bus Master einfügen. Das Raspbian macht das problemlos mit jedoch hat hier Codesys scheinbar eine Einschränkung.

    Die Frage: Warum? Und wie bekommen wir die weg?

    Grüße Stefan

     
  • Stefan2

    Stefan2 - 2020-05-12

    Hi nochnmal,

    hier der Fehler der kommt wenn ich den 3. Master hinzufügen will.

    Grüße Stefan

     
  • eschwellinger

    eschwellinger - 2020-05-14

    hallo Stefan
    du müsstest erst mal die Gerätebeschreibung des Raspberry Pi ändern:
    (ob weitere Änderungen in den Libs auch notwendig sind - keine Ahnung habs nicht ausprobiert)

    EIgentlilch haben wir nicht vor das zu ändern, da ich es schon relativ ungewöhnlich finde - was machst du genau
    wieso benötigst du 3?

    Grüße
    Edwin

     

    Last edit: eschwellinger 2020-05-14
  • Stefan2

    Stefan2 - 2020-05-14

    Hi Edwin,

    die XML habe ich gefunden. Danke für den Tipp.

    Ich werds ausprobieren und berichten.

    Warum das ganze? Hmm naja, ich habe raus bekommen das viele Software Master auf dem Raspbian möglich sind. Da dachte ich erst mal ganz naiv, Codesys beherscht das auch. Dann wollte ich für meine Gebäudeautomatisierung 3 Busse aufziehen. Einen für die EA Ebene im Keller, einen langsamen für ein paar SSD1306 und SI7021.
    Und wegen mangels Adressen einen weiteren für ein paar PCF8575 um dort ein paar rotary encoder für die Bedinung der SSD1306 ein zu lesen.

    Wahrscheinlich muss ich noch auf Multicore wechseln damit das halbwegs gleichzeitig abläuft.

    Bin gespannt wie das so klappt.

    Grüße Stefan

     
  • eschwellinger

    eschwellinger - 2020-05-14

    Hallo Stefan,
    da bin ich auch gespannt, dachte I2C kann nicht so lange Distanzen, naja mal sehen.
    Freue mich aufs Feedback ;-)
    Grüß
    Edwin

     
  • Stefan2

    Stefan2 - 2020-05-14

    Hi Edwin,

    ja, per se ist i2c nicht für lange Strecken. Ich nutze ne kleine Horde PCA9600 dafür. Klappt ganz gut. Gibt jetzt auch den PCA9615, der setzt das auf differential Bus um. Analog Profibus.

    Weiter zu den 3 Bussen, läuft. Geht bestimmt auch mit mehr als 3, ist da die Einschränkung noch Sinnvoll? Habe aber Festgestellt das das nur mit Multicore Sinn macht. Die Busse werden hintereinander abgearbeitet sodas der langsamste alle anderen ausbremst, klappt leider nicht analog dem 1-Wire.

    Grüße

     

Log in to post a comment.