EEPROM: semua yang anda perlu tahu mengenai memori ini

EEPROM

Sekiranya anda pembuat dan anda membuat beberapa projek DIY di mana anda harus bekerja dengan memori, pasti anda sudah mengetahui bagaimana kenangan berbeza yang disatukan oleh Arduino berfungsi, seperti kilat (tidak mudah berubah di mana sketsa dan pemuat but disimpan), SRAM (memori cepat dan tidak stabil di mana pemboleh ubah program kekal semasa pemprosesan), dan EEPROM (tidak mudah berubah dan boleh digunakan untuk menyimpan maklumat but semula).

Selain EEPROM yang termasuk dalam Arduino, anda juga boleh menggunakan cip luaran dari ingatan seperti iniSebagai satu komponen lagi. Mereka tidak rumit untuk memahami, atau berinteraksi dengan mereka untuk menghasilkan akses (menulis dan membaca) atau kemas kini maklumat yang disimpan. Di sini anda akan menemui semua yang perlu anda ketahui untuk mula bekerja dengan jenis kenangan ini ...

Apa itu EEPROM?

STEP Mikroelektronik EEPROM

STEP Mikroelektronik EEPROM

La EEPROM (Memori Bersih Merah yang Boleh Diprogramkan Secara Elektronik) Ia adalah sejenis memori ROM, iaitu memori tidak mudah menguap di mana data akan disimpan secara kekal, walaupun bekalan kuasa dikeluarkan. Itu meletakkan mereka di sisi lain RAM (Memori Akses Rawak), yang kehilangan semua datanya ketika tidak dihidupkan.

Dalam kes EEPROM, bukan memori seperti ROM, di mana data direkodkan dan tidak lagi dapat diubah. EEPROM, seperti kilat, mengaku diubah seperti yang diperlukan. Iaitu, beberapa data dapat disimpan dan dipadam untuk menyimpan yang berbeza.

Sebenarnya, seperti yang ditunjukkan oleh akronimnya, ia adalah memori yang boleh dipadamkan secara elektrik (boleh dipadamkan elektrik) untuk pengaturcaraan semula. Ini berbeza dengan jenis ROM lain, yang juga dapat dihapus seperti EPROM, tetapi dalam hal ini elektrik tidak digunakan untuk menghapus sel memori, sebaliknya mereka mempunyai "tingkap" kuarza pada cip untuk dapat memproyeksikan sinar UV. Dengan yang telah dipadamkan.

Ciri itu EPROM itu membuat mereka agak tidak selesa, terpaksa memproyeksikan sinar tersebut untuk menghapusnya. Dan, yang paling teruk, mereka boleh terhapus secara tidak sengaja jika terkena jenis sinaran ini. Dalam EEPROM, ia dibenarkan melakukannya melalui voltan, dengan cara yang lebih selesa dan selamat.

Struktur dalaman

Gambar rajah EEPROM

Sumber: Researchgate.net

Agar EEPROM berfungsi, sel memori yang sangat diperlukan. Mereka dibina menggunakan transistor jenis MOS, tetapi mempunyai pintu apungan berbanding dengan MOSFET tradisional. Transistor baru ini mengikuti struktur yang dikenali sebagai SAMOS, dan keadaan normalnya terputus dan output akan selalu memberikan logik 1.

Sel EEPROM ini dapat dibaca berkali-kali tanpa had, tetapi ia terhad dalam berapa kali ia dapat dihapus dan diprogramkan semula, seperti yang berlaku pada banyak orang lain. Ini juga berlaku dalam keadaan kilat, sebab itulah banyak perbincangan mengenai ketahanan cakera keras SSD, pemacu pen, dll.

Dalam kes SAMOS, had ini antara 100.000 dan 1.000.000 kali. Selepas itu, mereka akan gagal. By the way, beberapa struktur yang diciptakan oleh seorang kenalan lama, salah satu yang hebat: Dr. Fujio Masuoka dari Toshiba (1984), yang juga telah mencipta kenangan penting dan struktur semikonduktor ... Namun, cip pertama dilancarkan pada pasaran adalah Intel dari tahun 1988, EEPROM jenis NOR.

Di samping itu, anda harus tahu bahawa memori jenis ini biasanya dihubungkan dengan CPU atau pengawal melalui bas dengan protokol seperti SPI, I2C, dan lain-lain. Dalam kes MCU (mikrokontroler) biasanya disatukan di dalam, seperti di beberapa DSP, untuk mencapai kelajuan yang lebih besar.

Seperti yang dapat dilihat pada gambar di atas, Transistor SAMOS yang membentuk sel memori, dikelompokkan dalam kes itu secara berpasangan. Salah satu garis yang dilekatkan pada gerbang beberapa transistor bertindak sebagai garis pilihan, untuk menandakan atau menandakan garis itu untuk akses (membaca dan menulis), dan yang lain akan menjadi yang menyimpan bit maklumat (0 atau 1).

Transistor diselaraskan untuk membentuk panjang perkataan yang diperlukan (4-bit, 8-bit, 16-bit, ...) dan seberapa banyak perkataan yang kapasiti anda ingin mempunyai EEPROM (contohnya: boleh ada panjang perkataan 64-bit dan dengan 16 baris = 1024 bit, iaitu, 1kb).

Bagaimana EERPOM berfungsi?

Seperti yang anda lihat di sebelah, untuk membuat persembahan tugas yang berbeza, voltan pintu, sumber dan longkang anda mestilah konkrit:

  • Pintu pada 20v dan Tiriskan pada 20v = pengaturcaraan (penulisan) sel memori untuk menyimpan bit yang diinginkan.
  • Pintu pada 0v dan Tiriskan pada 20v = kosongkan bit yang disimpan sehingga dapat diprogramkan semula dengan nilai lain.
  • Gerbang pada 5v dan Tiriskan pada 5v = baca bit yang disimpan. Oleh kerana voltan gerbang lebih rendah daripada penulisan, nilai yang disimpan tidak akan diubah. Perkara yang sama berlaku dengan voltan saliran, kerana semakin rendah, bit yang disimpan tidak akan terpadam.

Kesimpulannya, EEPROM menggunakan beberapa voltan "Tinggi" untuk memadam dan menulis, sambil menggunakan voltan yang lebih rendah untuk membaca ...

Beli EEPROM dan bekerjasama dengannya

STMicroelectronics, pengeluar mikroelektronik Perancis, adalah yang pertama dalam jenis cip EEPROM ini, walaupun terdapat banyak pengeluar lain, seperti Microchip. Cip ini biasanya agak murah.

Sekiranya anda memutuskan untuk gunakan salah satu kerepek ini, anda mesti melihat pengeluar dan modelnya dan mencarinya Lembaran data untuk melihat semua cadangan pengeluar, kerana ia mungkin berbeza antara satu sama lain. Sebagai contoh, mereka akan menentukan voltan yang berfungsi, peniti, dan lain-lain. Oleh itu, anda boleh mengkonfigurasi projek anda dengan betul.

Bergantung pada ukuran dan model, ia mungkin mempunyai lebih kurang pain. Tetapi untuk memberi anda idea, cip IC EEPROM 24LC512 khas boleh terdiri daripada:

  • Pin 1 (A0), 2 (A1), dan 3 (A3) yang digunakan dalam konfigurasi adalah pin pilihan.
  • Pin 4 (Vss / GND) disambungkan ke tanah.
  • Pin 5 (SDA), untuk data bersiri untuk komunikasi I2C.
  • Pin 6 (SCL), untuk jam untuk I2C.
  • Pin 7 (WP), perlindungan tulis atau perlindungan tulis. Sekiranya ia disambungkan ke GND, penulisan akan diaktifkan. Sekiranya ia menyambung ke Vcc, ia dilumpuhkan.
  • Pin 8 (Vcc), disambungkan ke kuasa.

Sebagai Spesifikasi teknikal cip ini:

  • 512K (64 × 8)
  • Penyangga 128-bait untuk menulis
  • Voltan operasi: 1.8v hingga 5.5v
  • Bacaan semasa: 40uA
  • Bas komunikasi: I2C
  • Kitaran tulis: 5ms
  • Keserasian jam: 100-400Khz
  • Ketahanan: 10.000.000 kitaran
  • Boleh dilambung hingga 8 peranti
  • Pembungkusan: 8-pin DIP, SOIJ, SOIC dan TSSOP.

Di mana untuk membeli

kepada beli kerepek EEPROM, anda boleh melihat cadangan berikut:

Menggunakan EEPROM Arduino

Tangkapan skrin Arduino IDE

Sekiranya anda ingin mula bekerja dengan EEPROM, anda juga boleh mencuba yang ada di papan anda Arduino. Ia dapat diprogramkan dengan cara yang mudah untuk memahami pada tahap logik dan pengaturcaraan bagaimana ia dapat berfungsi.

Contoh untuk menyimpan pemboleh ubah

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

Contoh untuk membaca data dari 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()
{
}

Contoh untuk mengemas kini nilai, menjadualkan semula

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

Maklumat lanjut - Kursus Arduino percuma


Menjadi yang pertama untuk komen

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.