Schreibschutzarten und Programmierung
Der Formfaktor sagt, wo die Felder eines Moduls liegen. Eine zweite, unabhängige Achse entscheidet, ob Sie sie ändern können: wie das Modul seinen Speicher gegen Schreibzugriffe schützt. Hersteller verwenden fünf Ansätze, und jeder erfordert eine andere Programmiermethode. Wer den Typ zuerst erkennt, spart sich Stunden fehlgeschlagener Schreibversuche.
Die fünf Schutztypen
| # | Typ | Woran er zu erkennen ist | Wie er programmiert wird |
|---|---|---|---|
| 1 | Ungeschützt | Akzeptiert Schreibzugriffe sofort | Direktes Schreiben — jedoch mit langsamem Takt |
| 2 | Hardware-Schreibschutz-Pin | Schreibgeschützt, egal wie versucht — kein Passwort hilft | Steuerung der WP-Leitung während des Schreibens |
| 3 | Passwort (Firmware-Controller) | WRITE FAIL, bis ein Passwort eingegeben wird | Zuerst das Passwort bei 0x7B eingeben |
| 4 | Temporärer Speicher + Save-Befehl | Schreiben „gelingt“, wird aber nach einem Power-Cycle rückgängig gemacht | Die herstellerspezifische Save-Sequenz senden |
| 5 | Kombiniert | Benötigt eine herstellerspezifische I/O-Sequenz zum Entsperren | Herstellerspezifischer Programmieralgorithmus (Skripte) |
1. Ungeschützt
Das EEPROM hat keine Schreibbeschränkung. Der praktische Haken ist das Timing: zuverlässige Programmierung benötigt in der Regel einen Two-Wire-Takt von rund 1 kHz — etwa zehnmal langsamer als die normale Lesegeschwindigkeit. Bei Standardgeschwindigkeit schlagen Schreibvorgänge unregelmäßig fehl und hinterlassen teilweise geschriebene Seiten. Ein zugehöriges Anzeichen: Bei manchen einfachen Modulen lässt sich nur A0h sauber lesen, während A2h Fehler liefert.
2. Hardware-Schreibschutz-Pin
Der WP-Pin des EEPROMs ist über einen Widerstand mit der Versorgung verbunden, sodass der Chip gesperrt hochfährt. Entsperren bedeutet, die WP-Leitung während des Schreibvorgangs über einen niederohmigeren Pfad gegen Masse zu ziehen — etwas, das nur ein Programmiergerät mit Kontrolle über diese Leitung kann. Software allein kommt an diesem Typ nicht vorbei: Das Modul bleibt über Power-Cycles und Passwortversuche hinweg schreibgeschützt.
3. Passwortgeschützt (Firmware-Controller)
Gemäß SFF-8472 reserviert der A2h-Block einen 7-Byte-Passwortbereich ab Offset 0x7B; die meisten Module verwenden ein 4-Byte-Passwort. Ein Controller im Modul vergleicht das dort Geschriebene mit dem gespeicherten Wert und entsperrt erst dann das Schreiben im EEPROM. Ohne Passwort liefert jeder Schreibversuch WRITE FAIL.
- Das richtige Passwort eingeben, dann schreiben.
- Falls es unbekannt ist: eine Wörterbuchsuche über bekannte Herstellerpasswörter (gängige Werte siehe EEPROM-Neucodierung) oder Nachfrage beim Hersteller.
- Diese Controller reagieren empfindlich auf die Taktgeschwindigkeit und auf die Pausen zwischen Blöcken — ein weiterer Grund, langsam zu programmieren.
4. Temporärer Speicher mit Save-Befehl
Schreibvorgänge landen im flüchtigen Speicher. Alles sieht in Ordnung aus — bis das Modul einen Power-Cycle durchläuft und der alte Code zurückkehrt. Die Firmware des Herstellers benötigt einen expliziten Save-Befehl (eine proprietäre Byte-Sequenz), um das temporäre Abbild in den permanenten Speicher zu übernehmen. Kein Standard definiert ihn; die Sequenz jedes Herstellers ist anders und wird als Skript erfasst.
5. Kombinierter Schutz
Die neuesten Module kombinieren mehrere Mechanismen: Hardware-WP und ein Passwort und einen Save-Befehl und betriebliche Voraussetzungen — zum Beispiel muss das Modul in den Low-Power-Modus versetzt werden, bevor es Schreibzugriffe akzeptiert. Das ist typisch für Module mit neueren SFF-8472-Revisionen, die 256 und mehr Seiten oberhalb von A2h-Offset 0x80 bereitstellen, sowie für CMIS-Module. Die Programmierung erfordert den Algorithmus des Herstellers, der meist nur an Großabnehmer weitergegeben wird.
So wird der Typ erkannt
- Einen einfachen Lesetest versuchen: Lässt sich A2h sauber lesen? (Typ 1 scheitert hier oft.)
- Ein einzelnes Byte in ein ungeschütztes Feld schreiben. Sofortiger Erfolg → Typ 1.
WRITE FAIL→ Typ 3 (oder 5). Stiller Erfolg, der nach einem Power-Cycle rückgängig wird → Typ 4. - Bekannte Passwörter eingeben. Weiterhin schreibgeschützt → Typ 2 (Hardware) oder Typ 5 (kombiniert).
- Formfaktor und Spezifikationsrevision prüfen — CMIS- und Module mit später SFF-8472-Revision sind meist Typ 5.
In CodingBox
- Passworteinstellungen — Tabellenadresse, Passwortadresse (0x7B) und Wert werden unter Geschützter Speicher & Passwörter festgelegt; bekannte Passwörter werden aus der Datenbank angewendet.
- Skripte — Die Programmierskripte von CodingBox enthalten die Save-Sequenzen und Entsperralgorithmen der Hersteller für die Typen 4 und 5.
- Byteweises Schreiben und langsamer Takt für Module, die bei Standardgeschwindigkeit scheitern.
- Hardware-WP wird vom Programmiergerät gehandhabt, nicht von der Software.
- Jeder Lesevorgang wird vor dem Schreiben in der Code-Datenbank gespeichert, sodass ein fehlgeschlagener Versuch immer rückgängig gemacht werden kann.
Symptome auf der Werkbank —
WRITE FAIL, ein Schreibvorgang, der rückgängig wird, ein abgelehntes Passwort — und was jeweils zu tun ist: EEPROM-Lese- und Schreibfehler.
Warum es diese Typen gibt — diskretes EEPROM vs. eine MCU-emulierte Speicherbelegung, Save-Befehle, Firmware-Spiegel und Signaturen, wie die Firmware sie implementiert: Controller & Firmware.