Stand: Juli 2026. Die Register-, Bit- und Timing-Angaben in diesem Artikel stammen aus den genannten Datenblatt-Revisionen; prüfen Sie sie stets am genauen Bauteil und der Revision, die Sie einsetzen.

Das Wichtigste in Kürze
Der Winbond W25Q128 ist ein SPI-NOR-Flash mit 128 Mbit (16 MB). Im Embedded-Design ist er weit verbreitet, und für ihn werden häufig Zweitquellen gesucht. Fehler passieren dabei leicht. Die Falle ist eng umrissen. Eine „pinkompatible" Alternative kann jeden Labortest bestehen, der den Quad-Boot-Pfad ausspart, und in der Produktion trotzdem nicht booten. Denn der Fehler liegt in der Konfiguration des Execute-in-Place-Boots (XIP) und nicht in gewöhnlichen Lesevorgängen.

Ein geprüfter SPI-NOR-Cross-Reference muss mehr abgleichen als Dichte, Spannung und Pinout. Er muss abgleichen, wie das Bauteil in den Quad-Modus versetzt wird: über das Quad-Enable-Bit (QE) und über die Anzahl der Dummy-Cycles des Fast Quad Read, einen leicht übersehenen Parameter. Denn Ihre Boot-Stufe setzt eine bestimmte Konfiguration und ein bestimmtes Timing voraus. Dichte, Spannung und Pinout beschreiben, was ein Bauteil ist. Das QE-Bit und die Zahl der Dummy-Cycles beschreiben, wie es konfiguriert und getaktet sein muss, bevor Ihre Boot-Stufe es lesen kann. Ein Cross-Reference, der bei der ersten Gruppe endet, hat über die zweite nichts festgestellt. Die erste Gruppe von Angaben steht in einer Zeile des Parametrik-Suchtools. Die zweite entscheidet sich anderswo. Beim Winbond hängt sie am Suffix der Bestellnummer. Sind die betreffenden Bits programmierbar und non-volatile, hängt sie davon ab, was eine frühere Stufe in diese Bits geschrieben hat.
Als durchgerechnetes Beispiel dienen der W25Q128JV und eine häufig in Betracht gezogene Alternative, GigaDevices GD25Q128E. Überraschend ist dabei die Übereinstimmung: Das QE-Bit liegt bei beiden an derselben Registerposition. Der ausgelieferte QE-Standardwert stimmt jedoch nicht zwingend überein, denn beim Winbond hängt er am Suffix der Bestellnummer. Auch die Dummy-Cycles stimmen nicht überein. Jede dieser Abweichungen für sich kann dazu führen, dass die vorhandene Firmware vom Ersatz-Flash nicht mehr bootet.
Warum ein Flash, der auf dem Labortisch bootet, im Feld ausfallen kann
Führt ein Mikrocontroller Code direkt aus externem Flash aus (Execute-in-Place), nutzt er dafür aus Geschwindigkeitsgründen meist Quad SPI (vier Datenleitungen, IO0–IO3, plus Takt und Chip-Select). Beim Booten konfiguriert er den Flash entsprechend: Er aktiviert die Quad-Datenleitungen und setzt dann einen Fast Quad Read mit einer bestimmten Anzahl von „Dummy"-Taktzyklen zwischen Adressphase und Datenrückgabe ab. Jeder dieser Schritte setzt ein bestimmtes Register, ein bestimmtes Bit oder ein bestimmtes Timing im tatsächlich bestückten Flash voraus. Trifft eine dieser Annahmen nicht zu, liefert der Quad Read ungültige Daten, und der Prozessor holt unsinnige Befehle. Dabei wird nichts beschädigt, und das Bauteil wird nicht zerstört. Das System bootet schlicht nicht. Ingenieure nennen den Bootvorgang dann salopp „gebrickt". Die Erholung besteht aus Neuprogrammieren oder Umkonfigurieren; die Hardware selbst muss nicht getauscht werden.
Eine Unterscheidung ist vorab wichtig: Boot-ROM und Bootloader sind nicht dieselbe Stufe. Welche der beiden die falsche Annahme enthält, entscheidet darüber, wie viel sich am Problem per Software noch beheben lässt. Das Boot-ROM ist normalerweise unveränderlicher Code im Prozessor. Auf vielen Bauteilen führt es den allerersten Zugriff auf den externen SPI-NOR-Flash aus. Typischerweise lädt es dabei einen First-Stage-Bootloader, der in genau diesem Flash liegt. Kann das Boot-ROM den Ersatz-Flash nicht lesen, kommt Ihr Bootloader nie zum Zug, und keine spätere Software kann die Annahmen des Boot-ROMs korrigieren. In anderen Architekturen konfiguriert ein Bootloader aus internem Flash oder RAM den externen Flash, bevor er ihn nutzt. Diesen Code können Sie aktualisieren. Spielt der Unterschied keine Rolle, spricht dieser Artikel von der „Boot-Stufe".
Ein QE- oder Dummy-Cycle-Mismatch ist deterministisch: Er zeigt sich jedes Mal, wenn der betroffene Boot-Pfad tatsächlich läuft. Wie kommt ein untauglicher Ersatz dann durch den Labortest? Er kommt nur dann durch, wenn der Test diesen Pfad nie durchläuft. Und ein Test, der einen Pfad nie durchläuft, kann über diesen Pfad nichts bescheinigen. Typischerweise sind es diese Schlupflöcher: Das Programmiergerät verifiziert seine Arbeit über einfache 1-1-1-SPI-Lesevorgänge, die von der Quad-Konfiguration nicht abhängen. Die Testprozedur führt nie einen echten Kaltstart aus dem externen Flash durch. Der Debug- oder Entwicklungs-Boot-Pfad unterscheidet sich vom Produktionspfad. Eine Entwicklungsvorrichtung hat den Flash bereits konfiguriert, und ein einmal von einem Bring-up-Skript gesetztes QE- oder Dummy-Configuration-Bit bleibt erhalten, weil diese Bits non-volatile sind. Der Zustand nach einem Warm-Reset unterscheidet sich vom Zustand nach dem Einschalten. Oder die Reserve bricht erst beim Produktionstakt oder an den Grenzen von Spannung und Temperatur ein. Jedes dieser Schlupflöcher beschreibt eine Lücke in der Testabdeckung. Die Abhilfe ist in allen Fällen dieselbe: Testen Sie den echten Boot-Pfad, kalt, auf der echten Hardware. Ein Flash-Cross-Reference muss auf Register- und Timing-Ebene geprüft werden. Eine Übereinstimmung auf Pin-Ebene lässt diese Prüfung offen.

W25Q128 und GD25Q128 im Vergleich: Was tatsächlich übereinstimmt und was nicht
Der folgende Vergleich stammt direkt aus den beiden aktuellen Datenblättern: Winbonds W25Q128JV (Rev. J, 25. April 2024) und GigaDevices GD25Q128E (Rev. 1.4, April 2024), gezielt Seite an Seite auf die Quad-Modus-Konfiguration hin gelesen. Das Ergebnis ist eine brauchbare Lehre: Nehmen Sie nicht an, Sie wüssten, wo das Problem liegt.
Die Registerposition des QE-Bits stimmt überein, der ausgelieferte QE-Zustand jedoch nicht zwingend: Beide Familien legen das Quad-Enable-Bit auf S9, Bit 1 des Status Register-2, gelesen mit Opcode 35h und, bei den programmierbaren Varianten, geschrieben mit 31h. Die Übereinstimmung auf Folklore-Niveau endet dort, denn Winbond koppelt den QE-Standardwert an das Suffix der Bestellnummer. Laut §7.1.4 des Rev.-J-Datenblatts ist QE=0 der „factory default for part numbers with ordering options ‚IM' & ‚JM'" (ein programmierbares, non-volatile Bit), während QE=1 der „factory fixed default for part numbers with ordering options ‚IQ/IN' & ‚JQ'" ist. Das QE-Bit des GD25Q128E ist programmierbar, non-volatile und steht ab Werk auf 0 (Rev. 1.4, Tabelle 7 und QE-Bit-Beschreibung). Beim Winbond mit Q-Suffix steht QE fest auf 1, die Quad-Pins sind damit immer aktiv. Der GD25Q128E kommt mit QE=0 an. Eine Boot-Stufe, die QE nie setzen musste, setzt es auch nach dem Tausch nicht und scheitert am Quad Read. Die Registerposition stimmt also überein. Der Wert, den das Bit bei der Auslieferung hat, kann dagegen am Suffix der Bestellnummer hängen. Über die QE-Kompatibilität lässt sich deshalb nur anhand der vollständigen bestellbaren Teilenummer urteilen. Weder „W25Q128" noch „W25Q128JV" entscheidet die Frage.
Die Dummy-Cycles stimmen nicht überein, und GigaDevices eigenes Datenblatt ist an dieser Stelle in sich widersprüchlich: Für den Befehl Fast Read Quad I/O (EBh) legt das W25Q128JV-Datenblatt (Rev. J, §8.2.11) vier Dummy-Takte nach dem Mode-Byte fest, ohne ein Register, um sie zu ändern. Die DC-Bit-Tabelle des GD25Q128E Rev. 1.4 (DC, das Dummy-Configuration-Bit, S16 im Status Register-3) nennt sechs Dummy-Cycles beim Standardwert DC=0 für Betrieb bis 104 MHz oder zehn bei DC=1 für Betrieb bis 133 MHz. Eine Fußnote „R" schränkt die 133-MHz-Angabe auf ein VCC von 3,0–3,6 V ein. Das eine Bauteil bietet damit eine einzige Dummy-Zahl. Das andere bietet zwei, umschaltbar über ein non-volatile Bit. Der auf einem konkreten Bauteil geltende Wert hängt davon ab, was auf Ihren Platinen in dieses Bit geschrieben wurde. Das EBh-Timing-Diagramm passt dem Anschein nach zu den sechs Standard-Cycles. Der Fließtext in §7.11 desselben Dokuments spricht jedoch von „4-dummy clock" und widerspricht damit offenbar Tabelle und Diagramm. Die glaubwürdigere Lesart liefern Tabelle und Diagramm. Eine Serienqualifizierung sollte das tatsächliche Verhalten dennoch bei GigaDevice erfragen und auf repräsentativer Hardware bestätigen, statt dieses Datenblatt als eindeutig zu behandeln. Das praktische Risiko bleibt in beiden Lesarten dasselbe: Ein auf Winbonds vier Cycles konfigurierter Host kann mit dem Abtasten beginnen, bevor ein auf sechs Cycles konfigurierter GD25Q128E gültige Daten liefert. Der Quad-Boot scheitert dann selbst bei korrekt gesetztem QE-Bit.
Genau darum geht es bei einem geprüften Cross-Reference. Bei diesem Paar liegt die Gefahr in den ausgelieferten Standardwerten und im Timing, und eines der beiden Datenblätter widerspricht sich selbst. Die Folklore verortet die Falle an der Registerposition des QE-Bits, und genau dort stimmen die beiden Bauteile überein. Eine Übereinstimmung dort erfüllt eine Vorbedingung und lässt die entscheidenden Fakten ungeprüft. All das erfahren Sie nur, indem Sie die Dokumente lesen. Und wenn sie sich widersprechen, müssen Sie beim Hersteller nachfragen und das Silizium testen.
Die EBh-Kompatibilität reicht weit über QE plus eine Dummy-Zahl hinaus. Der Befehl ist ein Protokoll, das Host und Flash gemeinsam ausführen, und jedes seiner Elemente muss vorab vereinbart sein: der Opcode, die 1-4-4-Leitungsbreiten für Befehl, Adresse und Daten, die 3-Byte-Adressphase, der Wert des Mode-Bytes samt seinen Regeln für Ein- und Ausstieg beim Continuous Read („XIP-Modus"), eine gegebenenfalls genutzte Wrap-Konfiguration und der Weg zurück in einen bekannten Protokollzustand nach einem Reset. Weicht auch nur eines davon ab, entsteht dasselbe Symptom: ein Lesevorgang, der ungültige Daten liefert.

SFDP: ein Sicherheitsnetz mit Vorbedingungen
SFDP (Serial Flash Discoverable Parameters) ist der JEDEC-Standard (JESD216), über den ein Flash seine unterstützten Fähigkeiten und Werksparameter in einer kleinen chipinternen Tabelle veröffentlicht: Fast-Read-Opcodes, Mode-Takte und Wartezyklen (Dummy-Cycles) sowie, in den einschlägigen JESD216-Revisionen, eine definierte Prozedur zum Setzen von Quad Enable. Beide Bauteile hier implementieren den Mechanismus (Opcode 5Ah). Eine Boot-Stufe, die SFDP liest, kann sich auf das tatsächlich bestückte Bauteil konfigurieren, statt eines anzunehmen.
Ein Discovery-Standard regelt, wie sich ein Bauteil selbst beschreibt. Was der Host mit dieser Beschreibung anfängt, regelt der Standard nicht. Der Flash veröffentlicht die Tabelle. Die Boot-Stufe muss sie lesen, die Revision verstehen, in der die Tabelle geschrieben ist, und die angezeigte Prozedur ausführen.
Microchips Dokumentation zum SAM9X60 liefert ein konkretes Beispiel für eine solche Implementierung, und wertvoll ist sie hier gerade wegen ihrer Genauigkeit. Das Boot-ROM des SAM9X60 schickt dem Flash einen Software-Reset, sucht nach SFDP-Tabellen (unterstützt werden JESD216, JESD216A und JESD216B), übernimmt die gefundenen Opcode- und Timing-Einstellungen und führt die Quad-Enable-Prozedur aus, die die Bits [22:20] von DWORD15 der Basic Flash Parameter Table anzeigen. Nur wenn kein SFDP gefunden wird, greift es auf fest hinterlegte Einstellungen je Hersteller zurück. Ausgewählt werden diese über die JEDEC-ID. So verhält sich ein bestimmtes Boot-ROM. Das ist kein Beleg dafür, dass sich Ihres genauso verhält.
Behandeln Sie SFDP als bedingte Fähigkeit, denn automatisch ist es nicht. Es kann bauteilspezifische Annahmen verringern, wenn die früheste Boot-Stufe die JESD216-Revision des Flash unterstützt, die relevanten Felder auswertet und die angezeigten Lese- und Quad-Enable-Prozeduren umsetzt. Alle drei Punkte sind Bedingungen an die Boot-Stufe. Die Schwierigkeit besteht darin, dass diese Stufe oft unveränderliches ROM ist. Erfüllt sie diese Bedingungen für Ihren Flash nicht, kann kein späterer Bootloader das beheben. Manche Boot-ROMs werten nur bestimmte SFDP-Revisionen oder eine begrenzte Teilmenge der Felder aus. Eine weitere Grenze betrifft das, was die Tabelle überhaupt aussagen kann: SFDP beschreibt Fähigkeiten und Werkseinstellungen und meldet nicht den aktuellen Inhalt beschreibbarer non-volatile Bits. Dass ein QE- oder Dummy-Configuration-Bit seit der Auslieferung ab Werk geändert wurde, erfahren Sie daraus deshalb nicht. Dazu kommen herstellerspezifische Eigenheiten und schlicht fehlerhafte SFDP-Tabellen. Die Fähigkeit muss deshalb doppelt geprüft werden: einmal in der Boot-ROM-Dokumentation des Prozessors und einmal auf der realen Hardware. Der Mechanismus klärt, was ein Bauteil unterstützt. In welchem Zustand dieses Bauteil tatsächlich ist, lässt er offen.
Weitere W25Q128-Alternativen: Dieselbe Disziplin gilt
GigaDevices GD25Q128E ist eine häufig in Betracht gezogene W25Q128-Alternative, und sie ist nicht die einzige. 128-Mbit-SPI-NOR ist eine dicht besetzte Kategorie mit pinkompatiblen Kandidaten von XMC, Macronix, ISSI, Puya und anderen. Ihre Register-Maps werden hier bewusst nicht zitiert: Für diesen Beitrag wurden nur die Datenblätter von Winbond und GigaDevice geöffnet, und der ganze Sinn dieses Artikels liegt darin, dass Sie jeden Kandidaten anhand seines eigenen Datenblatts prüfen, statt einem Etikett „128 Mbit SPI NOR, SOIC-8" zu vertrauen.
Die Lehre aus dem GD25Q128E verallgemeinert sich zu einer Warnung und liefert keine Abkürzung. Selbst eine nahe Alternative, die bei der Registerposition des QE-Bits übereinstimmte, wich bei den ausgelieferten Standardwerten und den Dummy-Cycles ab, und ihr Datenblatt verlangte eine zweite, skeptische Lektüre. Eine weiter entfernte Alternative kann beim QE-Register selbst, beim SFDP-Inhalt, beim Schreibschutzschema oder bei der Spannungsklasse abweichen. Jede dieser Abweichungen kann diejenige sein, die Ihren Bootvorgang stoppt.
Auch die Aufteilung der Kategorie in zwei Spannungsklassen verdient Aufmerksamkeit: Viele dieser Bauteile gibt es sowohl in einer Familie für ca. 2,7–3,6 V als auch in einer separaten 1,8-V-Familie. Mitunter unterscheiden sich die beiden nur durch ein Suffix. Spannungskompatibilität wirkt in beide Richtungen, und „funktioniert nicht" untertreibt die Folge. Ein Flash der 1,8-V-Klasse an einer 3,3-V-Versorgung kann seine absoluten Grenzwerte (Absolute Maximum Ratings) überschreiten und dauerhaft Schaden nehmen. Ein Bauteil der 3,3-V-Klasse an einer 1,8-V-Schiene erfüllt dagegen in der Regel seine Betriebsbedingungen nicht. Prüfen Sie den Versorgungsbereich und die I/O-Pegel. Bestätigen Sie die Spannungsklasse jedes Kandidaten, bevor Sie irgendetwas anderes betrachten.
Die praktische Haltung: Behandeln Sie jede 128-Mbit-SPI-NOR-Alternative als Kandidaten für ein Screening mit der Checkliste weiter unten, anhand ihres eigenen Datenblatts. Qualifizieren Sie anschließend die exakte bestellbare Teilenummer auf Ihrer Hardware. SFDP verringert das Risiko, sofern Ihre Boot-Stufe es tatsächlich unterstützt, und macht die Prüfung nicht überflüssig.
Die SPI-NOR-Cross-Reference-Checkliste: erst Screening, dann Qualifizierung
Prüfen Sie Kandidaten im Screening-Durchgang anhand der tatsächlichen Datenblätter. Die Antworten auf die folgenden Fragen stehen in den Dokumenten und nicht in einer Zeile des Parametrik-Suchtools.
Dichte und Organisation: Die Dichte beträgt hier 128 Mbit. Bestätigen Sie Sektor- und Blocklöschgrößen samt Opcodes, falls Ihr Code bestimmte Bereiche löscht.
Spannung, eine ausschlaggebende Prüfung: Der verbreitete W25Q128JV ist ein Bauteil für ca. 2,7–3,6 V, und daneben gibt es separate Familien der 1,8-V-Klasse. Eine zu hohe Versorgungsspannung an einem 1,8-V-Bauteil birgt die Gefahr eines dauerhaften Schadens. Eine zu niedrige Versorgungsspannung an einem 3,3-V-Bauteil führt dazu, dass es seine Spezifikation nicht einhält. Bestätigen Sie Versorgungsbereich und I/O-Pegel zuerst.
Gehäuse, Pinout und Beschaltung: Vergleichen Sie die Abmessungen von SOIC-8 oder WSON-8, Exposed Pad und Footprint, die genaue Pinbelegung sowie die Beschaltung von /WP und /HOLD (oder /RESET) auf Ihrer Platine. Die Wahl zwischen Pull-up-Widerständen und festen Anbindungen macht einen Unterschied, sobald der Quad-Modus diese Pins zu IO2/IO3 umwidmet.
Maximaltakt unter Ihren Bedingungen: Die Angabe hängt vom konkreten Lesebefehl, der Dummy-Einstellung, von VCC, der Ausgangslast und der Temperatur ab. Die 133-MHz-Angabe des GD25Q128E für EBh erfordert zum Beispiel die Einstellung DC=1 mit zehn Cycles und 3,0–3,6 V. In Ihre reale Obergrenze gehen zusätzlich das Abtast-Timing des Controllers und die Signalintegrität der Platine ein.
Quad-Enable-Prozedur und Standardwert: Klären Sie vier Punkte. Welches Register und welches Bit sind beteiligt? Wie lautet der Schreibbefehl? Ist das Bit volatile oder non-volatile? In welchem Zustand wird das Bauteil ausgeliefert? Dieser Zustand kann am Suffix der Bestellnummer hängen (W25Q128JV: Q-Suffix QE fest auf 1, M-Suffix programmierbar mit Standardwert 0).
Dummy-Cycle-Konfiguration: Klären Sie die Anzahl für Ihren Fast- oder Quad-Read, ob sie fest oder konfigurierbar ist und in welchem non-volatile Zustand sie auf Ihren Platinen tatsächlich steht. Ein Mismatch an dieser Stelle lässt die vorhandene Firmware vom Ersatz-Flash nicht mehr booten.
SFDP-Unterstützung auf beiden Seiten: Bestätigen Sie, dass die Alternative SFDP veröffentlicht. Bestätigen Sie ebenso, dass Ihre früheste Boot-Stufe diese SFDP-Revision unterstützt und sie tatsächlich nutzt. Lesen Sie die realen Tabelleninhalte aus und vergleichen Sie sie, statt sie anzunehmen.
Statusregister-Layout, Schreibschutz und OTP-Verhalten: Prüfen Sie die Schreibsemantik der Statusbefehle nach Art von 01h/31h, die Block-Protect- und Lock-Bits, die Security-Register und etwaige bauteilspezifische Eigenheiten, auf die sich Ihre Firmware verlässt.
Mit diesen acht Punkten screenen Sie auf die Fehlerbilder, um die es in diesem Artikel geht. Ein Screening ist jedoch keine Qualifizierung. Eine vollständige Zweitquellen-Qualifizierung vergleicht zusätzlich, aus den Datenblättern und auf realer Hardware:
Bauteilidentität: die exakte bestellbare Teilenummer (MPN), das Suffix und die Silizium-Revision; die JEDEC-ID aus Hersteller-, Typ- und Kapazitätsbyte samt etwaiger ID-Whitelist in Firmware oder Werkzeugen (schon die JEDEC-Device-ID des W25Q128JV unterscheidet sich nach Suffix: 4018h für IN/IQ/JQ gegenüber 7018h für IM/JM); die SFDP-Revision samt einem realen Dump der SFDP-Inhalte.
Adressierung: Dichte und Adressbreite, 3-Byte- gegenüber 4-Byte-Adressierung, Bank- oder Extended-Address-Register und, wo relevant, dedizierte 4-Byte-Opcodes.
Protokollzustand: jedes genutzte Leseprotokoll mit Opcode, den Leitungsbreiten für Befehl, Adresse, Mode und Daten, Mode- oder Alternate-Byte-Anforderungen, Ein- und Ausstieg aus Continuous Read/XIP, Wrap-Konfiguration, Software- und Hardware-Reset-Befehlen und der Erholung aus einem unbekannten Protokoll- oder Continuous-Read-Zustand.
Programmieren und Löschen: Sektor- und Blocklöschgrößen samt Opcodes, Page-Program-Größe und Verhalten an Seitengrenzen (Wrap), Suspend und Resume für Programmieren und Löschen sowie das Verhalten nach einem unterbrochenen Programmier- oder Löschvorgang.
Elektrik und Zuverlässigkeit: Temperaturbereich und Qualifizierungsgrad, Power-on-Reset-Schwellen, Anstiegsraten und Timing der Versorgung, Stromaufnahme in Standby, Lesen, Programmieren und Löschen, Endurance und Retention gemessen an Ihren Anforderungen sowie die Signalintegritätsreserve auf der realen Platine.
Die ganze Kette: Kompatibilität mit der kompletten Boot-, Firmware-Update-, Recovery- und Fertigungs-/Programmier-Werkzeugkette, getestet über Kaltstart, Warm-Reset, Brownout sowie die Grenzen von Spannung und Temperatur.
Diese Prüfungen benennen die wichtigsten Kompatibilitätsrisiken. Die endgültige Qualifizierung verlangt weiterhin, die exakte bestellbare Teilenummer in den vorgesehenen Boot-, Update-, Recovery- und Fertigungspfaden zu testen.

Häufige Fragen
Was ist der beste einsteigerfreundliche Begriff, den man hier kennen sollte: Ist „SPI NOR" die Kategorie?
Ja, SPI-NOR-Flash ist die Kategorie (serieller NOR-Flash am SPI-/Quad-SPI-Bus, für Codespeicher und XIP-Boot). Der W25Q128 ist ein bestimmtes 128-Mbit-Bauteil darin, und die Cross-Reference-Methode aus diesem Artikel gilt über die ganze Kategorie hinweg.
Ist der GD25Q128 ein Drop-in-Ersatz für den W25Q128?
Auf Familienebene lässt sich das nicht entscheiden, und dieser Artikel vergleicht Familien. Ob ein bestimmtes GigaDevice-Bauteil ein bestimmtes Winbond-Bauteil ersetzen kann, hängt von mehreren Faktoren ab: von den vollständigen bestellbaren Teilenummern, vom ausgelieferten QE- und Dummy-Configuration-Zustand, vom Verhalten Ihrer Boot-Stufe (fest kodiertes Timing oder SFDP) und von einer Qualifizierung auf Systemebene auf Ihrer Hardware. Der QE-Standardwert des Winbond unterscheidet sich dabei zwischen Bauteilen mit Q- und mit M-Suffix. Dass die Registerpositionen bei S9/SR-2 zusammenfallen, ist notwendig, aber bei weitem nicht hinreichend.
Was ist das „QE-Bit", und warum ist es wichtig?
Das Quad-Enable-Bit schaltet die Pins IO2 und IO3 für Quad-Befehle frei: Mit gesetztem QE können Quad-Output- und Quad-I/O-Lesevorgänge alle vier Datenleitungen nutzen. Standardbefehle über eine Leitung (1-1-1) bleiben in der Regel verfügbar, und QE schaltet das Bauteil nicht insgesamt in ein anderes Protokoll um. QPI- oder 4-4-4-Betrieb ist bei Bauteilen, die ihn unterstützen, ein eigener Protokollzustand mit eigenem Einstiegsbefehl. Mit dem Setzen von QE ist er nicht zu verwechseln. Wichtig ist das Bit, weil der Quad-Boot es korrekt gesetzt voraussetzt. Position, Prozedur und Auslieferungszustand variieren zudem je nach Hersteller, Modell und sogar Suffix der Bestellnummer. Das Bit ist damit zwei Angaben zugleich: eine Position, die ein Vergleich der Datenblätter klären kann, und ein ausgelieferter Wert, über den die vollständige bestellbare Teilenummer und die Geschichte Ihrer Platinen entscheiden.
Was ist SFDP, und warum will ich es haben?
SFDP ist ein JEDEC-Standard (JESD216), über den der Flash seine unterstützten Parameter und Werkseinstellungen chipintern veröffentlicht. Eine Boot-Stufe, die die SFDP-Revision des Flash unterstützt und dessen Prozeduren umsetzt, kann sich auf den jeweils vorhandenen Flash konfigurieren. Das macht das Cross-Referencing spürbar sicherer. Automatisch ist es allerdings nicht. Das Boot-ROM muss diese Tabellen tatsächlich auswerten und danach handeln, und manche Boot-ROMs werten nur bestimmte Revisionen oder Felder aus. SFDP kann den aktuellen Zustand beschreibbarer non-volatile Bits nicht melden, und es sind bereits SFDP-Tabellen mit Fehlern ausgeliefert worden. Prüfen Sie die Unterstützung in der Boot-Dokumentation des Prozessors und auf der Hardware.
Warum bootete meine Platine auf dem Labortisch, aber nach einem Flash-Wechsel nicht in der Produktion?
Ein Konfigurations-Mismatch im Quad-XIP-Pfad (beim QE-Standardwert oder bei den Dummy-Cycles) ist eine wahrscheinliche Ursache. Denn die Inbetriebnahme am Labortisch läuft oft über Single- oder Dual-SPI und durchläuft den Quad-Boot-Pfad nie. Behandeln Sie das aber als eine Hypothese unter mehreren. Prüfen Sie außerdem: eine JEDEC-ID-Whitelist in Boot-Kette oder Programmierwerkzeugen, einen von einer früheren Stufe hinterlassenen Continuous-Read- oder QPI-Zustand, Unterschiede im Reset-Verhalten, die Einschaltreihenfolge und die Power-on-Reset-Schwellen, Schutzbits, Signalintegrität und Taktreserve bei Produktionsfrequenz, Temperatur- oder Spannungsgrenzen sowie das Lösch- und Programmierverhalten, das Ihr Updater voraussetzt.
Muss ich mir darüber Gedanken machen, wenn ich kein XIP nutze?
Die Sorge ist kleiner, und sie entfällt nicht. Wenn Sie den Code beim Booten aus dem Flash in den RAM kopieren, statt ihn direkt auszuführen, stoppt ein Quad-Timing-Mismatch den Bootvorgang seltener. Für die Geschwindigkeit stützen Sie sich aber weiterhin auf Quad- oder Dual-Lesevorgänge, und Unterschiede bei QE-Bit und Dummy-Cycles können auch diese Lesevorgänge verfälschen. Die sichere Gewohnheit bleibt dieselbe: Prüfen Sie die Konfiguration des frühesten Lesepfads am exakten Bauteil.
Ist ein Flash höherer Dichte (z. B. 256 Mbit) ein sicherer Ersatz für einen mit 128 Mbit?
Behandeln Sie das als Änderung auf Redesign-Niveau und nicht als Substitution. 128 Mbit sind 16 MiB, also genau die Obergrenze einer 24-Bit-Adresse aus 3 Byte. Ein 256-Mbit-Bauteil braucht ein 25. Adressbit. Das bedeutet typischerweise den 4-Byte-Adressmodus, dedizierte 4-Byte-Opcodes oder ein Extended- oder Bank-Address-Register. Ihr Boot-ROM, Ihre Firmware, Ihre Update-Werkzeuge und Ihr Recovery-Pfad müssen dann alle genau die Variante unterstützen, die das Bauteil nutzt. Eine Boot-Stufe, die nur 3-Byte-Adressierung spricht, kommt mit dem größeren Bauteil womöglich zurecht, womöglich auch nicht, selbst innerhalb der ersten 16 MiB. Welche der beiden Möglichkeiten eintritt, klärt eine Qualifizierung und keine Annahme. Passendes Gehäuse und passende Spannung machen höhere Dichte nicht sicher.
Sind chinesische SPI-NOR-Flash-Bauteile (GigaDevice, XMC, Puya) sichere Zweitquellen?
Es sind weit verbreitete Bauteile. „Sicher" ist eine Frage der Prüfung: Jede Alternative, von jedem Hersteller, ist anhand ihres eigenen Datenblatts auf QE-Verhalten, Dummy-Cycles, SFDP und Spannungsklasse zu prüfen und anschließend als exakte Teilenummer auf Ihrer Hardware zu qualifizieren. Das Risiko entsteht dort, wo diese Prüfung ausbleibt. Die Herkunft entscheidet die Frage nicht, in keiner Richtung.
Was ist die wichtigste einzelne Prüfung bei einem Flash-Cross-Reference?
Prüfen Sie die vollständige früheste Boot-Transaktion auf Ihrer Hardware, bestückt mit der exakten bestellbaren Teilenummer: ein echter Kaltstart ab dem Einschalten, über genau den Lesebefehl und die Konfiguration, die Ihre Boot-Stufe tatsächlich absetzt. Bestätigen Sie danach Update- und Recovery-Pfad. Diese eine Transaktion durchläuft den QE-Zustand, die Dummy-Cycle-Konfiguration und den Protokollzustand gemeinsam. SFDP-Unterstützung in Flash und Boot-Stufe senkt das Risiko erheblich. Die Frage entscheidet aber der Transaktionstest.
Fazit
Ein SPI-NOR-Flash-Cross-Reference auf Basis von Pins und Dichte ist ein latenter Bootausfall, der auf die Produktion wartet. Auf Basis von QE-Verhalten, Dummy-Cycles, SFDP und der exakten bestellbaren Teilenummer wird daraus eine Zweitquelle, mit der Sie planen können. Diese Register- und Timing-Prüfungen bilden den Screening-Durchgang und erledigen die Arbeit nicht vollständig, denn eine echte Qualifizierung testet weiterhin die Boot-, Programmier-, Firmware-Update- und Recovery-Kette mit dem realen Bauteil auf repräsentativer Hardware. Eine Second-Source Map erledigt das Screening so, wie es sein muss: Register für Register, Timing für Timing, anhand beider aktueller Datenblätter und Ihres Boot-Pfads. Sie benennt zudem genau, was auf Hardware noch zu qualifizieren bleibt. Damit bootet die Alternative, die auf dem Labortisch bootet, auch in der Produktion. Bei einem Bauteil, für das so häufig Zweitquellen gesucht werden wie beim W25Q128, ist diese Disziplin der Unterschied zwischen einer qualifizierten Alternative und einer Welle von Feldrückläufern. Wenn Ihnen das hilft: Genau das ist unsere Arbeit.
Dieser Artikel zitiert konkrete Datenblatt-Revisionen: Winbond W25Q128JV Rev. J (25. April 2024), das Datenblatt der Standard-SPI-Variante (die DTR-Variante behandelt das separate Datenblatt W25Q128JV-M DTR); GigaDevice GD25Q128E Rev. 1.4 (April 2024, Dokument DS-00480), dessen Fließtext in §7.11 der DC-Bit-Tabelle widerspricht, wie oben ausgewiesen; sowie Microchips SAM9X60-Datenblatt, Abschnitt „QSPI NOR Flash Boot". Andere Bauteile und Revisionen weichen ab. Es handelt sich um allgemeine ingenieurtechnische Hinweise und nicht um eine Spezifikation für ein bestimmtes Bauteil. Prüfen Sie das genaue Bauteil und die Revision anhand seines Datenblatts und Ihrer Boot-Stufe, bevor Sie sich festlegen.
Das nächste Muster per E-Mail
Ein Abhängigkeitsmuster aus echten Hardware-Audits, in unregelmäßigen Abständen (derzeit auf Englisch). Noch kein fester Rhythmus.
Arbeiten Sie gerade an genau so einem Fall? Gespräch buchen → oder schreiben Sie mir →