Ak ste výrobca a robíte nejaké DIY projekty, v ktorých musíte pracovať s pamäťou, určite už viete, ako fungujú rôzne pamäte, ktoré integruje Arduino, napríklad flash (energeticky nezávislé, kde sú uložené skice a bootloader), SRAM (rýchla a nestála pamäť, kde počas spracovania zostávajú programové premenné) a EEPROM (neprchavé a možno ich použiť na ukladanie informácií o reštarte).
Okrem EEPROM zahrnutej v Arduine môžete použiť aj externé čipy tento druh pamätiAko ešte jedna zložka. Nie je komplikované ich pochopiť, ani s nimi komunikovať, aby generovali prístupy (zápis a čítanie) alebo aktualizácie uložených informácií. Tu nájdete všetko, čo potrebujete vedieť, aby ste mohli začať pracovať s týmito typmi spomienok ...
Čo je to EEPROM?
La EEPROM (elektricky vymazateľná programovateľná pamäť iba s červenou farbou) Je to typ pamäte ROM, to znamená energeticky nezávislá pamäť, do ktorej sa budú dáta trvale ukladať, a to aj po odpojení napájacieho zdroja. To ich stavia na druhú stranu RAM (Random Access Memory), ktorá stratí všetky svoje dáta, keď nie je napájaná.
V prípade EEPROM nejde o pamäť ako ROM, do ktorej sa zaznamenávajú údaje a nemožno ich už meniť. EEPROM, ako flash, pripúšťa, že je zmenený podľa potreby. To znamená, že niektoré údaje možno uložiť a vymazať, aby sa do nich mohli uložiť rôzne.
V skutočnosti, ako naznačujú jeho iniciály, ide o a elektricky vymazateľná pamäť (elektricky vymazateľný) na preprogramovanie. To sa líši od iných typov ROM, ktoré sú tiež vymazateľné ako EPROM, ale v tomto prípade sa na mazanie pamäťových buniek nepoužíva elektrina, namiesto toho mali na čipe kremenné „okienko“, aby bolo možné premietať UV svetlo. S ktoré bolo vymazané.
Táto vlastnosť EPROM to im bolo trochu nepríjemné, museli premietať tie lúče, aby ich vymazali. A čo je najhoršie, mohli by sa náhodne vymazať, ak by boli vystavení tomuto typu žiarenia. V EEPROM je povolené to robiť prostredníctvom napätia, pohodlnejším a bezpečnejším spôsobom.
Vnútorná štruktúra
Aby EEPROM fungovala, sú potrebné veľmi zvláštne pamäťové bunky. Sú zostavené pomocou tranzistorov typu MOS, ale majú plávajúcu bránu v porovnaní s tradičnými MOSFET. Tieto nové tranzistory majú štruktúru známu ako SAMOSa jeho normálny stav je prerušený a výstup bude vždy poskytovať logickú 1.
Tieto bunky EEPROM je možné načítať neobmedzene niekoľkokrát, avšak ich počet je obmedzený počet opakovaní, ktoré je možné vymazať a preprogramovať, ako sa to stáva mnohým ďalším. To sa stáva aj pri flash diskoch, a preto sa toľko hovorilo o odolnosti pevných diskov SSD, diskov pera atď.
V prípade SAMOS je tento limit medzi 100.000 1.000.000 a XNUMX XNUMX XNUMX krát. Potom zlyhajú. Mimochodom, niektoré štruktúry, ktoré vytvoril starý známy, jeden z velikánov: Dr. Fujio Masuoka z firmy Toshiba (1984), ktorý vytvoril aj ďalšie dôležité pamäte a polovodičové štruktúry ... Prvý čip uvedený na trh trh bol Intel od roku 1988, EEPROM typu NOR.
Okrem toho musíte vedieť, že tento typ pamäte je zvyčajne prepojený s procesormi alebo radičmi autobus s protokolmi ako SPI, I2C, atď. V prípade MCU (mikrokontrolérov) je zvyčajne integrovaný dovnútra, ako v niektorých DSP, aby sa dosiahla vyššia rýchlosť.
Ako je vidieť na obrázku vyššie, Tranzistory SAMOS ktoré tvoria pamäťové bunky, sú v takom prípade zoskupené do párov. Jedna z liniek pripojených k bránam niektorých tranzistorov slúži ako linka voľby na označenie alebo signalizáciu tejto linky pre prístup (čítanie a zápis) a druhá bude linka, ktorá uchováva informačný bit (0 alebo 1).
Tranzistory sú zarovnané tak, aby vytvorili požadované dĺžky slov (4-bitové, 8-bitové, 16-bitové, ...) a toľko slov, koľko kapacita chcete mať EEPROM (napr .: môže existovať 64-bitová dĺžka slova a so 16 riadkami = 1024 bitov, to znamená 1 kB).
Ako funguje EERPOM?
Ako vidíte na boku, predvádzať rôzne úlohy, napätie vašej brány, zdroja a odtoku musí byť konkrétne:
- Dvere pri 20 V a odtok pri 20 V = programovanie (zápis) do pamäťovej bunky na uloženie požadovaného bitu.
- Dvere pri 0 V a odtok pri 20 V = vyčistiť uložený bit, aby ho bolo možné preprogramovať na inú hodnotu.
- Brána pri 5v a odtok pri 5v = prečítať uložený bit. Pretože hradlové napätie je nižšie ako napätie pri zápise, uložená hodnota sa nezmení. To isté sa stane s nízkym odtokovým napätím, uložený bit sa nevymaže.
Záver, EEPROM používa niekoľko napätia „Vysoká“ na mazanie a zápis, zatiaľ čo na čítanie sa používa nižšie napätie ...
Kúpte si EEPROM a pracujte s ním
STMicroelectronics, francúzsky výrobca mikroelektroniky, je v tomto type čipov EEPROM číslo jedna, aj keď existuje veľa ďalších výrobcov, napríklad Microchip. Tieto čipy sú zvyčajne dosť lacné.
Ak sa rozhodnete použite jeden z týchto čipov, mali by ste vidieť výrobcu a model a hľadať ich dátový hárok prečítať si všetky odporúčania výrobcu, pretože sa môžu líšiť od prípadu k prípadu. Napríklad určia napätia, s ktorými pracuje, pinout, atď. Môžete tak správne nakonfigurovať svoj projekt.
V závislosti od veľkosti a modelu môže mať viac alebo menej borovica. Pre predstavu, typický IC čip 24LC512 EEPROM môže pozostávať z:
- Kolíky 1 (A0), 2 (A1) a 3 (A3) použité v konfigurácii sú výberové kolíky.
- Pin 4 (Vss / GND) pripojený k zemi.
- Pin 5 (SDA), pre sériové dáta pre komunikáciu I2C.
- Pin 6 (SCL), pre hodiny I2C.
- Pin 7 (WP), ochrana proti zápisu alebo ochrana proti zápisu. Ak je pripojený k GND, zápis bude povolený. Ak sa pripája k Vcc, je deaktivované.
- Pin 8 (Vcc), pripojený k napájaniu.
Vzhľadom k tomu, Technické špecifikácie tohto čipu:
- 512K (64 8 × XNUMX XNUMX)
- 128-bajtová vyrovnávacia pamäť pre zápis
- Prevádzkové napätie: 1.8 V až 5.5 V
- Čítací prúd: 40uA
- Komunikačná zbernica: I2C
- Cyklus zápisu: 5 ms
- Kompatibilita hodín: 100-400 kHz
- Trvanlivosť: 10.000.000 XNUMX XNUMX cyklov
- Je možné kaskádovať až 8 zariadení
- Balenie: 8-pólový DIP, SOIJ, SOIC a TSSOP.
Kde kúpiť
na kúpiť čipy EEPROM, môžete sa pozrieť na tieto odporúčania:
- 95040Kb ST 4 sériové SPI
- Nenašli sa žiadne produkty.
- Nenašli sa žiadne produkty.
- Nenašli sa žiadne produkty.
- ST 24LC256 sériové I2C 256 kB
- Nenašli sa žiadne produkty.
Používanie Arduino EEPROM
Ak chcete začať pracovať s EEPROM, môžete vyskúšať aj ten na vašej doske Arduino. Môže byť naprogramovaný jednoduchým spôsobom tak, aby pochopil, na logickej a programovej úrovni, ako to môže fungovať.
Príklad na uloženie premennej
//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 }
Príklad na čítanie údajov z 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() { }
Príklad na aktualizáciu hodnôt, preplánovanie
//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 }
Viac informácií - Kurz Arduino zadarmo