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

 Icon of memory chip SPI oder I2C: die beste Wahl für Ihr Speicherchip-Protokoll

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

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. 

Wesentliches zu SPI und I2C

Bei SPI handelt es sich um 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. 

Wichtige Überlegungen bei der Wahl zwischen SPI und I2C 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 vielleicht 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.

 Car zooming with lights all around 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 Protokol. 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.

Small single-board PCB Wählen Sie ein I2C Speicherchip-Protokoll, wenn Ihre Leiterplatte klein und niedlich ausfallen soll.

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

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 Funktionalität und Tools verspricht, die Sie benötigen, um problemlos vom Schaltplan zum Layout zum Ergebnis zu kommen, können Sie diese Designentscheidungen ganz einfach treffen. Nutzen Sie mehrere Tools zum Routing von Signalen und unbegrenzte Designinhalte, um den Vorgang mit Altiums CircuitStudio einfacher zu gestalten.

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

Vorheriger Artikel
Wie Sie Signalintegritätsprobleme bei Ihren Designs vermeiden
Wie Sie Signalintegritätsprobleme bei Ihren Designs vermeiden

Unternehmen Sie alles, um Signalintegritätsprobleme zu vermeiden & Signalqualität zu sichern? Lesen Sie bei...

Nächster Artikel
Wie Sie Ihr PCB-Routing mit Pin-Austausch vereinfachen können
Wie Sie Ihr PCB-Routing mit Pin-Austausch vereinfachen können

Erfahren Sie, wie Sie Ihr PCB-Routing mit Pin-Austausch vereinfachen können. Altium verrät Ihnen PCB-Routin...