Kann ich das I2C-Protokoll für Produkte mit SPI-Schnittstellen-ICs verwenden?

Ich arbeite an einem FPGA-Projekt, bei dem ich die Onboard-ICs mit der in ihren Datenblättern angegebenen SPI-Schnittstelle und einige mit der I2C-Schnittstelle konfigurieren muss. Ich habe mich gefragt, ob es möglich ist, diese SPI-Schnittstellen-ICs auch auf die I2C-Schnittstelle zu bringen. Ich werde den Latch Enable-Pin dauerhaft auf logisch '1' (VCC) aktivieren und die SCLK- und SDATA-Pins-Schnittstelle für I2C-Schnittstellen-Pins verwenden, da diese 2 Pins nur das sind, was ich brauche! Später wird sich die Logik des My HDL-Protokolls innerhalb des FPGA darum kümmern.

Ich erforsche das zum ersten Mal, also hat es jemand früher mit diesen Industriestandardprotokollen versucht? Ist es überhaupt machbar? Vor allem, wenn das Produktdatenblatt mir sagt, dass es SPI und nicht I2C hat?

Die SPI-Geräte sollten auf nichts reagieren, was passiert, wenn sie nicht ausgewählt sind. Das Problem ist, dass die I2C-Geräte auf eine SPI-Transaktion reagieren.

Antworten (1)

Ich würde stattdessen so etwas vorschlagen, wenn Sie Ihr Design leicht ändern können: https://www.nxp.com/docs/en/data-sheet/SC18IS602B.pdf

Dies ist eine I2C-SPI-Brücke. Es antwortet auf I2C-Transaktionen an eine bestimmte Adresse und führt als Antwort SPI-Transaktionen durch. Sie würden dies an Ihren I2C-Bus hängen und es zum Master Ihres SPI-Busses machen. Es hat 4 Slave-Select-Ausgänge.

Für den umgekehrten Weg (alle I2C-Geräte an eine SPI-Schnittstelle hängen) gibt es diese: https://www.nxp.com/docs/en/data-sheet/SC18IS600.pdf

Es ist eine SPI-I2C-Brücke. Ich denke, wenn Sie ein FPGA machen, wäre dies tatsächlich einfacher, da Sie sich dann beim FPGA keine Gedanken über Open-Drain (insbesondere in Kombination mit der erforderlichen Clock-Stretching-Logik) machen müssen. Im Allgemeinen sind SPI-Schnittstellen einfacher auf FPGAs richtig zu implementieren.