EEPROM: gjithçka që duhet të dini rreth kësaj kujtese

EEPROM

Nëse jeni krijues dhe po bëni disa projekte DIY në të cilat duhet të punoni me kujtesën, me siguri tashmë e dini se si funksionojnë kujtimet e ndryshme që integron Arduino, të tilla si flash (jo të paqëndrueshme ku ruhen skica dhe bootloader), SRAM (një memorje e shpejtë dhe e paqëndrueshme ku variablat e programit mbeten gjatë përpunimit), dhe EEPROM (jo e paqëndrueshme dhe mund të përdoret për të ruajtur informacionin e rindezjes).

Epo, përveç EEPROM-it të përfshirë në Arduino, mund të përdorni edhe patate të skuqura të jashtme të kjo lloj kujteseSi edhe një përbërës. Ato nuk janë të komplikuara për t'u kuptuar, as për të bashkëvepruar me ta për të gjeneruar qasje (shkrim dhe lexim) ose azhurnime të informacionit të ruajtur. Këtu do të gjeni gjithçka që duhet të dini për të filluar punën me këto lloj kujtimesh ...

Çfarë është EEPROM?

STMikroelektronikë EEPROM

STMikroelektronikë EEPROM

La EEPROM (Kujtesë e programueshme vetëm e kuqe e programueshme që fshihet në mënyrë elektrike) Isshtë një lloj i kujtesës ROM, domethënë memorie jo e paqëndrueshme në të cilën të dhënat do të ruhen përgjithmonë, edhe nëse furnizimi me energji është hequr. Kjo i vendos ata në anën tjetër të RAM-ve (Kujtesa e Random Access Access), të cilat humbin të gjitha të dhënat e tyre kur nuk ushqehen.

Në rastin e EEPROM, nuk është një memorie si ROM, në të cilën regjistrohen të dhëna dhe nuk mund të ndryshohen më. EEPROM, si blici, pranon se është ndryshuar ashtu si duhej. Me fjalë të tjera, disa të dhëna mund të ruhen dhe të fshihen për të ruajtur të ndryshme.

Në fakt, siç tregojnë inicialet e saj, ajo është një memorie elektrike që fshihet (fshihet elektrikisht) për riprogramim. Kjo ndryshon nga llojet e tjera të ROM, të cilat gjithashtu fshihen si EPROM, por në këtë rast energjia elektrike nuk përdoret për të fshirë qelizat e kujtesës, përkundrazi ata kishin një "dritare" kuarci në çip për të qenë në gjendje të projektonin një dritë UV. të cilën ajo u fshi.

Ajo karakteristikë e EEPROM i bëri disi të pakëndshëm, duke pasur nevojë të projektonin ato rrezet për t'i fshirë ato. Dhe, më e keqja nga të gjitha, ato mund të fshihen aksidentalisht nëse ekspozohen ndaj këtij lloji të rrezatimit. Në EEPROM, lejohet të bëhet përmes tensioneve, në një mënyrë më të rehatshme dhe të sigurt.

Struktura e brendshme

Diagrami EEPROM

Burimi: Researchgate.net

Në mënyrë që EEPROM të funksionojë, nevojiten shumë qeliza të kujtesës. Ato janë ndërtuar duke përdorur tranzistorë të tipit MOS, por kanë një portë lundruese krahasuar me MOSFET tradicionale. Këta tranzistorë të rinj ndjekin një strukturë të njohur si Samos, dhe gjendja e tij normale është e prerë dhe prodhimi gjithmonë do të sigurojë një logjik 1.

Këto qeliza EEPROM mund të lexohen një numër të pakufizuar herë, por është e kufizuar në numri i herëve që mund të fshihen dhe riprogramohen, siç u ndodh shumë të tjerëve. Kjo gjithashtu ndodh të flash, për këtë arsye është folur aq shumë për qëndrueshmërinë e disqeve të forta SSD, disqeve të stilolapsave, etj.

Në rastin e SAMOS, ky kufi është midis 100.000 dhe 1.000.000 herë. Pas kësaj, ata do të dështojnë. Nga rruga, disa struktura që u krijuan nga një i njohur i vjetër, një nga të mëdhenjtë: Dr. Fujio Masuoka nga Toshiba (1984), i cili gjithashtu ka krijuar kujtime të tjera të rëndësishme dhe struktura gjysmëpërçuese ... Sidoqoftë, çipi i parë u nis në tregu ishte i Intelit nga viti 1988, një lloj EEPROM NOR.

Për më tepër, duhet të dini se ky lloj i kujtesës zakonisht lidhet me CPU-të ose kontrolluesit përmes autobus me protokolle si SPI, I2C, etj Në rastin e MCU (mikrokontrolluesve) zakonisht është i integruar brenda, si në disa DSP, për të arritur një shpejtësi më të madhe.

Siç mund të shihet në imazhin e mësipërm, Transistorë SAMOS që formojnë qelizat e kujtesës, grupohen në atë rast në çifte. Njëra nga linjat e bashkangjitura në portat e disa transistorëve vepron si një vijë zgjedhjeje, për të shënuar ose sinjalizuar atë vijë për qasje (lexim dhe shkrim), dhe tjetra do të jetë ajo që ruan bitin e informacionit (0 ose 1).

Transistorët janë drejtuar për të formuar gjatësitë e kërkuara të fjalëve (4-bit, 8-bit, 16-bit, ...) dhe aq fjalë sa kapacitet ju dëshironi të keni EEPROM (p.sh .: mund të ketë gjatësi fjalësh 64 bit dhe me 16 rreshta = 1024 bit, domethënë 1 KB).

Si funksionon një EERPOM?

Siç mund ta shihni anash, për të kryer detyrat e ndryshme, voltazhi i portës, burimit dhe kullimit tuaj duhet të jetë konkret:

  • Dera në 20v dhe Kulloni në 20v = programimi (shkrimi) i qelizës së kujtesës për të ruajtur bitin e dëshiruar.
  • Dera në 0v dhe Kulloni në 20v = pastroni bitin e ruajtur në mënyrë që të mund të ri-programohet me një vlerë tjetër.
  • Porta në 5v dhe Drain në 5v = lexoni bitin e ruajtur. Meqenëse voltazhi i portës është më i ulët se ai i shkrimit, vlera e ruajtur nuk do të ndryshohet. E njëjta gjë ndodh me tensionin e kullimit, duke qenë më i ulët, biti i ruajtur nuk do të fshihet.

Përfundim, EEPROM-të përdorin disa tensionet "E lartë" për fshirjen dhe shkrimin, ndërsa përdorni tensione më të ulëta për leximin ...

Blini EEPROM dhe punoni me të

STMicroelectronics, prodhuesi francez i mikroelektronikës, është numri një në këtë lloj patate të skuqura EEPROM, megjithëse ka shumë prodhues të tjerë, të tillë si Mikroçipi. Këto patate të skuqura zakonisht janë mjaft të lira.

Nëse vendosni të përdorni një nga këto patate të skuqura, ju duhet të shihni prodhuesin dhe modelin dhe të kërkoni për të Datasheet për të parë të gjitha rekomandimet e prodhuesit, pasi ato mund të ndryshojnë nga njëra në tjetrën. Për shembull, ata do të specifikojnë tensionet me të cilat punon, pinout, etj Kështu që ju mund të konfiguroni projektin tuaj siç duhet.

Në varësi të madhësisë dhe modelit, mund të ketë më shumë ose më pak pisha. Por për t'ju dhënë një ide, një çip tipik 24LC512 EEPROM IC mund të përbëhet nga:

  • Kunjat 1 (A0), 2 (A1) dhe 3 (A3) të përdorura në konfigurim janë kunjat e zgjedhjes.
  • Pin 4 (Vss / GND) i lidhur me tokën.
  • Pin 5 (SDA), për të dhënat serike për komunikimin I2C.
  • Pin 6 (SCL), për orën I2C.
  • Pin 7 (WP), mbrojtje shkrimi ose mbrojtje shkrimi. Nëse është e lidhur me GND, shkrimi do të mundësohet. Nëse lidhet me Vcc është çaktivizuar.
  • Pin 8 (Vcc), i lidhur me energjinë.

Si Specifikimet teknike të këtij çipi:

  • 512K (64 × 8)
  • Mbrojtës 128 bajtësh për shkrim
  • Tensioni operacional: 1.8v në 5.5v
  • Leximi i rrymës: 40uA
  • Autobusi i komunikimit: I2C
  • Cikli i shkrimit: 5ms
  • Përputhshmëria e orës: 100-400Khz
  • Qëndrueshmëria: 10.000.000 cikle
  • Mund të kaskadohet deri në 8 pajisje
  • Paketimi: 8-pin DIP, SOIJ, SOIC dhe TSSOP.

Ku për të blerë

blini patate të skuqura EEPROM, ju mund të hidhni një vështrim në këto rekomandime:

Përdorimi i Arduino EEPROM

Foto nga Arduino IDE

Nëse dëshironi të filloni të punoni me EEPROM, mund të provoni edhe atë në bordin tuaj Arduino. Mund të programohet në një mënyrë të thjeshtë për të kuptuar në një nivel logjik dhe programues se si mund të funksionojë.

Shembull për të ruajtur një ndryshore

//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
}

Shembull për të lexuar të dhëna nga 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()
{
}

Shembull për të azhurnuar vlerat, planifikoni përsëri

//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
}

Më shumë informacion - Kurs falas Arduino


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.