I2C oder SPI: Was ist die beste Wahl für Ihr Speicherchip-Protokoll?

Erstellt: February 9, 2018
Aktualisiert am: November 30, 2020

I2C oder SPI_ Was ist die beste Wahl für Ihr Speicherchip-Protokoll_-68434

Ich wollte neulich Schuhe kaufen und mir wurde schnell bewusst, warum ich das nicht so oft mache: die vielen Parameter. Ich war auf der Suche nach Sneakers, deshalb waren mir die folgenden Aspekte wichtig: Komfort, Abprallstärke, Stabilität, Wetterbeständigkeit, Gewicht, Zehengröße, Senkfußeinlage und mehr. Manchmal hat man das Gefühl, einen Universitätsabschluss dafür zu benötigen, den passenden Schuh zu finden. Meiner Meinung nach waren das überwältigend viele Informationen.

Beim Elektronikdesign hat man es mit einer ähnlich schwierigen Entscheidung zu tun. Nämlich wenn man sich bei den Protokollen für Speicherchips zwischen Serial Peripheral Interface (SPI) und Inter-Integrated Circuit (I2C) entscheiden muss. Die Entscheidung fällt noch schwerer, wenn sich die Kostenaspekte beider Möglichkeiten kaum unterscheiden. Über die Anforderungen der Parameter des Speicherchips Bescheid zu wissen, hat mit der Kenntnis darüber zu tun, was dessen Funktionen Ihrem Produkt bringen.

Was ist SPI und I2C?

SPI ist ein Kommunikationsprotokoll mit einer Vollduplex-Konfiguration. Es verwendet vier Signale: Chip Select (CS), Clock (SCK), Master Out / Slave In (MOSI), und Master In / Slave Out (MISO) zur Kommunikation zwischen Master und Slave. Für eine einzelne Master to Slave Verbindung benötigt man ein CS Signal. Die Anzahl der CS Signale steigt also, wenn mehr als ein Slave mit demselben Bus verbunden ist.

Bei der Geschwindigkeit von einem SPI-Bus gibt es keine offiziellen Beschränkungen. Normalerweise betreiben die Mikrocontroller den SPI-Bus mit Geschwindigkeiten von bis zu 10Mhz. Es gibt vier verschiedene SPI-Modi, wenn die Daten auf den verschiedenen Kanten und der Polarität des Clocking Signals einrasten. Es gibt jedoch keinen Standardmechanismus, mit dem ein Master bestätigen kann, dass die Daten erfolgreich empfangen und vom Slave gespeichert wurden.

Der I2C-Bus andererseits benötigt nur zwei Leitungen, serielle Daten (SDA) und seriellen Takt (SCLK). Er wird bei einer deutlich geringeren Geschwindigkeit von 100 kHZ betrieben, obwohl höhere Geschwindigkeiten möglich wären, die eventuell von den meisten Mikrocontrollern nicht unterstützt werden. Slave-Geräte, die mit dem I2C-Bus verbunden sind, erkennt man an ihrer durch die Hardware definierten Chipadresse. Die Signalpins des Mikrocontrollers sind am niedrigsten mit I2C.

Ein gut definierter Standard für I2C deckt nicht nur die Geschwindigkeit des Protokolls ab, sondern auch die Befehle, Initialisierung, Datentransfer und Rückmeldung zwischen Master- und Slave Geräten. So wird gewährleistet, dass alle I2C unterstützenden Geräte zur einfacheren Umsetzung einen einzelnen Standard beachten.

I2C vs. SPI: Wichtige Überlegungen bei der Wahl für Speicherchips

SPI und I2C sind beides beliebte Protokolle für serielle Speicherchips wie Static Random Access Memory (SRAM), Flash oder Electrically Erasable Programmable Read-Only Memory (EEPROM). Um herauszufinden, welches Protokoll am besten zu den Anforderungen Ihres Designs passt, darf man nicht nur die Kosten miteinander vergleichen. Es folgen ein paar wichtige Überlegungen, die Sie in Ihrem Entscheidungsprozess unterstützen können:

1.Geschwindigkeit

Wenn Sie Daten in großen Mengen übertragen oder ein enges Zeitfenster zum Vergleich von Benutzereingaben und gespeicherten Daten auf dem Speicherchip haben, zählt jede Mikrosekunde. Wenn Ihnen Geschwindigkeit besonders wichtig ist, entscheiden Sie sich für SPI mit einer allgemeinen Datentransfergeschwindigkeit von 10 MHz im Vergleich zur deutlich langsameren Geschwindigkeit von I2C mit 400 Khz.

I2C oder SPI: Wenn Geschwindigkeit eine Rolle spielt, wählen Sie ein SPI Speicherchip-Protokoll
Wenn Geschwindigkeit eine Rolle spielt, wählen Sie ein SPI Speicherchip-Protokoll

2. Begrenzte Pins

Nicht alle Hardware-Designer kommen in den Genuss, hochwertige Mikrocontroller mit mehr als 100 Pins benutzen zu können. Manche schlagen sich mit der Verknüpfung von Speicherchips mit 28-Pin Mikrocontrollern herum. In diesem Fall ist I2C ideal, da es nur ein paar Leiterbahnen zur Kommunikation benötigt.

3. Größe der Leiterplatte

Wenn Sie bei der Leiterplatte größentechnisch nicht eingeschränkt sind, können Sie sowohl SPI als auch I2C verwenden. Wenn Sie Ihre Leiterplatte jedoch in ein winziges Gehäuse quetschen möchten, bedeuten weniger Leiterbahnen, dass die Leiterplatte kleiner ausfällt und dann ist I2C die bessere Lösung.

4. Wiederanlauf im Pannen- und Fehlerfall

Designer sind nicht perfekt, ebenso wenig wie das I2C . Der I2C-Bus reagiert empfindlich auf Pannen und Sperren, da sowohl Übersetzung als auch Empfang auf denselben physischen Leiterbahnen stattfinden. Wenn ein Master den Bus nicht rechtzeitig loslässt, kann der Slave in einen blockierten Zustand verfallen, da er eine Antwort gesendet hat, die der Master nicht erhalten konnte. Der Wiederanlauf im Fehlerfall kann kompliziert sein, da in manchen Fällen ein Neustart des blockierten Geräts nötig ist.

5. Energie

Wenn Sie Geräte entwerfen, die mit Batterie oder Solarenergie laufen, muss der Energieverbrauch so niedrig wie möglich gehalten werden. I2C-Geräte verbrauchen in der Regel mehr Energie als SPI. Wenn der Energieverbrauch Thema ist, sollten Sie sich also für SPI entscheiden.

I2C oder SPI: Wählen Sie ein I2C Speicherchip-Protokoll, wenn Ihre Leiterplatte klein ausfallen soll.
Wählen Sie ein I2C Speicherchip-Protokoll, wenn Ihre Leiterplatte klein ausfallen soll. Redaktionelle Quellenangabe: Robson90 / Shutterstock.com

I2C oder SPI: Treffen Sie die beste Entscheidung für Ihr Design

Unabhängig davon, wie Ihre endgültige Entscheidung ausfällt: sowohl für SPI als auch für I2C Protokolle benötigt man parallel geleitete Signale mit einer ähnlichen Länge, um Signalpannen zu verhindern. Ihre Entscheidung wirkt sich nicht nur auf die Funktionalität Ihres Designs aus, sondern auch auf die Umschlagzeit und die allgemeine Effektivität.

Wenn Sie eine PCB-Designsoftware nutzen, die Ihnen die Funktionalität und Tools bietet, um problemlos vom Schaltplan über das Layout zum Ergebnis zu kommen, können Sie diese Designentscheidungen ganz einfach treffen. Nutzen Sie die Tools zum Routing von Signalen und die unzähligen Designmöglichkeiten in Altiums CircuitStudio, um den Prozess zu vereinfachen.

Fragen Sie sich noch immer, welches Protokoll am besten zu Ihrem Design passt? Wenden Sie sich an einen Experten von Altium.

neueste Artikel

Zur Startseite