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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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!!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
Hi,
hm.. lies mal das, warum willst du nicht alles an einen anschließen?
https://www.raspberrypi.org/forums/view ... ?p=1122177
Grüße
Edwin
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
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
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
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!!
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
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
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
Hi nochnmal,
hier der Fehler der kommt wenn ich den 3. Master hinzufügen will.
Grüße Stefan
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
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
Hallo Stefan,
da bin ich auch gespannt, dachte I2C kann nicht so lange Distanzen, naja mal sehen.
Freue mich aufs Feedback ;-)
Grüß
Edwin
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