EEPROM: усё, што вам трэба ведаць пра гэтую памяць

EEPROM

Калі вы стваральнік і робіце некалькі самаробных праектаў, у якіх вам трэба працаваць з памяццю, вы напэўна ведаеце, як працуюць розныя ўспаміны, якія інтэгруе Arduino, напрыклад, флэш-памяць (энерганезалежная, дзе захоўваюцца эскіз і загрузнік), SRAM (хуткая і зменлівая памяць, дзе праграмныя зменныя застаюцца падчас апрацоўкі), і EEPROM (энерганезалежны і можа выкарыстоўвацца для захоўвання інфармацыі аб перазагрузцы).

Ну, акрамя EEPROM, які ўваходзіць у Arduino, вы можаце выкарыстоўваць і знешнія мікрасхемы гэты від памяціТакі як яшчэ адзін кампанент. Іх не складана зразумець, а таксама ўзаемадзейнічаць з імі, каб атрымаць доступ (запіс і чытанне) альбо абнаўленне захоўванай інфармацыі. Тут вы знойдзеце ўсё, што вам трэба ведаць, каб пачаць працаваць з гэтымі тыпамі ўспамінаў ...

Што такое EEPROM?

STMicroelectronics EEPROM

STMicroelectronics EEPROM

La EEPROM (электрычна сціраемая праграмуемая памяць толькі для чырвонага колеру) Гэта тып памяці ПЗУ, гэта значыць энерганезалежнай памяці, у якой дадзеныя будуць захоўвацца пастаянна, нават калі электрасілкаванне адключана. Гэта ставіць іх на другі бок аператыўнай памяці (аператыўная памяць), якая губляе ўсе свае дадзеныя, калі не працуе.

У выпадку з EEPROM гэта не такая памяць, як ПЗУ, у якую запісваюцца дадзеныя, і яны больш не могуць быць зменены. EEPROM, як успышка, прызнае, што быў зменены па меры неабходнасці. Гэта значыць, некаторыя дадзеныя могуць захоўвацца і сцірацца для захоўвання розных.

На самай справе, як паказваюць яго абрэвіятуры, гэта а памяць, якая электрычна сціраецца (электрычна сціраецца) для перапраграмавання. Гэта адрозніваецца ад іншых тыпаў ПЗУ, якія таксама можна сціраць, як EPROM, але ў гэтым выпадку электрычнасць не выкарыстоўваецца для сцірання вочак памяці, замест гэтага яны мелі кварцавае "акно" на мікрасхеме, каб мець магчымасць праецыраваць УФ-святло. які ён быў сцёрты.

Гэта характарыстыка EEPROM гэта зрабіла ім некалькі нязручна, таму што іх трэба было праецыраваць, каб сцерці іх. І, што самае страшнае, яны могуць быць выпадкова сцёртыя пры ўздзеянні гэтага віду выпраменьвання. У EEPROM можна рабіць гэта праз напружанне больш зручным і бяспечным спосабам.

ўнутраная структура

Схема EEPROM

Крыніца: Researchgate.net

Для таго каб EEPROM працаваў, патрэбныя вельмі пэўныя ячэйкі памяці. Яны пабудаваны з выкарыстаннем транзістараў тыпу MOS, але маюць плаваючы затвор у параўнанні з традыцыйнымі транзістарамі MOSFET. Гэтыя новыя транзістары прытрымліваюцца структуры, вядомай як САМАС, і яго нармальны стан адключаецца, і выхад заўсёды будзе мець лагічны 1.

Гэтыя ячэйкі EEPROM можна чытаць неабмежаваную колькасць разоў, але гэта абмежавана колькасць разоў, якія яны могуць быць сцёртыя і перапраграмаваны, як гэта адбываецца з многімі іншымі. Гэта таксама здараецца з флэшкамі, таму так шмат размоў ідзе пра даўгавечнасць цвёрдацельных назапашвальнікаў SSD, дыскаводаў і г.д.

У выпадку з SAMOS гэты ліміт знаходзіцца паміж 100.000 1.000.000 і XNUMX XNUMX разоў. Пасля гэтага яны не атрымаюцца. Дарэчы, некаторыя структуры, створаныя старым знаёмым, адным з вялікіх: доктарам Фуджыо Масуокай з Toshiba (1984), які таксама стварыў іншыя важныя ўспаміны і паўправадніковыя структуры ... Аднак першы чып, запушчаны на рынак Intel быў з 1988 года, альбо EEPROM тыпу NOR.

Акрамя таго, вы павінны ведаць, што гэты тып памяці звычайна звязаны з працэсарамі альбо кантролерамі аўтобус з такімі пратаколамі, як SPI, I2Cі г.д. У выпадку MCU (мікракантролераў) ён звычайна ўбудоўваецца ўнутр, як і ў некаторыя DSP, для дасягнення большай хуткасці.

Як відаць на малюнку вышэй, Транзістары SAMOS якія ўтвараюць клеткі памяці, у гэтым выпадку згрупаваны па парах. Адна з ліній, прымацаваная да засаўкі некаторых транзістараў, выступае ў якасці лініі выбару для пазначэння або сігналізацыі гэтай лініі для доступу (чытання і запісу), а другая - тая, якая захоўвае біт інфармацыі (0 ці 1).

Транзістары выраўнаваны так, каб утварыць неабходную даўжыню слоў (4-біт, 8-біт, 16-біт, ...) і столькі слоў, колькі Capacidad вы хочаце мець EEPROM (напрыклад: можа быць 64-бітная даўжыня слова і з 16 радкамі = 1024 біта, гэта значыць 1 кб).

Як працуе EERPOM?

Як бачыце збоку, для выканання розныя задачы, напружанне варот, крыніцы і каналізацыі павінна быць канкрэтным:

  • Дзверы на 20v і зліў на 20v = праграмаванне (запіс) ячэйкі памяці для захоўвання патрэбнага біта.
  • Дзверы на 0v і зліў на 20v = ачысціць захаваны біт, каб яго можна было перапраграмаваць з іншым значэннем.
  • Шлюз на 5v і зліў на 5v = прачытаць захаваны біт. Паколькі напружанне засаўкі ніжэй, чым напружанне запісу, захаванае значэнне не будзе зменена. Тое ж самае адбываецца са зліўным напругай, калі ён ніжэйшы, захаваны біт не выдаляецца.

Выснова, EEPROM выкарыстоўваюць некалькі напружання "Высокая" для сцірання і запісу, пры выкарыстанні больш нізкіх напружанняў для чытання ...

Купіце EEPROM і працуйце з ім

STMicroelectronics, французскі вытворца мікраэлектронікі, з'яўляецца нумарам адзін у гэтым тыпе мікрасхем EEPROM, хоць існуе мноства іншых вытворцаў, такіх як Microchip. Гэтыя чыпсы звычайна досыць танныя.

Калі вы вырашыце выкарыстоўвайце адзін з гэтых чыпаў, вы павінны ўбачыць вытворцу і мадэль і пашукаць іх дадзеныя каб убачыць усе рэкамендацыі вытворцы, бо яны могуць вар'іравацца ў залежнасці. Напрыклад, яны ўкажуць напружанне, з якім гэта працуе, распіноўкаі г.д. Такім чынам, вы можаце правільна наладзіць свой праект.

У залежнасці ад памеру і мадэлі, яго можа быць больш ці менш хвоі. Але каб даць вам уяўленне, тыповы мікрасхема EEPROM 24LC512 можа складацца з:

  • Штыфты 1 (A0), 2 (A1) і 3 (A3), якія выкарыстоўваюцца ў канфігурацыі, з'яўляюцца штыфтамі выбару.
  • Штыфт 4 (Vss / GND) злучаны з зямлёй.
  • Штыфт 5 (SDA) для паслядоўных дадзеных для сувязі I2C.
  • Штыфт 6 (SCL), для гадзінніка для I2C.
  • Пін 7 (WP), абарона ад запісу альбо абарона ад запісу. Калі ён падключаны да GND, запіс будзе ўключаны. Калі ён падключаецца да Vcc, ён адключаецца.
  • Штыфт 8 (Vcc), падлучаны да электрасілкавання.

Што ж тычыцца Тэхнічныя характарыстыкі гэтага чыпа:

  • 512K (64 × 8)
  • 128-байтны буфер для запісу
  • Рабочае напружанне: ад 1.8 да 5.5 В.
  • Ток счытвання: 40uA
  • Шына сувязі: I2C
  • Цыкл запісу: 5 мс
  • Сумяшчальнасць з гадзінамі: 100-400 кГц
  • Трываласць: 10.000.000 XNUMX XNUMX цыклаў
  • Можна каскадна да 8 прылад
  • Упакоўка: 8-кантактны DIP, SOIJ, SOIC і TSSOP.

Dónde Comprar

да купляйце чыпы EEPROM, вы можаце зірнуць на гэтыя рэкамендацыі:

Выкарыстанне Arduino EEPROM

Здымак экрана Arduino IDE

Калі вы хочаце пачаць працаваць з EEPROM, вы таксама можаце паспрабаваць той, які ёсць на вашай плаце Arduino. Яго можна запраграмаваць простым спосабам, каб зразумець на лагічным і праграмным узроўні, як ён можа працаваць.

Прыклад захавання зменнай

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

Прыклад чытання дадзеных з 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()
{
}

Прыклад абнаўлення значэнняў, перанос

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

Больш інфармацыі - Бясплатны курс Arduino


Змест артыкула адпавядае нашым прынцыпам рэдакцыйная этыка. Каб паведаміць пра памылку, націсніце тут.

Будзьце першым, каб каментаваць

Пакіньце свой каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаныя *

*

*

  1. Адказны за дадзеныя: Мігель Анхель Гатон
  2. Прызначэнне дадзеных: Кантроль спаму, кіраванне каментарыямі.
  3. Легітымнасць: ваша згода
  4. Перадача дадзеных: Дадзеныя не будуць перададзены трэцім асобам, за выключэннем юрыдычных абавязкаў.
  5. Захоўванне дадзеных: База дадзеных, размешчаная Occentus Networks (ЕС)
  6. Правы: у любы час вы можаце абмежаваць, аднавіць і выдаліць сваю інфармацыю.