PCA9544 - I2C-Multiplexer - Probleme beim Lesen

Begonnen von Pf@nne, 20 Oktober 2016, 22:19:51

Vorheriges Thema - Nächstes Thema

Pf@nne

Moin,

hat schon mal jemand mit dem PCA9544 gearbeitet?

Ich habe folgendes Problem:

Die Initialisierung des PCA klappt, nach dem selektieren eines MUX-Chanels werden an diesen auch alle I2C-Busdaten weitergereicht.
Nur scheint das Lesen nicht zu funktionieren.

Ein GY-21 am Master-Bus funktioniert einwandfrei.
Ein GY-21 am Channel 0 des PCA funktioniert nicht.

Das ist eigentlich recht simpel, hat jemand dazu eine Idee?

Gruß
Marco
FHEM auf: DS415+ (Master), Raspberry Pi 2

Omega-5

Zitat von: Pf@nne am 20 Oktober 2016, 22:19:51
Das ist eigentlich recht simpel, hat jemand dazu eine Idee?

Hallo Marco,

habe mir mal nur das Datenblatt angesehen. Hast du die Interrupteingänge mit Pull-Up versehen? (The interrupt inputs should not be left floating)
Datenblatt Seite 12 Fig.14 http://www.nxp.com/documents/data_sheet/PCA9544A.pdf Pull-Up auf allen BUS-Leitungen?

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

Pf@nne

Moin Friedrich,

4 x 10k an /INT0 - /INT3 habe ich drann.
Sollte von der Logik her aber auch keinen Einfluß auf SDA/SCL haben.

Ich muss das nochmal näher mit einem LogikAnalyzer untersuchen
und Step by Step einzeln auseinander dröseln.

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Mafi

Hallo Marco,

Pullups an den vier "downstream" I2C Bussen sind vorhanden?


Gruß
Markus

Pf@nne

Moin Markus,

ja, je 2 x 4k7....zumindest an Chanel0 und 1, die Anderen sind noch nicht belegt.

Gruß
Marco
FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

Moin,

ich habe heute mal den LogicTester angeschlossen.....
Das gemuxte Write auf die 4 Kanäle läuft, nur mit dem Read scheint es Probleme zu geben.
Nur weiß ich immer noch nicht warum.... :-\

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

Ahhhh....... :o >:(

Wer findet den Fehler?
Was fällt euch zu dem Breadboard auf!!

Die Auflösung kommt um 20.00h.....
FHEM auf: DS415+ (Master), Raspberry Pi 2

UweH

#7
-0

EDIT: Da das nun doch eher nach einem Smiley aussieht, hier in Worten: minus null oder null minus  ;)

Pf@nne

Moin Uwe,

das ist das erste Breadboard, was ich bisher besehen habe, bei dem die +/- Schienen nicht durchverbunden sind.
Auf den Trichter bin ich echt nicht gekommen....
FHEM auf: DS415+ (Master), Raspberry Pi 2

UweH

Und ich hätte gedacht, Du meinst die Zählweise der Pins. Die erste Spalte ist quasi -0...
Aber...ich habe auch ein paar von den Dingern, aber bei keinem sind die oberen und unteren Versorgungsschienen verbunden. Die muss ich immer stecken...
Bei denen wiederum ist aber die erste Spalte immer 1  :)

Gruß
Uwe

Pf@nne

Zitat von: UweH am 28 Oktober 2016, 21:51:47
Aber...ich habe auch ein paar von den Dingern, aber bei keinem sind die oberen und unteren Versorgungsschienen verbunden. Die muss ich immer stecken...

Nicht oben und unten!
Links und rechts!
Dieses Breadboard hat 4 getrennte Versorgungsschienen!
Die Schienen auf einer Seite sind in der Mitte getrennt, der Abstand in der Mitte ist minimal höher als die übrigen Abstände in den Blocks.....

Echt fies.....

EDIT:
Bei der 30 ist eine Trennung....

FHEM auf: DS415+ (Master), Raspberry Pi 2

PeMue

Zitat von: Pf@nne am 28 Oktober 2016, 22:18:14
Dieses Breadboard hat 4 getrennte Versorgungsschienen!
Wieviel Zeit hat Dich das jetzt gekostet? Funktioniert denn der PCA9544 jetzt?

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Pf@nne

Moin Peter,

2-3h sind da schon bei drauf gegangen.....
Bin aber auch irgendwie selber Schuld.....Fehlersuche sollte eigentlich immer nach Schema-F ablaufen
und da ist das Anmessen der Bauteilspannungen eigentlich sehr weit vorne..!
Ich hab den Fehler von Anfang an in meiner Programmierung vermutet, da das Schreiben der einzelnen Kanäle ja funktioniert hat, wobei der Multiplexer nun wirklich kein Hexen Werk ist.
Die Spannung an den einzelnen I2C-Kanälen war ja beim Schreiben vorhanden, aber die kommt ja vom PCA9544.
Das hat mich in die Irre geführt. Das die einzelnen Sensoren keine Spannung haben könnten habe ich dadurch verdrängt.

Naja, hinterher ist man meistens klüger.
Aber da Erfahrung die Summe aller Misserfolge ist habe ich wieder an Erfahrung dazu gewonnen.
Ergo, alles positiv...... ::) 8)

4 x HTU21 laufen jetzt einwandfrei!

Schönes WE
Marco
FHEM auf: DS415+ (Master), Raspberry Pi 2

UweH

Zitat von: Pf@nne am 28 Oktober 2016, 22:18:14
Bei der 30 ist eine Trennung....
Daher die Unterbrechung der roten und blauen Linien...fiese Nummer.

Bastian0302

#14
Schönen guten Tag,

ich suche derzeit eine Methode um über i2c einen multiplexer anzusteuern.
Das Problem:  ich steuere über Fhem einen mcp23017 (läuft wunderbar) jetzt möchte ich aber mehr als 8 mcp`s haben.Ich bräuchte also einen bzw 2 multiplexer. (je nach menge der Kanäle)
Nun hab ich mir gedacht, ich lasse jedesmal bevor das mcp23017 modul den i2c bus benutzt ein notify oder ähnliches ran welches den Kanal des Multiplexers setzt.
Es wäre auch so einfacher die Platinen zu Planen und auch günstiger, wenn ich den mcp`s nur eine Adresse geben muss.

So meine frage: ist es möglich oder gibt es gar ein Modul was erreicht dass der Kanal erst gewählt und dann der mcp den Bus benutzt?
Der Umweg wäre halt  ein script zu schreiben welches 1. beim mcp modul mit rein kommt und die Option des Multiplexers anbietet.
oder 2.  für jeden Schaltbefehl ein eigenes notify zwischen zu binden was den Kanal wählt, was aber eher ungünstig ist, da ich so halt pro mcp allein schon 16 notifys bräuchte...

Über Ideen oder gar Lösungen wäre ich sehr dankbar.
Raspbarry Pi 3, Panstamp NRG 2, Cul 433Mhz Sender/Empfänger, Mcp23017 Ein/Ausgabebaugruppe, TabletUi, Doorpi mit Nextion/RFID und Integration in Fhem, Sonos

Pf@nne

Moin Bastian,

wie willst du denn den Multiplayer ansteuern, welche Hardware nutzt du für den I2C-Bus (Raspi)?
Der Multiplexer wir ja auch über I2C angesteuert.
Dafür bräuchtest du dann ja auch noch ein eigenes FHEM-Modul.
Ich weiß nicht ob es das schon gibt.

Ich würde hierfür einen ESP8266 nehmen und die Steuerung über einen MQTT-Broker realisieren.

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Bastian0302

Guten Morgen
Gedacht ist das so.
Haupt Fheminstanz auf raspi mit I2C zum mcp verbunden. Um mehr als 8 nutzen zu können, werden multiplexer dazwischen geschaltet.
Dieser muss ,bevor das signal an den mcp rausgeht ,angesteuert werden. Und das ist der knackpunkt.
Über esp hab ivh auch schon nachgedacht. Aber ich möchte dies nicht über wlan lösen. (Sitze aber  schon an einer planung fur ein ethernet shield mit poe dran)
Da erstens die datensicherheit mit eine rolle spielt und 2. das datenaufkommen bestimmt sehr hoch wäre. Wenn da schon 128 ein/ausgänge dran hängen.
Wie gesagt entweder muss ich ein modul schreiben. Oder ich muss für jeden ein/ausgang eine liste erstellen welche dem mcp zugeordnet sind. Ein notify reagiert auf zb den interrupt (vom mcp) oder ein/aus eines moduls. Und schaltet den richtigen kanal und sendet dann den Befehl an das mcp Modul.
Was sehr aufwendig wäre.
Das modul müsste eigtl auf die gleiche weise funktionieren.
Eine andere Option wäre das mcp modul zu modifizieren um es multiplexer fähig zu machen.
Wo ich mich ehrlich gesagt nicht allein ran trauen würde.

Schönes Wochende :)
Raspbarry Pi 3, Panstamp NRG 2, Cul 433Mhz Sender/Empfänger, Mcp23017 Ein/Ausgabebaugruppe, TabletUi, Doorpi mit Nextion/RFID und Integration in Fhem, Sonos

Pf@nne

Moin Bastian,

wenn du bei der Kombi Raspi/PCA9544/MCP23017 bleiben möchtest, dann brauchst du auf jeden Fall ein erweitertes MCP23017-Modul.
Dieses müsste um die I2C-Befehle für die Multiplexerkanalwahl erweitert werden.
Ich bin leider kein Spezi für FHEM-Module, da müsste dich jemand anders unterstützen.

Solltest du auf eine Device-Variante mit ESP setzten wollen, kann ich dir definitiv helfen.
Hier würde ich die PCA9544/MCP23017 Kombi per LAN über MQTT ansteuern.
Ich würde die Kanäle dann auch auf mehrere Devices aufteilen, das wäre dann auch ausfallsicherer.
Damit wäre dann auch der PCA überflüssig.

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Bastian0302

Morgen :)
Hab leider keine Benachrichtigung bekommen dass hier geantwortet wurde😂
Also ja über esp würde es auch gehen. Möchte es aber als zentrale Lösung am Raspberry belassen. Werde also selber das modul verändern müssen.

Danke für die Ideen :)
Raspbarry Pi 3, Panstamp NRG 2, Cul 433Mhz Sender/Empfänger, Mcp23017 Ein/Ausgabebaugruppe, TabletUi, Doorpi mit Nextion/RFID und Integration in Fhem, Sonos