
Figuur 1. Kenmerken van OTP Geheugen en Opgeslagen Gegevens
OTP staat voor One-Time Programmable geheugen. OTP is een type niet-vluchtig geheugen dat opgeslagen gegevens behoudt nadat de stroom is verwijderd. Het is ontworpen voor informatie die gedurende de levensduur van een apparaat vast moet blijven.
OTP-geheugen biedt laag energieverbruik, eenvoudige permanente opslag en bescherming tegen onbedoelde wijzigingen. Onjuiste gegevens zijn echter moeilijk of onmogelijk te corrigeren. OTP-geheugen verschilt ook van een eenmalig wachtwoord, dat een tijdelijke code is die wordt gebruikt voor inloggen of verificatie.
Hoe Werkt OTP Geheugen?
OTP-geheugen begint in een leeg staat, waar elk bit een standaard binaire waarde van 0 of 1 heeft. Tijdens de programmering past het apparaat een gecontroleerde spanning of stroom toe op geselecteerde cellen, wat hun elektrische toestand verandert om de vereiste gegevens op te slaan. In fuse-gebaseerd OTP opent een gecontroleerde programmeerstroom geselecteerde fuselinks.
Het uitlees circuit controleert elke cel en converteert zijn elektrische toestand in binaire gegevens. Na programmering leest het apparaat de opgeslagen waarden terug en vergelijkt ze met de oorspronkelijke gegevens. Sommige OTP-apparaten bieden ook beschermingscontroles die het lezen beperken, verdere programmering voorkomen of een heel blok vergrendelen na verificatie.
OTP-geheugen kan worden geclassificeerd op basis van de fysieke methode die wordt gebruikt om elk bit op te slaan. De belangrijkste mechanismen zijn fuse- of eFuse-links, antifuse-cellen, ladingsgebaseerde cellen en vergrendelbare Flash-regio's.
PROM beschrijft hoe en wanneer een geheugentoestel wordt geprogrammeerd in plaats van één specifieke OTP-celtechnologie. Embedded en standalone beschrijven productintegratie, niet het fysieke opslagmechanisme.

Figuur 2. Typen OTP Geheugen en Plaatsing
Fuse-gebaseerd OTP maakt gebruik van kleine geleidende links die intact zijn vóór programmering. Een gecontroleerde programmeerstroom opent geselecteerde fuselinks, waardoor hun elektrische toestand verandert om binaire gegevens op te slaan.
eFuse is een kleinere elektronische versie die direct in een geïntegreerde schakeling is gebouwd. Programmering verhoogt permanent de weerstand van het geselecteerde element of verbreekt zijn geleidingspad.
Fuse en eFuse OTP zijn eenvoudig, stabiel en worden veel gebruikt in MCU's, processoren en SoCs. eFuse is gemakkelijker te integreren in veel standaard CMOS-processen, maar programmering kan relatief hoge stroom vereisen. Fuse-structuren kunnen ook meer siliciumoppervlak nodig hebben dan dichtere OTP-technologieën.
Antifuse-implementaties kunnen compacte cellen en een laag leesvermogen ondersteunen, maar de dichtheid en retentie zijn afhankelijk van het proces, het celontwerp, de kwalificatie, de temperatuur en de detectiemarge. De geprogrammeerde toestand kan in sommige implementaties minder visueel duidelijk zijn.
Laadgebaseerde OTP slaat elektrische lading op in een geïsoleerde transistorstructuur, doorgaans een zwevende gate. De opgeslagen lading verandert de drempelspanning van de transistor, waardoor de leescircuits het verschil kunnen onderscheiden tussen geprogrammeerde en lege toestanden.
Deze methode ondersteunt een goede opslagnauwkeurigheid en een laag leesvermogen. De betrouwbaarheid op lange termijn is afhankelijk van ladingsretentie, bedrijfstemperatuur, elektrische belasting en veroudering van het apparaat. In tegenstelling tot normale Flash of EEPROM biedt de OTP-implementatie geen standaard wisfunctie voor gebruikersupdates.
Sommige Flash-apparaten bevatten speciale pagina's, sectoren of beveiligingsregisters die kunnen worden geprogrammeerd en vervolgens permanent vergrendeld. Deze gebieden gebruiken Flash-geheugencellen in plaats van een aparte fusie of antifusie-structuur.
Vergrendelbare Flash-gebaseerde OTP-regio's zijn handig omdat ze een bestaand geheugenproces en programmeerinterface gebruiken. Ze kunnen meer capaciteit bieden dan kleine fuse-arrays. Hun permanentie en beveiliging zijn echter afhankelijk van het vergrendelontwerp van het apparaat. Sommige regio's zijn echt onomkeerbaar, terwijl andere mogelijk herstel, massawissen of fabrieks toegang onder specifieke voorwaarden toestaan.
De keuze tussen eFuse en antifuse is afhankelijk van het halfgeleiderproces, beschikbare programmeerspanning of -stroom, celindeling, detectiemethode, kwalificatiedoelen en beveiligingseisen.

Figuur 3. eFuse vs Antifuse Programmeringsstatussen
| Vergelijking Punt |
eFuse OTP |
Antifuse OTP |
| Initiële toestand |
Geleidende of laag-resistieve pad |
Open of hoog-resistieve pad |
| Geprogrammeerde toestand |
Het pad wordt open of meer resistief |
Een geleidend pad is gecreëerd |
| Programmeermethode |
Een gecontroleerde stroom verandert of opent het fuse-element |
Een hoog elektrisch veld verandert de isolatielaag en vormt een geleidend verband |
| Siliconengebied |
Cel- en programmeercircuitsize zijn afhankelijk van het proces en de indeling |
Kan een compacte cel ondersteunen, afhankelijk van de procesimplementatie |
| Vermogensvereiste |
Vaak hogere programmeerstroom nodig |
Vaak hogere programmeerspanning nodig, terwijl de stroom afhankelijk is van het ontwerp |
| Betrouwbaarheid |
Afhankelijk van fuse geometrie, programmeringscontrole en detectiemarge |
Afhankelijk van antifuse structuur, doorbraakcontrole en detectiemarge |
| Gegevensretentie |
Afhankelijk van cel ontwerp, proceskwalificatie, temperatuur en detectiemarge |
Afhankelijk van cel ontwerp, proceskwalificatie, temperatuur en detectiemarge |
| Fysieke inspectie |
Een veranderde of geopende verbinding kan in sommige implementaties zichtbaar zijn |
De geprogrammeerde toestand kan in sommige implementaties minder visueel duidelijk zijn |
| Procescompatibiliteit |
Kan in veel CMOS-processen worden geïntegreerd, afhankelijk van de ontwerprichtlijnen |
Kan extra materialen, structuren of procesondersteuning vereisen |
| Beste ontwerpgeschiktheid |
Ontwerpen die procescompatibiliteit en eenvoudige integratie bevorderen |
Ontwerpen die de vereiste programmeerspanning en celstructuur kunnen ondersteunen |
| Hoofdselectiefactor |
Programmeerstroom, indelingsgebied, detectiemethode en procesondersteuning |
Programmeerspanning, procesondersteuning, detectiemethode en kwalificatiedata |
Deze niet-vluchtige geheugen types verschillen voornamelijk in of opgeslagen gegevens kunnen worden bijgewerkt en wanneer die gegevens worden gedefinieerd.
| Geheugen Type |
Kan het worden bijgewerkt? |
Hoe Gegevens worden gedefinieerd |
Typisch Gebruik |
Hoofd Beperking |
| OTP |
Nee, na de laatste programmering |
Geprogrammeerd na de chip productie |
Apparaat-ID's, kalibratiegegevens, vaste instellingen en beveiligingswaarden |
Onjuiste gegevens kunnen meestal niet worden gecorrigeerd |
| EEPROM |
Ja |
Elektrisch geschreven en bijgewerkt tijdens de werking |
Instellingen, tellers, kalibratiewaarden en gebruikersvoorkeuren |
Schrijven is trager dan lezen en de levensduur is beperkt |
| Flash |
Ja |
Elektrisch geschreven en gewist in blokken of sectoren |
Firmware, code opslag, gegevensregistratie en grote datasets |
Updates kunnen vereisen dat een groter blok wordt gewist |
| Mask ROM |
Nee |
Vaste waarde tijdens de halfgeleiderproductie |
Permanente code in producten met hoge volumes |
Elke codewijziging vereist een nieuw chipontwerp of productiemasker |
| PROM |
Nee, na programmering |
Geprogrammeerd nadat het geheugentoestel is vervaardigd |
Vaste code, opzoektabellen en productconfiguraties |
Programmeerfouten en latere updates zijn normaal gesproken niet herstelbaar |
OTP-geheugen wordt gebruikt voor informatie die gedurende de levensduur van een toestel stabiel moet blijven.
| Toepassing Categorie |
Informatie Opgeslagen |
Doel |
| Apparaatidentiteit |
Serienummers, apparaat-ID's, MAC-adressen en productcodes |
Identificeert elk toestel voor tracking, registratie, netwerken en servicegegevens |
| Fabriekskalibratie |
Offset, gain, trim, temperatuur en compensatiewaarden |
Corrigeert fabricagevariaties en verbetert de nauwkeurigheid van sensoren of circuits |
| Productconfiguratie |
Model, regio, ingeschakelde functies, operationele limieten en hardware-instellingen |
Stelt één hardwareontwerp in staat om verschillende productversies te ondersteunen |
| Beveiligde opstart |
Opstart- inschakelbits, hashes van vertrouwde sleutels en instellingen voor firmwareverificatie |
Helpt het toestel alleen goedgekeurde opstartsoftware te accepteren |
| Levenscyclusbeveiliging |
Anti-rollback waardes, debug-locks, leesbescherming en beveiligingsstatussen |
Beheert firmware-updates en beperkt toegang na productie |
| Apparaatreferenties |
Certificaten, authenticatiegegevens, sleutelreferenties of beveiligde sleutels |
Ondersteunt apparaat authenticatie en veilige communicatie |
Waarschuwing: Gewoon leesbaar OTP is niet automatisch geschikt voor opslag van geheime sleutels. Gebruik hardwarebeschermde of leesbeperkte sleutelblokken wanneer beschikbaar.
Apparaatidentiteit en MAC-adressen
OTP kan een uniek serienummer, apparaat-ID of 48-bits MAC-adres opslaan. Deze waarden ondersteunen producttracking, registratie, netwerken en servicegegevens. Onjuiste of duplicaatwaarden kunnen traceerbaarheid of netwerkconflicten veroorzaken.
Fabriekskalibratie en analoge trimming
Sensoren en analoge circuits kunnen offset, gain, temperatuur, frequentie of trimwaarden in OTP opslaan. Deze waarden behouden fabrieksmetingen en helpen het toestel om aan zijn nauwkeurigheid of prestatie targets te voldoen.
Controleer het bereik van adressen dat toegankelijk is voor de gebruiker, de waarde in lege toestand, de programmeerbare eenheid, de richtingsverandering van de bits, de uitlijning, de granulariteit van bescherming en de vereiste programmeerspanning. Fabriekskalibratiegegevens, gereserveerde rijen, apparaatidentificaties en niet gedocumenteerde locaties mogen niet worden gewijzigd.
Maak een duidelijke datastructuur voordat u programmeert. Het record kan een type veld, versie nummer, datalengte, payload, checksum of CRC, geldigheidsmarker, en gereserveerde bytes bevatten. Een vast formaat helpt firmware om de gegevens correct te lezen en te verifiëren.
Laat ongebruikte woorden of blokken over voor toekomstige productversies, toegevoegde instellingen, vervangende records of beveiligingsupdates. Firmware moet in staat zijn om het nieuwste geldige record te identificeren zonder eerdere geprogrammeerde gegevens te wijzigen.
Programmeer en verifieer alle vereiste gegevens voordat u permanente bescherming aanbrengt. Test het toestel eerst, stel dan blokkeren in, leesbescherming, beveiligde opstartcontroles, en debugbeperkingen in. Permanente vergrendelingen moeten als laatste worden toegepast omdat herstel mogelijk niet meer mogelijk is.
Beveiligde Opstart en Vertrouwde Sleutel Hashes
OTP kan bits voor veilige opstart inschakelen en een vertrouwde openbare sleutelhash opslaan. Deze waarden moeten worden geverifieerd voordat permanente vergrendeling plaatsvindt, omdat een onjuiste hash of opstartinstelling kan voorkomen dat geldige firmware wordt uitgevoerd.
Anti-Rollback en Debug Vergrendeling
OTP kan een minimale firmwarebeveiligingsversie en permanente debugbesturingselementen opslaan. Anti-rollback waarden moeten gepland worden voor toekomstige updates, terwijl JTAG of SWD vergrendelingen alleen na de laatste test moeten worden toegepast.
| Programmeer Fase |
Vereiste Actie |
Vrijgave Voorwaarde |
| 1. Bevestig het exacte doelapparaat en OTP-gebied |
Controleer het volledige onderdeelnummer, pakket, revisie, bereik van verzendbare OTP-adressen, programmeerbare eenheid, uitlijning, waarde in lege toestand en granulariteit van bescherming. Sluit fabrieksgeprogrammeerde en gereserveerde locaties uit. |
Het exacte apparaat en het schrijfbare OTP-gebied worden bevestigd aan de hand van de goedgekeurde technische documenten. |
| 2. Bevries en keur het programmeringsafbeelding goed |
Finaliseer het gegevensformaat, bytevolgorde, adressen, serienummers, kalibratiewaarden, sleutels, checksums en gereserveerde velden. Plaats de programmeringsafbeelding onder versiebeheer. |
De programmeringsafbeelding is beoordeeld, getest en formeel goedgekeurd voor productie. |
| 3. Valideer de stroom, gereedschap, lege toestand en fysieke opstelling |
Bevestig programmeursupport, softwareversie, stabiele voedingsspanning, veilige verbindingen, ESD-controles en de lege status van alle doelgebieden. |
De opstelling doorstaat alle pre-programmeer controles zonder waarschuwingen of mismatches. |
| 4. Programmeer alleen de goedgekeurde adressen |
Schrijf alleen naar de locaties die in de goedgekeurde afbeelding zijn gedefinieerd. Stop onmiddellijk als het gereedschap een spanning, communicatie-, adres- of apparaatafwijking meldt. |
De programmeur voltooit de schrijfoperatie zonder onverwachte resultaten. |
| 5. Lees het volledige apparaat terug en test het |
Lees het volledige geprogrammeerde gebied en vergelijk het met de goedgekeurde afbeelding met behulp van directe vergelijking, CRC, checksum of hash. Herstart het apparaat en test elke functie die door de OTP-waarden wordt beïnvloed. |
De teruglezen komt overeen met de brongegevens en het volledige apparaat doorstaat de functionele tests. |
| 6. Pas permanente bescherming toe en sla traceerbaarheidrecords op |
Stel blokvergrendelingen, leesbescherming, veilige opstartcontroles en debugbeperkingen alleen in na verificatie. Leg het apparaat-ID, de versie van de programmeringsafbeelding, de datum, de operator, de programmeur, de softwareversie, het testresultaat en de beschermingsstatus vast. |
Permanente bescherming is bevestigd en het volledige productie-record is opgeslagen. |
Opmerking: Apparaten die eFuse-coderingsschema's, rij-niveau schrijfacties, ECC of batchprogrammering gebruiken, kunnen aanvullende beperkingen opleggen. Een bit dat leeg lijkt, kan mogelijk niet onafhankelijk programmeerbaar blijven nadat een ander veld in dezelfde coderingseenheid is geschreven.
OTP-geheugen kan de apparaatsbeveiliging ondersteunen door belangrijke vertrouwenswaarden na programmering vast te houden. De bescherming is echter afhankelijk van het chipontwerp, toegangscontroles, firmware en fabricageproces.
Wat OTP Kan Beschermen
OTP kan vertrouwde waarden opslaan zoals veilige opstartinstellingen, openbaar\-sleutelhazards, firmwarebeveiligingsversies, apparaatgegevens en debugbedieningsbits. Schrijflocks kunnen latere wijzigingen voorkomen, terwijl leesbeperkingen de toegang via software, programmeurs of debugtools kunnen beperken. Deze functies stellen OTP in staat een hardware-root van vertrouwen te ondersteunen.
Wat OTP Niet Kan Voorkomen
OTP stopt niet elke aanval. Fysiek inproberen, chipinspectie, foutinjectie, zij-kanaalanalyse, softwarefouten of zwakke sleutelvoorzieningen kunnen nog steeds beschermde gegevens blootstellen of omzeilen. Een aanvaller kan zich richten op de circuits die OTP-waarden lezen of gebruiken in plaats van het geheugen zelf te veranderen.
OTP moet niet worden beschreven als manipulatiebestendig. Sterke bescherming vereist ook veilige opstart, gecontroleerde provisioning, veilige firmware, beschermde cryptografische hardware en beperkte debugtoegang.
Wanneer een Veilig Element Geschikter Is
Een veilig element is geschikter wanneer privésleutels geïsoleerd moeten blijven van de hoofdprocessor of wanneer sterkere bescherming tegen fysieke, foutinjectie- en zij-kanaalanvallen vereist is. Veilige elementen bevatten vaak beschermde sleutels, cryptografische functies, manipulatie-detectie en gecontroleerd sleutelmagement.
OTP is meestal voldoende voor vaste vertrouwensankers, configuratiecontroles en basisapparaatsidentiteit. Een veilig element is beter voor waardevolle inloggegevens, betaalsystemen, digitale identiteit en sterke apparaatsauthenticatie.
| Probleem |
Waarschijnlijk Oorzaak |
Aanbevolen Actie |
| Verkeerd apparaat, revisie of adres |
Het geselecteerde onderdeel, chiprevisie, programmeerprofiel of doeladres komt niet overeen met het werkelijke apparaat |
Stop met programmeren en verifieer het gedetecteerde apparaat-ID, het volledige onderdeelnummer, de revisie en de officiële OTP-geheugenkaart |
| Onjuiste schrijf eenheid of uitlijning |
De datasize of het adres komt niet overeen met de vereiste bit, woord, rij, blok of coderingseenheid |
Corrigeer de afbeelding lay-out en uitlijning volgens de gedocumenteerde programmeer granulariteit |
| Onjuiste lege toestand of coderingveronderstelling |
De software verwacht de verkeerde lege waarde, of een ander veld in dezelfde gecodeerde eenheid heeft de resterende bits al beïnvloed |
Lees de volledige coderingseenheid, bevestig het gedocumenteerde lege patroon en controleer of de resterende locaties nog steeds onafhankelijk programmeerbaar zijn |
| Onstabiele stroom of onderbroken programmering |
Spanningsval, reset, slecht contact, communicatieverlies of elektrische ruis heeft het schrijven gestopt |
Controleer de voeding, connectors, decoupling, gereedschapslogboeken en communicatiepad voordat u een ander apparaat gebruikt |
| Lezen mismatch of gedeeltelijke programmering |
Slechts een deel van de afbeelding is geschreven, of het resultaat verschilt vanwege bytevolgorde, timing, spanning, breedte of adresfouten |
Vergelijk de volledige teruglezing met de goedgekeurde afbeelding en controleer alle programmeerinstellingen voordat u verdergaat |
| Lock- of debugcontrole te vroeg toegepast |
Schrijfbescherming, leesbescherming, JTAG, SWD of een andere permanente controle was ingeschakeld vóór de eindtest |
Controleer of er een goedgekeurd herstelpad is. Als dat niet het geval is, moet het apparaat mogelijk worden vervangen |
| Onjuiste secure-boot gegevens of sleutelhash |
De geprogrammeerde sleutelhash, handtekeningregel, opstartbeleid of beveiligingsstatus komt niet overeen met de goedgekeurde firmware |
Vergelijk de opgeslagen waarden met de goedgekeurde sleutelketen en opstartafbeelding. Pas geen extra vergrendelingen toe totdat de oorzaak is bevestigd |
| Ontbrekende programmerings- en traceerbaarheidrecords |
De apparaat-ID, afbeeldingsversie, toolversie, operator, verificatieresultaat of beschermingsstatus is niet vastgelegd |
Bouw het beschikbare record opnieuw op en vereis automatische traceerbaarheidregistratie voor alle latere eenheden |
OVER ONS
Klanttevredenheid elke keer weer. Wederzijds vertrouwen en gemeenschappelijke belangen.
Stappenmotor Gids: Hoe Het Werkt, Types, Maatwerk en Controle
2026-07-28
Analoog Front-End Ontwerp: Componenten, ADC Interface, Ruis en Testen
2026-07-26
Beschadiging kan het gevolg zijn van extreme temperatuur, straling, elektrische overbelasting, defecte cellen of beschadigde detectiecircuits. Checksums, pariteit en ECC kunnen helpen om ongeldige gegevens te detecteren.
Leesnelheid hangt af van de apparaatarchitectuur. Sommige processors kopiëren OTP-waarden naar schaduwregisters of RAM tijdens de opstart zodat normale werking sneller lokale toegang kan gebruiken.
Firmware moet een CRC, checksum, bestandsversie of geldigheidsmarker controleren voordat het record wordt gebruikt. Een mislukte controle moet veilige standaardinstellingen, beperkte werking of een gecontroleerde foutstatus activeren.
Meerdere records kunnen worden opgeslagen in vaste velden of opeenvolgende slots. Elke record moet een versienummer, datalengte, geldigheidsmarker en integriteitscontrole bevatten.
Er kunnen geen extra waarden worden geschreven nadat alle bruikbare cellen of slots zijn verbruikt. Het ontwerp moet dan een ander geheugengebied, een firmware-oplossing of een vervangend apparaat gebruiken.
Retentie hangt af van celtechnologie, fabricagekwaliteit, temperatuur, elektrische stress, stralingsexposure en de kwalificatiegrenzen die door de fabrikant zijn opgegeven.
Gereserveerde lege blokken kunnen latere productrevisies of nieuwe records ondersteunen. Hun grootte, uitlijning en vergrendelgedrag moeten worden gepland vóór de eerste productie-release.
OTP-emulatie maakt gebruik van herschrijfbaar geheugen met software- of hardwarecontroles die latere wijzigingen voorkomen. Het kan de ontwikkeling vereenvoudigen, maar biedt mogelijk niet dezelfde permanentie als fysieke OTP-cellen.
280369E-mail: Info@ariat-tech.comHK TEL: +852 30501966Adres: Kamer 2703 27F Ho King Comm Center 2-16,
Fa Yuen St MongKok Kowloon, Hongkong.