Forum: Mikrocontroller und Digitale Elektronik i2c-Adressen verwalten


von Matthias K. (oskito)


Lesenswert?

Hallo,

da ich nichts finde:

Auf einer Leiterplatte sind ICs mit unterschiedlichen festen 
i2c-Adressen vorhanden.
Soweit ist alles in Ordnung.
Doch nach außen soll die LP so erscheinen, als gäbe es nur eine einzige 
i2c-Adresse.
Diese (gemeinsame) i2c-Adrese der Leiterplatte soll mit hardware oder 
software fest voreingestellt werden können.

Es ist also ein i2c zu i2c Management.

Gibt es dafür ICs?

Wie werden solche ICs benannt? (Suchbegriffe).

von tja (Gast)


Lesenswert?

i2c address translater

aber so ganz habe ich nicht verstanden was du machen willst.

von Einer K. (Gast)


Lesenswert?

Matthias K. schrieb:
> Es ist also ein i2c zu i2c Management.
>
> Gibt es dafür ICs?

I2C Multiplexer....
Dann müssen aber alle Master wissen wie der Hase läuft

Oder du suchst einen µC mit 2 I2C Schnittstellen.


Aber sonst, was universelles?
Mir nicht bekannt.

von A. S. (Gast)


Lesenswert?

I2C ist nicht dafür geeignet, da einfach ein paar Bytes zur Adressierung 
vor zu setzen.

Wenn Du einen Chip mit einer Adresse hast, kannst Du ihn ansprechen.

Wenn Du zwei Chips mit verschiedenen Adressen hast, kannst Du sie 
ansprechen.

Wenn Du 2 verschiedene Chips mit einer Adresse ansprechen willst, dann 
kannst Du
a) per was auch immer jeweils einen Chip lahmlegen, aber nur, wenn beide 
prinzipiell die gleiche Adresse erlauben (sprich: vom gleichen Typ oder 
generisch sind)

b) mit einem µC einen Protokoll-Umsetzer bauen, der selber eine feste 
Adresse erlaubt und in seinen Daten dann 99 andere I2C-Devices 
anspricht.

Wenn Du schreibst, was Du machen willst, dann wird es vermutlich 
einfachere Lösungen geben.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Im entferntesten evtl. in die gewuenschte Richtung koennten so Chips wie 
PCA9546/8 gehen. Ansonsten wirds wohl ganz schnell ein kleiner µC, der 
(sicherlich nicht so ganz simpel) entsprechend programmiert wird, um 
dann ggf. I2C Kommandos von einem Port auf einen anderen umzusetzen, 
wenn er sich angesprochen fuehlt...

Gruss
WK

von NichtWichtig (Gast)


Lesenswert?

Matthias K. schrieb:
> Gibt es dafür ICs?
>
> Wie werden solche ICs benannt? (Suchbegriffe).

Nein

Deine Forderung ist unlogisch und erscheint sinnlos.

von Jim M. (turboj)


Lesenswert?

Matthias K. schrieb:
> Wie werden solche ICs benannt? (Suchbegriffe).

Mikrocontroller.

Denn ohne die ganzen anderen Adressen zu kennen kann man die

a) nicht ansteuern und
b) nicht ohne weiteres an einen (gemeinsamen) Bus hängen.

I2C Multiplexer fallen - so wie der OP sein Problem beschreibt - flach.

Daher muss der "Übersetzter" jede Menge eigene Intelligenz bieten - ergo 
kompletter Mikrocontroller mit I2C Slave und I2C Master 
Schnittstelle(n).

von Wolfgang (Gast)


Lesenswert?

Matthias K. schrieb:
> Es ist also ein i2c zu i2c Management.

Du rist schon etwas konkreter werden müssen. Normalerweise habe ICs mit 
I2C Interface genau verschiedene Adressen, damit man sie separat über 
die Bus ansprechen kann. Bei vielen kannst du einige Adressbits 
hardwaremäßig vorgeben, aber alle über eine gemeinsame Adresse 
anzusprechen, widersprich dem I2C-Busprizip. Wenn du schon mal mit I2C 
gearbeitet hast, sollte dir klar sein, dass da schnell ein µC o.ä. 
dahinter stecken muss, der mehr über die I2C-Bausteinbelegung auf deiner 
Platine wissen muss. Eine allgemeine Lösung wird nur unter speziellen 
Konfigurationen existieren und höchstwahrscheinlich nicht alles unter 
einer Adresse pro Board.

Verrate konkret, was für Bausteine auf den Platinen drauf sind und um 
wieviele Platinen es sich handelt.

von M. K. (sylaina)


Lesenswert?

Matthias K. schrieb:
> Doch nach außen soll die LP so erscheinen, als gäbe es nur eine einzige
> i2c-Adresse.

Was solls denn werden? Eigentlich war I2C nur für ICs auf einer 
Leiterplatte gedacht, es war nicht dafür gedacht eine Kommunikation zum 
Rest des Universiums aufzubauen. Dafür gibts sinnvollere Kommunikationen 
wie z.B. RS422, CAN, USB usw.

von Matthias K. (oskito)


Lesenswert?

Jim M. schrieb:> Mikrocontroller.
…

Genau das habe ich vermutet. Kollegen waren der Meinung, daß andere 
bestimmt ähnliche Probleme hätten und es deshalb fertige Lösungen gäbe.

Es sind Bausteine, deren ICs (z.B. 4 Stück) über i2c einzeln 
anzusprechen sind. Die Adressen sind fest oder fest verdrahtet. (Genauer 
kann ich nicht werden). Auf unterschiedlichen Bausteinen sind 
unterschiedliche Adressen gültig.
Doch es gibt Nutzer, die sind daran interessiert, mehrere von den 
gleichen Bausteinen einzusetzen mit dem Wunsch = „einfach i2c - mit 
4poligen Steckern - so wie gehabt“. Die Nutzr wollen moglichst wenig 
Programmieraufwand haben. Wir wollen möglichst wenig Typen der Bausteine 
haben. Außerdem sind die Bausteine voll.

Nun suche ich eine schlichte, möglichst platzsparende Hardware-Lösung 
mit der die BE (z.B. Temperatur, Druck, Feuchte, ADC, EEPROM) mit den 
festen Adressen auch dann verwaltet werden können, wenn mehrere 
Bausteine mit jeweils gleicher Hardware über i2c zusammenwirken sollen.

bleibt also nur µC ?

von pegel (Gast)


Lesenswert?

Das hört sich doch nach Multiplexer an.
Wenn auf einer Platine unterscheidbare Adressen vorliegen, so sind eben 
die Platinen zu Multiplexen.

So ein Multiplexer ist nur ein Baustein der auf Kommando die SDA und SCL 
Leitungen zur jeweiligen Platine durchschaltet.
Danach wird ganz normal auf alle Bausteine der Platine zugegriffen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Matthias K. schrieb:
> bleibt also nur µC ?

Unter der Praemisse, dass man mit einem µC so ziemlich alle moeglichen 
Schnapsideen umsetzen kann - Ja.

Gruss
WK

von Raph (Gast)


Lesenswert?

NichtWichtig schrieb:
> Deine Forderung ist unlogisch und erscheint sinnlos.

Nein,

er wird eine Blackbox haben wollen, wo der Kunde anhand den 
gebräuchlichen I2C-Adressen nicht weis was da drinn ist.

Z.B. Gyrosensor, Serial-EEPROM, Druck und Temp-Sensor.

Er will dass es nach aussen hin so aussieht als wäre es ein Sensor/Chip

von PittyJ (Gast)


Lesenswert?

Raph schrieb:
> NichtWichtig schrieb:
>> Deine Forderung ist unlogisch und erscheint sinnlos.
>
> Nein,
>
> er wird eine Blackbox haben wollen, wo der Kunde anhand den
> gebräuchlichen I2C-Adressen nicht weis was da drinn ist.
>
> Z.B. Gyrosensor, Serial-EEPROM, Druck und Temp-Sensor.
>
> Er will dass es nach aussen hin so aussieht als wäre es ein Sensor/Chip

Und wie soll das gehen? Dann müßte es ein 'Verzeichnis' geben, hinter 
welcher Adresse sich 'was' befindet. Man könnte auch 2 gleiche Sensoren 
dazu basteln (Temperatur). Wie ist denn dann die Zuordung untereinander?

Der TE sollte sich mal äussern, was er ganu will. Und sich auch mit den 
I2C Grundlagen vertraut machen.

von Peter D. (peda)


Lesenswert?

Es gibt I2C-Multiplexer, z.B. TCA9548A.
Der Master muß natürlich vor jedem Zugriffswechsel erstmal dem 
Multiplexer sagen, welchen Anschluß er durchschalten soll.

von Peter D. (peda)


Lesenswert?

Da sich single Master I2C auch sehr einfach in Software machen läßt, 
kann man auch gleich mehrere I2C-Ports am MC realisieren. Ein 8-Bit Port 
als SDA und einer als SCL. Mit einer Maskenvariable wird dann einer von 
den 8 I2Cs ausgewählt.
Sind die Leitungen kurz, kann man auch SCL gemeinsam verwenden und nur 
SDA umschalten.

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.