EEPROM vs Flash: Utholdenhet, granularitet og skrivetid
Begge lagrer data uten strøm. Forskjellen er hvor ofte du kan skrive, hvor mye du må slette om gangen, og hvor lang tid skrivingen tar — og disse tre avgjør hvilken som hører hjemme i designet ditt.
Kort svar
- EEPROM: byte-skrivbar, 1M+ sykluser, millisekunder per byte, lav tetthet. Konfigurasjon og kalibrering.
- NOR flash: sektorsletting (4 KB), ~100k sykluser, sideskrivinger under ett millisekund. Fastvare og moderat logging.
- NAND-flash: blokksletting (stor), lavere utholdenhet, krever ECC og håndtering av dårlige blokker. Massedata.
- FRAM / MRAM: i praksis ubegrensede skrivinger, rask, dyr. Høyfrekvente tellere og logger.
1. De tre aksene
| Type | Utholdenhet | Sletteenhet | Skrivetid |
|---|---|---|---|
| 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. Slettegranularitet er den strukturelle forskjellen
Flash kan ikke overskrive en byte på stedet: den sletter en hel sektor og skriver den deretter på nytt. Det betyr at en liten oppdatering blir en les-modifiser-skriv-syklus, og den effektive utholdenheten til den byten deles på antall byte i sektoren. EEPROM unngår dette på bekostning av tetthet og pris.
NOR og NAND er forskjellige i hvordan de håndterer dette. NOR har et grensesnitt for vilkårlig tilgang og tillater execute-in-place, som er grunnen til at firmware ligger der. NAND er organisert i sider og blokker, trenger ECC og håndterer dårlige blokker — billigere per bit, men kontrolleren må gjøre mer arbeid.
3. Utholdenhetsberegning
1M sykluser ved 1 skriving/s = 11.6 dager 1M sykluser ved 1 skriving/min = 1.9 år 1M sykluser ved 1 skriving/10min = 19 år 100k sykluser (NOR) ved 1 skriving/min = 69 dager
Det er denne beregningen som avgjør komponentvalget. En teller som oppdateres én gang per sekund, trenger FRAM eller slitasjeutjevning; en konfigurasjonsblokk som skrives ved endring, er grei i EEPROM; fastvare som skrives ved produksjon, er grei i NOR.
| Skrivemønster | Effektiv levetid | Løsning |
|---|---|---|
| 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 |
Skrivetid har betydning for oppførsel ved strømtap: en sektorsletting på 300 ms som avbrytes, kan etterlate sektoren ugyldig. Planlegg for en journal eller en ekstra sektor, ikke for «at det blir ferdig».
4. Valg etter arbeidsbelastning
| Arbeidsbelastning | Best egnet | Hvorfor |
|---|---|---|
| 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 |
For seriell-flash-siden av et design,W25Q32 layoutveiledningdekker grensesnittet og avkoblingen; for utholdenhetssiden ved en EOL-beslutning,PCN/EOL-veiledningdekker siste gangs kjøp.
4b. Grensesnitt og pakke
| Grensesnitt | Typisk bruk |
|---|---|
| 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. Sjekkliste
- Anslå skrivinger per dag og produktets levetid i år.
- Del utholdenheten med sektorstørrelsen hvis oppdateringen er mindre enn sletteenheten.
- Kontroller skrive- og slettetiden opp mot strategien for strømbrudd.
- Bekreft grensesnittet (I2C, SPI, QSPI, parallell) og antall pinner.
- For NAND må du beregne plass til ECC og håndtering av dårlige blokker.
- Kontroller dataoppbevaring ved maksimal driftstemperatur.
6. FAQ
Kan jeg bruke flash som EEPROM?
Bare med slitasjeutjevning og en les-modifiser-skriv-mekanisme. Det er ikke mulig å skrive en byte til flash uten å slette sektoren.
Hvor mange skrivinger tåler egentlig en EEPROM?
1M–4M sykluser er typisk, men utholdenheten spesifiseres per byte og ved en gitt temperatur. Kontroller databladets betingelser.
Hvorfor slites flashminnet mitt så raskt?
Fordi hver liten oppdatering skriver om en hel sektor. Effektiv utholdenhet er de oppgitte syklusene delt på antall byte som deler den sektoren.
Er FRAM verdt kostnaden?
Når skrivefrekvensen er høy, eller strømmen kan forsvinne når som helst, ja. Det fjerner slettesykelen og slitasjespørsmålet helt.
Trenger jeg ECC på NOR?
Vanligvis ikke for firmware; for langvarig logging ved høy temperatur er en lett ECC eller sjekksum billig forsikring.
Hva skjer hvis strømmen svikter under en skriving?
En EEPROM-byte-skriving er atomisk nok for de fleste design; en flash-sektor-sletting er det ikke. Bruk en journal eller to vekslende sektorer hvis dataene må overleve et uventet strømtap.
Kan jeg lagre data i 20 år?
Lagringstid er typisk spesifisert til 10–20 år ved 85 °C. Ved høyere temperaturer må du redusere og verifisere med leverandøren.
7. Kilder
- Minne-datablad — utholdenhet, retensjon, side-/sektor-/blokkstørrelse, skrive- og slettetider.
- Applikasjonsnotater om wear leveling og strømbruddsikker logging (dokumentasjon fra leverandør og MCU).
- JEDEC-standarder for minnekvalifisering og retensjonstesting.
Velge minne?
Send skriveraten, datamengden og levetiden. Vi forteller deg om EEPROM, NOR, NAND eller FRAM er det billigere svaret.