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).
i2c address translater aber so ganz habe ich nicht verstanden was du machen willst.
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.
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.
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
Matthias K. schrieb: > Gibt es dafür ICs? > > Wie werden solche ICs benannt? (Suchbegriffe). Nein Deine Forderung ist unlogisch und erscheint sinnlos.
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).
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.
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.
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 ?
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.
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
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
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.
Es gibt I2C-Multiplexer, z.B. TCA9548A. Der Master muß natürlich vor jedem Zugriffswechsel erstmal dem Multiplexer sagen, welchen Anschluß er durchschalten soll.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.