EEPROM: alt du trenger å vite om dette minnet

EEPROM

Hvis du er produsent og gjør noen DIY-prosjekter der du må jobbe med minne, vet du sikkert allerede hvordan de forskjellige minnene som Arduino integrerer fungerer, for eksempel flash (ikke-flyktig der skissen og bootloader er lagret), SRAM (et raskt og ustabilt minne der programvariabler forblir under behandlingen), og EEPROM (ikke-flyktig og kan brukes til å lagre informasjon om omstart).

I tillegg til EEPROM som er inkludert i Arduino, kan du også bruke eksterne sjetonger av denne typen minneSom en komponent til. De er ikke kompliserte å forstå, og heller ikke å samhandle med dem for å generere tilgang (skriving og lesing) eller oppdateringer av den lagrede informasjonen. Her finner du alt du trenger å vite for å begynne å jobbe med denne typen minner ...

Hva er EEPROM?

STMicroelectronics EEPROM

STMicroelectronics EEPROM

La EEPROM (elektrisk slettbart programmerbart rødt minne) Det er en type ROM-minne, det vil si ikke-flyktig minne der data lagres permanent, selv om strømforsyningen blir fjernet. Det setter dem på den andre siden av RAM (Random Access Memory), som mister all data når den ikke får strøm.

Når det gjelder EEPROM, er det ikke et minne som ROM, der data blir registrert og ikke lenger kan endres. EEPROM, som flash, innrømmer å være endret etter behov. Det vil si at noen data kan lagres og slettes for å lagre forskjellige.

Som akronymer indikerer, er det faktisk en elektrisk slettbart minne (elektrisk slettbar) for omprogrammering. Dette skiller seg fra andre typer ROM, som også kan slettes som EPROM, men i dette tilfellet brukes ikke strøm til å slette minnecellene, men i stedet hadde de et kvarts "vindu" på brikken for å kunne projisere et UV-lys. som den ble slettet.

Den egenskapen til EPROM det gjorde dem noe ubehagelige, og måtte projisere strålene for å slette dem. Og verst av alt, de kan ved et uhell bli slettet hvis de utsettes for denne typen stråling. I EEPROM er det lov å gjøre det gjennom spenninger, på en mer komfortabel og trygg måte.

Intern struktur

EEPROM-diagram

Kilde: Researchgate.net

For at EEPROM skal fungere, er det behov for veldig spesielle minneceller. De er bygget ved hjelp av MOS-type transistorer, men har en flytende port sammenlignet med tradisjonelle MOSFET. Disse nye transistorer følger en struktur kjent som SAMOS, og den normale tilstanden er avbrutt, og utgangen vil alltid gi en logisk 1.

Disse EEPROM-cellene kan leses ubegrenset antall ganger, men det er begrenset i antall ganger de kan slettes og omprogrammeres, som det skjer med mange andre. Dette skjer også med flash, og det er derfor det har vært så mye snakk om holdbarheten til SSD-harddisker, pennstasjoner osv.

For SAMOS er denne grensen mellom 100.000 og 1.000.000 ganger. Etter det vil de mislykkes. Forresten, noen strukturer som ble skapt av en gammel bekjent, en av de store: Dr. Fujio Masuoka fra Toshiba (1984), som også har skapt andre viktige minner og halvlederstrukturer ... Imidlertid lanserte den første brikken på markedet var Intels fra 1988, en NOR-type EEPROM.

I tillegg må du vite at denne typen minne vanligvis er koblet til CPUer eller kontrollere gjennom buss med protokoller som SPI, I2C, etc. Når det gjelder MCU-er (mikrokontrollere) er det vanligvis integrert inne, som i noen DSP-er, for å oppnå større hastighet.

Som det kan sees på bildet over, er SAMOS transistorer som danner minnecellene, grupperes i så fall parvis. En av linjene festet til portene til noen transistorer fungerer som en valgfri linje, for å markere eller signalisere den linjen for tilgang (lesing og skriving), og den andre vil være den som lagrer informasjonsbiten (0 eller 1).

Transistorene er justert for å danne de nødvendige ordlengdene (4-bit, 8-bit, 16-bit, ...) og så mange ord som kapasitet du vil ha EEPROM (f.eks: det kan være 64-biters ordlengder og med 16 linjer = 1024 bits, det vil si 1 kb).

Hvordan fungerer en EERPOM?

Som du kan se på siden, for å utføre de forskjellige oppgavene, må spenningen til porten, kilden og avløpet være konkret:

  • Dør ved 20v og avløp ved 20v = programmering (skriving) av minnecellen for å lagre ønsket bit.
  • Dør ved 0v og avløp ved 20v = tøm den lagrede biten slik at den kan omprogrammeres med en annen verdi.
  • Port ved 5v og drenering ved 5v = les den lagrede biten. Siden portens spenning er lavere enn for skrivingen, vil den lagrede verdien ikke bli endret. Det samme skjer med avløpsspenningen, hvis den er lavere, blir den lagrede biten ikke slettet.

Konklusjon, EEPROM bruker noen få spenninger "High" for sletting og skriving, mens du bruker lavere spenninger for å lese ...

Kjøp EEPROM og jobb med den

STMicroelectronics, den franske produsenten av mikroelektronikk, er nummer én i denne typen EEPROM-sjetonger, selv om det er mange andre produsenter, for eksempel Microchip. Disse sjetongene er vanligvis ganske billige.

Hvis du bestemmer deg for å gjøre det bruk en av disse sjetongene, bør du se produsenten og modellen og se etter dataarket for å se alle produsentens anbefalinger, siden de kan variere fra en til en annen. For eksempel vil de spesifisere spenningene den fungerer med, pinout, etc. Så du kan konfigurere prosjektet riktig.

Avhengig av størrelse og modell, kan den ha mer eller mindre pines. Men for å gi deg en ide, kan en typisk 24LC512 EEPROM IC-brikke bestå av:

  • Pins 1 (A0), 2 (A1) og 3 (A3) som brukes i konfigurasjonen er valgpinnene.
  • Pin 4 (Vss / GND) koblet til bakken.
  • Pin 5 (SDA), for seriell data for I2C-kommunikasjon.
  • Pin 6 (SCL), for klokken for I2C.
  • Pin 7 (WP), skrivebeskyttelse eller skrivebeskyttelse. Hvis den er koblet til GND, blir skriving aktivert. Hvis den kobles til Vcc, er den deaktivert.
  • Pin 8 (Vcc), koblet til strøm.

Som Tekniske spesifikasjoner av denne brikken:

  • 512K (64 × 8)
  • 128-byte buffer for skriving
  • Driftsspenning: 1.8 v til 5.5 v
  • Lesestrøm: 40uA
  • Kommunikasjonsbuss: I2C
  • Skrivesyklus: 5ms
  • Klokkekompatibilitet: 100-400 KHz
  • Holdbarhet: 10.000.000 sykluser
  • Kan kaskades opptil 8 enheter
  • Emballasje: 8-pinners DIP, SOIJ, SOIC og TSSOP.

Hvor å kjøpe

Til kjøp EEPROM-sjetonger, kan du ta en titt på disse anbefalingene:

Bruke Arduino EEPROM

Skjermbilde av Arduino IDE

Hvis du vil begynne å jobbe med EEPROM, kan du også prøve den på brettet ditt Arduino. Det kan programmeres på en enkel måte for å forstå på et logisk og programmeringsnivå hvordan det kan fungere.

Eksempel for å lagre en variabel

//Almacenar un valor en la EEPROM
#include <EEPROM.h>
 
float sensorValue;
int eepromaddress = 0;
 
//Función para simular lectura de un sensor o pin
float ReadSensor()
{
  return 10.0f;
}
 
void setup()
{
}
 
void loop()
{
  sensorValue = ReadSensor(); //Lectura simulada del valor
  EEPROM.put( eepromaddress, sensorValue );  //Escritura del valor en la EEPROM
  eepromaddress += sizeof(float);  //Apuntar a la siguiente posición a escribir
  if(eepromaddress >= EEPROM.length()) eepromaddress = 0;  //Comprueba que no existe desbordamiento 
 
  delay(30000); //Espera 30s
}

Eksempel på å lese data fra EEPROM

//Leer una variable de coma flotante
#include <EEPROM.h>
 
struct MyStruct{
  float field1;
  byte field2;
  char name[10];
};
 
void setup(){
  
  float f;
  int eepromaddress = 0; //La lectura comienza desde la dirección 0 de la EEPROM    
  EEPROM.get( eepromaddress, f );
  Serial.print( "Dato leído: " );
  Serial.println( f, 3 );  
 
  eepromaddress += sizeof(float);
}
 
void loop()
{
}

Eksempel på oppdatering av verdier, omplanlegging

//Actualizar valor de la EEPROM escribiendo el dato entrante por la A0
#include <EEPROM.h>
 
int eepromaddress = 0;
 
void setup()
{
}
 
void loop()
{
   int val = analogRead(0) / 4;
   EEPROM.update(eepromaddress, val);
  
  eepromaddress += sizeof(int);
  if(address == EEPROM.length()) eepromaddress = 0;
 
  delay(10000);  //Espera de 10 segundos
}

Mer informasjon - Gratis Arduino-kurs


Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.