Typen schrijfbeveiliging en het programmeren ervan
De vormfactor vertelt u waar de velden van een module staan. Een tweede, onafhankelijke factor bepaalt of u ze kunt wijzigen: de manier waarop de module het geheugen tegen schrijven beschermt. Fabrikanten gebruiken vijf methoden; elk vraagt om een eigen programmeermethode. Als u het type eerst herkent, voorkomt u uren mislukte schrijfpogingen.
De vijf beschermingstypen
| # | Type | Hoe u het herkent | Hoe u het programmeert |
|---|---|---|---|
| 1 | Onbeveiligd | Accepteert schrijfbewerkingen meteen | Rechtstreeks schrijven — maar met een trage klok |
| 2 | Hardware-schrijfbeveiligingspin | Blijft alleen-lezen wat u ook probeert; geen wachtwoord helpt | Stuur de WP-lijn aan tijdens het schrijven |
| 3 | Wachtwoord (firmwarecontroller) | WRITE FAIL totdat u een wachtwoord invoert | Voer eerst het wachtwoord in op 0x7B |
| 4 | Tijdelijke opslag + opslagopdracht | Schrijfbewerkingen lijken te slagen, maar verdwijnen na een stroomcyclus | Stuur de opslagreeks van de fabrikant |
| 5 | Gecombineerd | Vereist een fabrikant-specifieke I/O-reeks om te ontgrendelen | Programmeringsalgoritme van de fabrikant (scripts) |
1. Onbeveiligd
De EEPROM kent geen schrijfbeperking. De praktische beperking is timing: betrouwbaar programmeren vraagt doorgaans om een tweedraads klok van ongeveer 1 kHz — ongeveer tien keer langzamer dan de normale leessnelheid. Bij standaardsnelheid mislukken schrijfbewerkingen soms en blijven pagina's gedeeltelijk beschreven achter. Een verwante aanwijzing: bij sommige eenvoudige modules leest alleen A0h zonder fouten, terwijl A2h fouten teruggeeft.
2. Hardware-schrijfbeveiligingspin
De WP-pin van de EEPROM is via een weerstand met de voeding verbonden, waardoor de chip vergrendeld opstart. Om te ontgrendelen trekt u de WP-lijn tijdens het schrijven via een pad met een lagere impedantie naar massa. Alleen een programmerboard dat die lijn kan aansturen, kan dat doen. Software alleen komt niet langs dit type: de module blijft alleen-lezen na stroomcycli en wachtwoordpogingen.
3. Met wachtwoord beveiligd (firmwarecontroller)
Volgens SFF-8472 reserveert het A2h-blok een wachtwoordgebied van 7 byte vanaf offset 0x7B; de meeste modules gebruiken een 4-byte wachtwoord. Een controller in de module vergelijkt wat daar is geschreven met de opgeslagen waarde en ontgrendelt EEPROM-schrijfbewerkingen pas daarna. Zonder het wachtwoord geeft elke schrijfbewerking WRITE FAIL terug.
- Voer het juiste wachtwoord in en schrijf daarna.
- Als het onbekend is: zoek met een woordenboekzoekopdracht in bekende fabrikantwachtwoorden (zie EEPROM-hercodering voor veelgebruikte waarden) of vraag het de fabrikant.
- Deze controllers zijn gevoelig voor kloksnelheid en voor de tussenruimten tussen blokken; nog een reden om langzaam te programmeren.
4. Tijdelijke opslag met een opslagopdracht
Schrijfbewerkingen komen in vluchtig geheugen terecht. Alles lijkt goed te gaan, totdat de module een stroomcyclus doorloopt en de oude code terugkeert. De firmware van de fabrikant heeft een expliciete opslagopdracht nodig, een bedrijfseigen bytevolgorde, om de tijdelijke image naar permanente opslag vast te leggen. Geen standaard definieert deze opdracht; iedere fabrikant heeft een eigen reeks, vastgelegd als een script.
5. Gecombineerde bescherming
De nieuwste modules combineren meerdere mechanismen: hardware-WP en een wachtwoord en een opslagopdracht en operationele voorwaarden. Zo moet een module bijvoorbeeld in low-power mode staan voordat hij schrijfbewerkingen accepteert. Dit is gebruikelijk bij modules met recente SFF-8472-revisies die 256+ pagina's boven A2h-offset 0x80 aanbieden, en bij CMIS-modules. Programmeren vereist het algoritme van de fabrikant, dat meestal met klanten met grote afnamevolumes wordt gedeeld.
Het type bepalen
- Probeer gewoon te lezen: leest A2h zonder fouten? (Type 1 faalt hier vaak.)
- Probeer één byte naar een onbeveiligd veld te schrijven. Meteen succes → type 1.
WRITE FAIL→ type 3 (of 5). Stille schijnbare voltooiing die na een stroomcyclus verdwijnt → type 4. - Voer bekende wachtwoorden in. Nog steeds alleen-lezen → type 2 (hardware) of type 5 (gecombineerd).
- Controleer de vormfactor en de specificatierevisie — CMIS en SFF-8472-modules met late revisies zijn doorgaans type 5.
In CodingBox
- Wachtwoordinstellingen — tabeladres, wachtwoordadres (0x7B) en waarde stelt u in bij Beveiligd geheugen en wachtwoorden; bekende wachtwoorden worden uit de database toegepast.
- Scripts — de programmeerscripts van CodingBox bevatten opslagreeksen en ontgrendelalgoritmen van fabrikanten voor typen 4 en 5.
- Byte voor byte schrijven en een trage klok voor modules die bij standaardsnelheid falen.
- Hardware-WP wordt door het programmerboard geregeld, niet door software.
- Elke lezing wordt vóór het schrijven opgeslagen in de Code database, zodat een mislukte poging altijd herstelbaar is.
Symptomen op de werkbank —
WRITE FAIL, een schrijfbewerking die verdwijnt, een geweigerd wachtwoord — en wat u in elk geval doet: EEPROM-lees- en schrijffouten.
Waarom deze typen bestaan — een afzonderlijke EEPROM tegenover een door een MCU geëmuleerde map, opslagopdrachten, firmwarekopieën en handtekeningen zoals de firmware die implementeert: Controller en firmware.