STM32 als I2C-Gateway?

OP #4392426
Lesenswert?

Hallo zusammen,
ich frage mich gerade, ob es möglich ist, einen µC mit zwei 
I2C-Peripherieeinheiten (z.B. STM32F103) transparent in einen I2C-Bus 
einzuschleusen. Im Normalfall soll er sich in die Bus-Kommunikation 
nicht einmischen - nur bestimmte Bus-Nachrichten manipulieren.

Desgleichen bei einem SPI-Bus. Erst einmal völlig transparent den Bus 
durchschleifen, aber bestimmte Kommandos filtern und verändern.

1. Sind die Hardware-SPI und I2C für so einen Zweck geeignet, oder müßte 
man soetwas als Bitbanging-Treiber selbst zusammenassemblern?

2. Hat soetwas schon jemand gemacht?

Ich suche (noch) keine Anleitung, sondern erst einmal eine Einschätzung 
zur Machbarkeit.

Viele Grüße
W.T.
Gast #4392457
Lesenswert?

Walter T. schrieb:
> 1. Sind die Hardware-SPI und I2C für so einen Zweck geeignet, oder müßte
> man soetwas als Bitbanging-Treiber selbst zusammenassemblern?

So etwas dürfte unabhängig vom Controller mit Hardware-I²C schwierig 
sein, denn wenn er auf der Empfangen-Seite eine Adresse empfängt muss er 
ja wissen ob er das ACK-Bit als 1 oder 0 senden muss, was er aber nur 
kann wenn er bereits die Adresse auf der Sende-Seite abgesendet hat. Mit 
anderen Worten: Jedes Adressbit muss direkt weitergereicht werden, und 
dann superschnell das ACK-Bit zurückgereicht. Hardware-I²C-Einheiten 
können so etwas generell nicht da unnötig für typische I²C-Anwendungen.
#4392480
Lesenswert?

I2C und SPI sind bidirektional, da kannst Du keine Nachrichten 
manipulieren.

Du kannst bestenfalls dem Master vorgaukeln, Du seiest der Slave, die 
Nachricht puffern und dann weitersenden.
Schwierig wird es aber vom Slave zum Master. Du kannst ja nicht 
hellsehen, was der Master gerade vom Slave lesen will und es vorher vom 
Slave abholen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren