Warum gibt es den Befehl QUAD INPUT PAGE PROGRAM OPERATION?

Beim Lesen des Datenblatts für die IS25LP512M-Serie von Flash-Geräten von ISSI stieß ich auf diesen seltsamen Befehl, 32h/38h namens "QUAD INPUT PAGE PROGRAM OPERATION" (in Abschnitt 8.11) mit dem folgenden Zeitdiagramm:

32h/38h-Diagramm

Dieser Befehl erscheint sehr seltsam, da er nur das niedrigstwertige Bit des Datenbusses verwendet, um den Befehl und die Adresse zu übertragen, im Gegensatz zu allen anderen QSPI-Befehlen (soweit ich das beurteilen kann) wie 02h, "Page Program Sequence In SPI Mode", der den Befehl und die Adresse gleichzeitig über alle Datenleitungen überträgt:

02h-Diagramm

Es scheint, als wäre es mühsam, diesen Befehl auf dem Flash-Gerät und auf der Master-Seite zu implementieren.

Wenn Sie " 32h Flash Memory " googeln und die Ergebnisse durchsehen, scheint es eine Reihe anderer Chips zu geben, die diesen Befehl implementieren, GD5F4GQ4UAYIG , S25FL-S , W25M321AV usw. Ich gehe also davon aus, dass es sich um eine Art Standard handelt. (obwohl es so aussieht, als ob der JEDIC Common Flash Memory Interface-Standard keine Befehle abdeckt).

Woher kommt dieser Befehl? Wer nutzt es? Warum existiert es?

Es gibt auch den entsprechenden Lesebefehl, 6Bh
@asdfex gute Beobachtung, das habe ich verpasst!

Antworten (1)

Diese Flash-ROMs können auf verschiedene Arten betrieben werden: einzelne, doppelte und vierfache Datenleitungen. Je mehr Leitungen Sie verwenden, desto schneller ist der Lese- oder Schreibvorgang für eine größere Datenmenge. Es stehen sogar noch mehr Modi zur Verfügung, dieses spezifische Gerät unterstützt 27 (zumindest wenn ich richtig gezählt habe) verschiedene Lesebefehle, alle mit ihrer speziellen Anzahl von Adressbytes, Geschwindigkeiten und Anzahl von Ausgängen.

Typischerweise starten die Geräte im einfachsten Modus, bei dem es sich um einen einzelnen Ein-/Ausgang handelt, und müssen für die Verwendung eines der anderen Modi konfiguriert werden. Es gibt zwei Möglichkeiten, wie dies erreicht werden kann:

Zunächst kann das Gerät z. B. in den Quad-Line-Modus geschaltet werden, dann werden alle weiteren Befehle und Daten parallel auf vier Leitungen übertragen. Dies ist natürlich der schnellstmögliche Modus, erfordert aber auch einen komplexen Controller - er muss im Single-Line-Modus starten, das Gerät auf Quad-Line (QPI-Modus) konfigurieren und dann Befehle auf vier Leitungen senden.

Hier kommen die Befehle 32h und 6bh ins Spiel: Hier werden alle Befehle einzeilig übertragen und nur Daten auf vier Zeilen. Dies ermöglicht eine einfache Steuerung: Alle Befehle werden immer auf einer einzigen Leitung gesendet und es muss kein Modus gewechselt werden. Daten hingegen werden auf allen Leitungen übertragen. Dadurch erreicht das Gerät fast die gleiche Geschwindigkeit wie im QPI-Modus – der tatsächliche Unterschied ist gering, da zB beim Lesen mehrere Dummy-Zyklen benötigt werden, bis Daten vorliegen.

Das war auch mein Gedanke, aber überall, wo ich gesehen habe, müssen Sie das Gerät in den QSPI-Modus versetzen, bevor Sie diesen Befehl aus dem Datenblatt verwenden können: „Before the execute of Quad Input Page Program Instruction, the QE bit in the Status Register muss auf „1“ gesetzt sein und der Write Enable Latch (WEL) muss durch einen Write Enable (WREN)-Befehl aktiviert werden. Das Einstellen von WREN im QSPI-Modus funktioniert wie erwartet unter Verwendung aller Datenleitungen, und das Umschalten des QE-Bits zurück auf Single-Wire-SPI erfordert einen Standard-Quad-Befehl.
@MarkOmo QE-Bit muss gesetzt werden, aber dies unterscheidet sich immer noch von der Ausgabe von 35h, "QPI-Modus aktivieren", die für die "echten" 4-Zeilen-Operationen benötigt wird. Das QE-Bit dient der zusätzlichen Sicherheit, da die IO-Leitungen 2-4 parallel andere Zwecke haben oder je nach Anwendung sogar auf GND/VCC gelegt werden können.
Ahh, ich verstehe, danke, ich kenne keine Situation, in der dies einfacher wäre als vollständiges QSPI. Können Sie auf ein Gerät verweisen, das von diesem Modus abhängt, um zu funktionieren?