Wo liegt der Vorteil der parallelen SQI-Schnittstelle gegenüber SPI? Parallel vs. seriell

Microchip bietet eine Reihe von seriellen SRAM-Chips mit einem Kommunikationsprotokoll namens SQI an, das SPI ähnlich ist, aber mit 4 parallelen Bits, die bei jedem CLK-Toggle geschrieben werden.

Wenn Sie die zusätzlichen 3 Pins ausgeben können, ist dies sinnvoll. Sie können einen Durchsatz erreichen, der das 4-fache der SPI-Rate beträgt.

Allerdings gibt es einen Haken - SPI wird von allen modernen MCUs als Hardwaremodul unterstützt, läuft also automatisch und sehr schnell und CLK-Raten von mehreren MHz sind kein Problem.

SQI wird von der Hardware nicht unterstützt, daher müssen Sie das Protokoll bitbangen. Wenn meine MCU beispielsweise mit einem 8-MHz-Systemtakt läuft und die meisten Befehle in einem einzigen Zyklus (AVR) ausführt, kann ich eine SQI-CLK-Rate von unter 1 MHz erwarten. Dies basiert auf einer Software-SPI-Implementierung, die ebenfalls unter 1 MHz liegt und etwas weniger Code enthält.

Nehmen wir also an, ich kann mit SQI 4 Bits gleichzeitig mit 800 KHz CLK (Real World Numbers) übertragen, das sind 3,2 Mbits pro Sekunde. Ich kann SPI jedoch mit 5 MHz ausführen und 5 Mbit Daten mit weniger Code abrufen, ohne mit meinem Anwendungscode warten zu müssen, während Daten über die Kommunikationsleitungen gesendet oder empfangen werden.

Worum geht es hier also? Was vermisse ich?

Antworten (1)

SQI wird von der Hardware nicht unterstützt...

Ihre Prämisse ist zwar für Ihre spezielle MCU richtig, im allgemeinen Fall jedoch fehlerhaft. Die MCUs, die Sie sich angesehen haben, verfügen möglicherweise nicht über SQI (was meiner Meinung nach mit Quad SPI oder QSPI identisch ist). Es gibt viele Geräte mit Hardwareunterstützung für QSPI. (Beachten Sie, dass „QSPI“ ein verwirrendes Akronym ist, da es manchmal auch für „Queued SPI“ verwendet wird, was anders ist.)

Zum Beispiel: Viele ARM-MCUs (z. B. STM32 und Atmel SAM ) verfügen über ein Hardware-Peripheriegerät, das x1-, x2- oder x4-SPI ausführen kann, und einige werden vom QSPI-Speicher ausgeführt, zusätzlich zur Verwendung solcher Peripheriegeräte zur Datenspeicherung.

Die meisten FPGAs unterstützen die Konfiguration über Master Serial (SPI) in den Breiten x1, x2 oder x4. Einige können sogar Dual-QSPI-Flash-Chips für volle acht Bit pro Takt verwenden. Siehe die Konfiguration der Xilinx 7-Serie UG , Strg-F "Quad".

In diesen Anwendungen ist das QSPI nicht bit-bung und ist daher viermal schneller. Für Ihren spezifischen Mikrocontroller (und viele kleine 8-Bit-MCUs) sind Sie richtig und mit einem normalen x1-SPI-Flash sind Sie besser dran. Bei vielen vielen Mikrocontrollern, Anwendungsprozessoren und FPGAs gibt es Hardwareunterstützung für x4 SPI und es ist viel schneller.

Technisch gesehen sind "Quad SPI" und "SQI" zwei verschiedene Dinge, der Unterschied liegt in der Anzahl der Zeilen, die für das Befehlsprotokoll verwendet werden.
@IgnacioVazquez-Abrams Danke für die Klarstellung, ich bin mit "SQI" nicht ganz vertraut. Ich glaube jedoch, dass meine Antwort immer noch ausreichend ist, ja?
Ich war auch nicht mit SQI vertraut, bis ich es tatsächlich nachgeschlagen habe (ich hatte früher eine Antwort geschrieben, sie aber gelöscht), aber ja, der Rest der Antwort trifft größtenteils zu. SQI-Unterstützung ist einfach noch seltener als Quad-SPI-Unterstützung.
Nach einigen Recherchen scheint es, dass SQI(tm) von Microchip eigentlich kein x4-Protokoll ist, und es scheint, dass sich OP auf Quad SPI bezieht. Aus einem SSI/Microchip-Dokument ist SQI {CE#, SCK, SI, SO, WP#, HOLD#}, was im Wesentlichen x1 SPI mit zwei zusätzlichen Steuerleitungen ist.
Richtig, aber die Kommunikation selbst erfolgt über DIO0-3 und nicht nur über SI.
Oh, hoppla, ich bin blind und habe anscheinend auf das falsche Datenblatt geschaut (für ein x1-Teil). Danke für die Klarstellung.