EEPROM: Alles, was Sie über diesen Speicher wissen müssen

EEPROM

Wenn Sie ein Hersteller sind und einige DIY-Projekte durchführen, in denen Sie mit Speicher arbeiten müssen, wissen Sie sicherlich bereits, wie die verschiedenen Speicher, die Arduino integriert, funktionieren, wie z. B. Flash (nichtflüchtig, wo die Skizze und der Bootloader gespeichert sind). SRAM (ein schneller und flüchtiger Speicher, in dem Programmvariablen während der Verarbeitung verbleiben) und der EEPROM (Nicht flüchtig und kann zum Speichern von Neustartinformationen verwendet werden).

Nun, zusätzlich zu dem in Arduino enthaltenen EEPROM können Sie auch externe Chips von verwenden diese Art von ErinnerungAls eine weitere Komponente. Es ist nicht kompliziert, sie zu verstehen oder mit ihnen zu interagieren, um Zugriffe (Schreiben und Lesen) oder Aktualisierungen der gespeicherten Informationen zu generieren. Hier finden Sie alles, was Sie wissen müssen, um mit solchen Erinnerungen zu arbeiten ...

Was ist ein EEPROM?

EEPROM von STMicroelectronics

EEPROM von STMicroelectronics

La EEPROM (elektrisch löschbarer programmierbarer Nur-Rot-Speicher) Es handelt sich um eine Art ROM-Speicher, dh einen nichtflüchtigen Speicher, in dem Daten dauerhaft gespeichert werden, selbst wenn die Stromversorgung entfernt wird. Dadurch befinden sie sich auf der anderen Seite der RAMs (Random Access Memory), die alle ihre Daten verlieren, wenn sie nicht mit Strom versorgt werden.

Im Fall von EEPROM ist es kein Speicher wie ROM, in dem Daten aufgezeichnet werden und nicht mehr geändert werden können. EEPROM, wie Flash, gibt zu, verändert worden zu sein wie benötigt. Mit anderen Worten, einige Daten können gespeichert und gelöscht werden, um andere zu speichern.

In der Tat, wie seine Akronyme anzeigen, ist es ein elektrisch löschbarer Speicher (elektrisch löschbar) zur Neuprogrammierung. Dies unterscheidet sich von anderen ROM-Typen, die wie EPROMs ebenfalls gelöscht werden können. In diesem Fall wird jedoch keine Elektrizität zum Löschen der Speicherzellen verwendet, sondern sie hatten ein Quarz- "Fenster" auf dem Chip, um UV-Licht projizieren zu können was es gelöscht wurde.

Das Merkmal von EPROM es machte sie etwas unangenehm, diese Strahlen projizieren zu müssen, um sie zu löschen. Und am schlimmsten ist, dass sie versehentlich gelöscht werden könnten, wenn sie dieser Art von Strahlung ausgesetzt würden. In EEPROMs ist dies auf bequemere und sicherere Weise über Spannungen möglich.

Interne Struktur

EEPROM-Diagramm

Quelle: Researchgate.net

Damit das EEPROM funktioniert, werden ganz bestimmte Speicherzellen benötigt. Sie sind mit MOS-Transistoren aufgebaut, haben jedoch im Vergleich zu herkömmlichen MOSFETs ein Floating Gate. Diese neuen Transistoren folgen einer Struktur, die als bekannt ist SAMOSund sein normaler Zustand wird abgeschnitten und der Ausgang liefert immer eine logische 1.

Diese EEPROM-Zellen können unbegrenzt oft gelesen werden, sind jedoch begrenzt die Häufigkeit, mit der sie gelöscht und neu programmiert werden können, wie es vielen anderen passiert. Dies passiert auch beim Flash, weshalb so viel über die Haltbarkeit von SSD-Festplatten, USB-Sticks usw. gesprochen wurde.

Bei SAMOS liegt diese Grenze zwischen dem 100.000 und 1.000.000 Mal. Danach werden sie scheitern. Übrigens einige Strukturen, die von einem alten Bekannten geschaffen wurden, einer der ganz Großen: Dr. Fujio Masuoka von Toshiba (1984), der auch andere wichtige Speicher und Halbleiterstrukturen geschaffen hat ... Markt war Intel von 1988, ein NOR-Typ EEPROM.

Außerdem müssen Sie wissen, dass dieser Speichertyp normalerweise über CPUs oder Controller verbunden ist Bus mit Protokollen wie SPI, I2C, usw. Bei MCUs (Mikrocontrollern) ist es normalerweise wie bei einigen DSPs im Inneren integriert, um eine höhere Geschwindigkeit zu erreichen.

Wie im Bild oben zu sehen ist, ist die SAMOS-Transistoren die die Speicherzellen bilden, sind in diesem Fall paarweise gruppiert. Eine der an die Gates einiger Transistoren angeschlossenen Leitungen fungiert als Auswahlleitung, um diese Leitung für den Zugriff (Lesen und Schreiben) zu markieren oder zu signalisieren, und die andere ist diejenige, die das Informationsbit (0 oder 1) speichert.

Die Transistoren sind so ausgerichtet, dass sie die erforderlichen Wortlängen (4-Bit, 8-Bit, 16-Bit, ...) und so viele Wörter wie möglich bilden capacidad Sie möchten das EEPROM haben (zB: Es kann 64-Bit-Wortlängen geben und mit 16 Zeilen = 1024 Bit, dh 1 KB).

Wie funktioniert ein EERPOM?

Wie Sie auf der Seite sehen können, durchführen die verschiedenen AufgabenDie Spannung Ihres Gates, Ihrer Source und Ihres Drains muss konkret sein:

  • Tür bei 20V und Abfluss bei 20V = Programmieren (Schreiben) der Speicherzelle zum Speichern des gewünschten Bits.
  • Tür bei 0V und Abfluss bei 20V = lösche das gespeicherte Bit, damit es mit einem anderen Wert neu programmiert werden kann.
  • Gate bei 5V und Drain bei 5V = Lesen Sie das gespeicherte Bit. Da die Gate-Spannung niedriger als die des Schreibens ist, wird der gespeicherte Wert nicht geändert. Das gleiche passiert, wenn die Drain-Spannung niedriger ist und das gespeicherte Bit nicht gelöscht wird.

Fazit: EEPROMs verwenden einige Spannungen "Hoch" zum Löschen und Schreiben, während niedrigere Spannungen zum Lesen verwendet werden ...

Kaufen Sie EEPROM und arbeiten Sie damit

STMicroelectronicsDer französische Hersteller von Mikroelektronik ist die Nummer eins bei dieser Art von EEPROM-Chips, obwohl es viele andere Hersteller wie Microchip gibt. Diese Chips sind normalerweise ziemlich billig.

Wenn Sie sich dazu entschließen Verwenden Sie einen dieser Chips. Sie sollten den Hersteller und das Modell sehen und nach seinem suchen Datenblatt um alle Empfehlungen des Herstellers zu sehen, da diese von einem zum anderen variieren können. Zum Beispiel geben sie die Spannungen an, mit denen es arbeitet. die Pinbelegung, usw. So können Sie Ihr Projekt richtig konfigurieren.

Je nach Größe und Modell kann es mehr oder weniger haben Fichten. Um Ihnen eine Vorstellung zu geben, könnte ein typischer 24LC512 EEPROM-IC-Chip bestehen aus:

  • Die in der Konfiguration verwendeten Stifte 1 (A0), 2 (A1) und 3 (A3) sind die Auswahlstifte.
  • Pin 4 (Vss / GND) mit Masse verbunden.
  • Pin 5 (SDA) für serielle Daten für die I2C-Kommunikation.
  • Pin 6 (SCL) für die Uhr für I2C.
  • Pin 7 (WP), Schreibschutz oder Schreibschutz. Wenn es mit GND verbunden ist, wird das Schreiben aktiviert. Wenn es eine Verbindung zu Vcc herstellt, ist es deaktiviert.
  • Pin 8 (Vcc), an die Stromversorgung angeschlossen.

Da der Technische Spezifikationen dieses Chips:

  • 512K (64 × 8)
  • 128-Byte-Puffer zum Schreiben
  • Betriebsspannung: 1.8 V bis 5.5 V.
  • Lesestrom: 40uA
  • Kommunikationsbus: I2C
  • Schreibzyklus: 5 ms
  • Taktkompatibilität: 100-400 kHz
  • Haltbarkeit: 10.000.000 Zyklen
  • Kann bis zu 8 Geräte kaskadiert werden
  • Verpackung: 8-poliges DIP, SOIJ, SOIC und TSSOP.

Wo zu kaufen

zu EEPROM-Chips kaufenkönnen Sie sich diese Empfehlungen ansehen:

Verwenden des Arduino EEPROM

Screenshot der Arduino IDE

Wenn Sie mit dem EEPROM arbeiten möchten, können Sie auch das auf Ihrem Board ausprobieren Arduino. Es kann auf einfache Weise programmiert werden, um auf logischer und Programmierebene zu verstehen, wie es funktionieren kann.

Beispiel zum Speichern einer Variablen

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

Beispiel zum Lesen von Daten aus dem 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()
{
}

Beispiel zum Aktualisieren von Werten, neu planen

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

Mehr Informationen - Kostenloser Arduino Kurs


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.