Калі вы стваральнік і робіце некалькі самаробных праектаў, у якіх вам трэба працаваць з памяццю, вы напэўна ведаеце, як працуюць розныя ўспаміны, якія інтэгруе Arduino, напрыклад, флэш-памяць (энерганезалежная, дзе захоўваюцца эскіз і загрузнік), SRAM (хуткая і зменлівая памяць, дзе праграмныя зменныя застаюцца падчас апрацоўкі), і EEPROM (энерганезалежны і можа выкарыстоўвацца для захоўвання інфармацыі аб перазагрузцы).
Ну, акрамя EEPROM, які ўваходзіць у Arduino, вы можаце выкарыстоўваць і знешнія мікрасхемы гэты від памяціТакі як яшчэ адзін кампанент. Іх не складана зразумець, а таксама ўзаемадзейнічаць з імі, каб атрымаць доступ (запіс і чытанне) альбо абнаўленне захоўванай інфармацыі. Тут вы знойдзеце ўсё, што вам трэба ведаць, каб пачаць працаваць з гэтымі тыпамі ўспамінаў ...
Індэкс
Што такое EEPROM?
STMicroelectronics EEPROM
La EEPROM (электрычна сціраемая праграмуемая памяць толькі для чырвонага колеру) Гэта тып памяці ПЗУ, гэта значыць энерганезалежнай памяці, у якой дадзеныя будуць захоўвацца пастаянна, нават калі электрасілкаванне адключана. Гэта ставіць іх на другі бок аператыўнай памяці (аператыўная памяць), якая губляе ўсе свае дадзеныя, калі не працуе.
У выпадку з EEPROM гэта не такая памяць, як ПЗУ, у якую запісваюцца дадзеныя, і яны больш не могуць быць зменены. EEPROM, як успышка, прызнае, што быў зменены па меры неабходнасці. Гэта значыць, некаторыя дадзеныя могуць захоўвацца і сцірацца для захоўвання розных.
На самай справе, як паказваюць яго абрэвіятуры, гэта а памяць, якая электрычна сціраецца (электрычна сціраецца) для перапраграмавання. Гэта адрозніваецца ад іншых тыпаў ПЗУ, якія таксама можна сціраць, як EPROM, але ў гэтым выпадку электрычнасць не выкарыстоўваецца для сцірання вочак памяці, замест гэтага яны мелі кварцавае "акно" на мікрасхеме, каб мець магчымасць праецыраваць УФ-святло. які ён быў сцёрты.
Гэта характарыстыка 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, вы можаце зірнуць на гэтыя рэкамендацыі:
- 95040Kb ST 4 паслядоўны SPI
- 28Kb паралельны ST M64C64C
- ST M24C02C паслядоўны I2C 2Kb
- ST M8571B6 паслядоўны I2C 1Kb
- ST 24LC256 паслядоўны I2C 256Kb
- Microchip 24LC256-i / sn serial I2C 256Kb
Выкарыстанне Arduino EEPROM
Калі вы хочаце пачаць працаваць з 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
Будзьце першым, каб каментаваць