Forum: Mikrocontroller und Digitale Elektronik I2C Plug and Play


von Dominik T. (dominik_t)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich entwickle zur Zeit eine LED Steuerung und möchte das ganze möglichst 
modular gestalten. Dazu nutze ich ein Platine mit einem PWM Chip 
(PCA9685 oder ähnlich), welche an einander gesteckt werden kann um so 
mehr als 16 Kanäle an einem Ort bereit zu stellen. Hinzu kommt eine 
"Master" Platine, die zur Ansteuerung dient und im Wesentlichen nur ein 
Interface zwischen I2C und einem "schönen" Bus (z.b. 
USB/Wifi/Ethernet...) dient.
Ich möchte vermeiden das bei jeder PWM Platine eine Adresse über Dip 
schalter eingestellt werden muss.
Meine Idee ist wie folgt:
Zusätzlich zum PWM Chip verbaue ich auf jede Platine einen I2C 
Portexpander (PCF8574 oder ähnlich), an welchem ein Busswitch (NC7SZ384, 
oder transistor), sowie die Adresspins vom PCF8574 und PCA9685 
angeschloßen sind.

Beim Einschalten passiert folgendes:
Der PCF8574 hat seine Ausgänge default HIGH, d.h. A0-A2 sind HIGH und 
seine Adresse ist 0x4E. Gleichzeitig wird durch den Busswitch die 
Verbindung zu allen anderen Platinen unterbrochen, der Master sieht also 
nur die erste.
Nun schreibt der Master 0x00 in den PCF8574, dadurch ist die Adresse der 
ersten platine 0x40 und der Busswitch gibt die verbindung zu platine 2 
frei die nun wieder an adresse 0x4e ist. Das ganze mache ich 8 mal und 
so hat jede der erweiterungen eine eigene Adresse.

Meine Frage ist nun folgende:
Kann ich die Adresse der Chips nach dem Einschalten noch ändern oder 
werden die Pins nur einmalig beim reset geprüft ?
Kann das funktionieren ?

Mit freundlichen Grüßen,
Thalhammer

EDIT1: Der BS170 im Schaltplan dient nur zur veranschaulichung, weil ich 
den Busswitch noch nicht in meiner Lib habe.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Dominik T. schrieb:
> Kann ich die Adresse der Chips nach dem Einschalten noch ändern oder
> werden die Pins nur einmalig beim reset geprüft ?

Lass eine I2C-Portscanner laufen - dann siehst du es.

Oder guck ins Datenblatt, auch wenn das uncool ist.

Für den PCF8574 steht da im Kapitel 8.3.1 I2C Interface gleich am Ende 
vom ersten Absatz "The address inputs (A0–A2) of the slave device must 
not be changed between the start and the stop conditions.", was wohl den 
Umkehrschluss zulässt, das es sonst erlaubt ist.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Dominik T. schrieb:
> Kann ich die Adresse der Chips nach dem Einschalten noch ändern oder

 Selbstverständlich.
 Dürfte sich mehr oder weniger um ein AND von Adressen und SCL
 handeln, mit SDA als Trigger.

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
Noch kein Account? Hier anmelden.