EEPROM vs Flash: schrijfbestendigheid, granulariteit en schrijftijd
Beide slaan data op zonder voeding. Het verschil zit in hoe vaak je kunt schrijven, hoeveel je in één keer moet wissen en hoe lang het schrijven duurt — en die drie bepalen welke in je ontwerp thuishoort.
Kort antwoord
- EEPROM: byte-beschrijfbaar, 1M+ cycli, milliseconden per byte, lage dichtheid. Configuratie en kalibratie.
- NOR flash: sectorwissen (4 KB), ~100k cycli, paginaschrijfacties van minder dan een milliseconde. Firmware en matige logging.
- NAND flash: blokwissen (groot), lagere duurzaamheid, vereist ECC en omgang met slechte blokken. Bulkgegevens.
- FRAM / MRAM: vrijwel onbeperkte schrijfacties, snel, duur. Hoogfrequente tellers en logs.
1. De drie assen
| Type | Uithoudingsvermogen | Wiseenheid | Schrijftijd |
|---|---|---|---|
| EEPROM | 1M–4M cycles | Byte/page | ≈ 5 ms per write |
| NOR flash | ≈ 100k cycles | 4 KB sector | Page < 1 ms, erase 50–400 ms |
| NAND flash | 1k–3k (MLC/TLC) | 128 KB block | Page ≈ 0.3 ms, block ≈ 2 ms |
| FRAM / MRAM | 10^12+ | Byte | Microseconds |
2. Wisgranulariteit is het structurele verschil
Flash kan een byte niet ter plaatse overschrijven: het wist een hele sector en schrijft die daarna opnieuw. Daardoor wordt een kleine update een read-modify-write-cyclus, en de effectieve endurance van die byte wordt gedeeld door het aantal bytes in de sector. EEPROM vermijdt dit ten koste van dichtheid en prijs.
NOR en NAND verschillen in hoe ze daarmee omgaan. NOR biedt een random-access-interface en ondersteunt execute-in-place, waardoor firmware daar staat. NAND is georganiseerd in pagina's en blokken, heeft ECC nodig en beheert slechte blokken — goedkoper per bit, maar de controller moet meer werk doen.
3. Endurance-berekening
1M cycli bij 1 schrijfactie/s = 11.6 dagen 1M cycli bij 1 schrijfactie/min = 1.9 jaar 1M cycli bij 1 schrijfactie/10min = 19 jaar 100k cycli (NOR) bij 1 schrijfactie/min = 69 dagen
Dat is de berekening die de onderdeelkeuze bepaalt. Een teller die eens per seconde wordt bijgewerkt, vereist FRAM of wear leveling; een configuratieblok dat bij wijziging wordt geschreven, kan prima in EEPROM; firmware die tijdens de productie wordt geschreven, kan prima in NOR.
| Schrijfpatroon | Effectieve levensduur | Oplossing |
|---|---|---|
| 1 byte/s into EEPROM | 11.6 days at 1M | FRAM, or buffer + periodic write |
| 1 write/min into NOR | 69 days at 100k | Wear leveling across sectors |
| Config on change | Decades | No action |
| Firmware at production | Effectively unlimited | Sector erase is fine |
Schrijftijd is van belang voor het gedrag bij stroomuitval: een onderbroken sectorwissing van 300 ms kan de sector ongeldig achterlaten. Houd rekening met een journal of een tweede sector, niet met "het komt wel af".
4. Kiezen op basis van werklast
| Werklast | Beste match | Waarom |
|---|---|---|
| Config, calibration, serial number | EEPROM | Byte writes, high endurance |
| Firmware, bootloader | NOR flash | Execute-in-place, sector update |
| Counter, event log, energy meter | FRAM / MRAM | Unlimited writes, no erase |
| Audio, images, bulk records | NAND | Density per dollar, with ECC |
Voor de serial-flashzijde van een ontwerp, deW25Q32-layoutgidsbehandelt de interface en ontkoppeling; voor de endurancekant van een EOL-beslissing, dePCN/EOL-gidsbehandelt last-time-aankopen.
4b. Interface en behuizing
| Interface | Typisch gebruik |
|---|---|
| I2C EEPROM | Small config, 2-wire bus, many devices |
| SPI EEPROM | Faster byte writes, small density |
| SPI/QSPI NOR | Firmware, execute-in-place, larger density |
| Parallel NOR | Legacy, fast random access, many pins |
| NAND (raw or managed) | Bulk storage; managed parts hide ECC/bad blocks |
5. Checklist
- Schat het aantal schrijfbewerkingen per dag en de levensduur van het product in jaren.
- Deel de endurance door de sectorgrootte als de update kleiner is dan de erase-eenheid.
- Controleer de schrijf- en wistoetijd tegen de strategie voor stroomuitval.
- Bevestig de interface (I2C, SPI, QSPI, parallel) en het aantal pinnen.
- Voor NAND moet u rekening houden met ECC en beheer van slechte blokken.
- Controleer de gegevensretentie bij de maximale bedrijfstemperatuur.
6. FAQ
Kan ik flash gebruiken zoals EEPROM?
Alleen met wear leveling en een read-modify-write-schema. Een byte naar flash schrijven zonder de sector te wissen, is niet mogelijk.
Hoeveel schrijfacties kan een EEPROM echt verdragen?
1M–4M cycli is gebruikelijk, maar endurance wordt per byte en bij een temperatuur gespecificeerd. Controleer de voorwaarden in de datasheet.
Waarom slijt mijn flash zo snel?
Omdat elke kleine update een hele sector herschrijft. De effectieve endurance is het gespecificeerde aantal cycli gedeeld door het aantal bytes per sector.
Is FRAM de kosten waard?
Wanneer de schrijffrequentie hoog is of de voeding op elk moment kan uitvallen, ja. Het elimineert de wiscyclus en het slijtagevraagstuk volledig.
Heb ik ECC nodig op NOR?
Meestal niet voor firmware; voor langdurige logging bij hoge temperatuur is een lichte ECC of checksum een goedkope verzekering.
Wat gebeurt er als de stroom uitvalt tijdens een schrijfactie?
Het schrijven van één byte naar EEPROM is atomair genoeg voor de meeste ontwerpen; het wissen van een flash-sector is dat niet. Gebruik een journal of twee afwisselende sectoren als de gegevens een onverwachte stroomuitval moeten overleven.
Kan ik gegevens 20 jaar bewaren?
Retentie wordt doorgaans gespecificeerd op 10–20 jaar bij 85 °C. Bij hogere temperaturen moet u derating toepassen en dit met de leverancier verifiëren.
7. Bronnen
- Geheugendatasheets — endurance, retentie, pagina-/sector-/blokgrootte, schrijf- en wistijden.
- Applicatienota's over wear leveling en stroomuitvalveilig loggen (leveranciers- en MCU-documentatie).
- JEDEC-normen voor geheugenkwalificatie en retentietests.
Geheugen kiezen?
Stuur de schrijfsnelheid, gegevensgrootte en levensduur. We vertellen u of EEPROM, NOR, NAND of FRAM het goedkoopste antwoord is.