Hallo, will bei einem µC die Ports erweitern, sprich ich hänge mehrere externe Geräte an einen µC. Hintergrund ist eine einfache Haussteuerung zu realisieren ohne eine SPS kaufen zu müssen. 1.) Hauptgerät ist Master, dort befindet sich Intelligenz in Form von µC 2.) über den I2C Bus greife ich auf Slaves zu 3.) diese besitzen das Expander IC Typ PCA9536 der Fa. NXP bzw. TI (siehe: http://focus.ti.com/lit/ds/symlink/pca9536.pdf ) Dadurch kann ich verschiedene Module z.B. 4x In, 4x Out oder mixed I/O realisieren. Mein Problem ist nun, wie kann ich den PCA9536 kaskadieren? Denke momentan an hardcodiert per Mäuseklavier, ideal wäre aber eine automatische Adressvergabe durch den Master µC. Ich befürchte momentan, dass dies nur unter Einsatz eines Salve µC auf den Modulen gehen könnte.
Wenn ich es richtig verstehe, willst du die Slave-Module im Haus verteilen und alle mittels I²C zum Master (im Keller) führen. Wenn das so ist, dann wirst du an der Leitungslänge scheitern..
Ja dass hab ich auch schon befürchtet, wie hoch sit die max. Leitungslänge? ein paar 10m ?
Das wurde hier schonmal diskutiert: Beitrag "Max. Länge / Abstand I2C Netz" Du musst also einen gewissen Aufwand treiben, um IIC für größere Leitungslängen zu ertüchtigen. Ich würde vielleicht über ein Konzept auf Basis von CAN nachdenken. Da ist die HW sehr einfach und es tut.
Hi Wenn ich das Datenblatt richtig verstanden habe, gibt es diess IC nur mit einer Adresse. Wie willst du dann kaskadieren? MfG Spess
Vergiss das mit dem Kaskadieren gleich wieder, der I2C-Bus hat mit einem SPI nicht viel gemein. Bei SPI können die Chips in Reihe geschaltet werden (Data_out -> Data_in, ...), beim I2C hängen sie immer parallel an Takt und Daten. Der PCA9536 hat nur eine feste 7-Bit-Adresse, da kannst du also nur einen Chip an einen I2C-Bus hängen. Gängige I/O-Chips für den I2C, wie beispielsweise der PCF8574, haben einen festen 4-Bit-Adressteil + einen über 3 Pins konfigurierbaren 3-Bit-Adressteil. Außerdem gibt es passend dazu den PCF8574A, der sich vom PCF8574 nur durch einen anderen 4-Bit-Adressteil unterscheidet. Somit könntest du 16 gleiche Chips an einen Bus hängen, während du bei "deinem" Wunschtyp für jeden Chip einen eigenen I2C-Bus brauchst. PS: Ein guter Teil deines Problems löst sich schon bei kurzer Betrachtung des von dir verlinkten Datenblattes auf. Da wärst du mit lesen deutlich schneller zum Ziel gekommen. ;-)
Ja wer lesen kann ist klar im Vorteil :-) Ich bin momentan gerade dabei mich mit dem MCP23008 zu beschäftigen. Werde mir aber eure Beteiträge noch mal zu Herzen nehmen. CAN-Bus wäre wahrscheinlich einfacher, der hat doch was zur auto. Adressvergabe OnBorad?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.