EEPROM: mọi thứ bạn cần biết về bộ nhớ này
hwlibre.com /eeprom/
26 tháng một, 2021
Nếu bạn là một nhà sản xuất và bạn đang thực hiện một số dự án DIY mà bạn phải làm
việc với bộ nhớ, chắc chắn bạn đã biết các bộ nhớ khác nhau mà Arduino tích hợp hoạt
động như thế nào, chẳng hạn như flash (không thay đổi nơi lưu trữ bản phác thảo và bộ
nạp khởi động), SRAM (bộ nhớ nhanh, dễ bay hơi trong đó các biến chương trình vẫn
cịn trong q trình xử lý) và EEPROM (khơng dễ bay hơi và có thể được sử dụng để lưu
trữ thơng tin đặt lại).
Chà, ngồi EEPROM có trong Arduino, bạn cũng có thể sử dụng chip bên ngoài của loại
bộ nhớ này , như một thành phần khác . Chúng hồn tồn khơng phức tạp để hiểu, cũng
như không tương tác với chúng để tạo quyền truy cập (viết và đọc) hoặc cập nhật thông
tin được lưu trữ. Ở đây bạn sẽ tìm thấy mọi thứ bạn cần biết để bắt đầu làm việc với loại
bộ nhớ này...
EEPROM là gì?
1/7
STMicroelectronics EEPROM
EEPROM (Bộ nhớ chỉ có màu đỏ có thể lập trình có thể xóa bằng điện) là một loại bộ
nhớ ROM, tức là bộ nhớ cố định trong đó dữ liệu sẽ được lưu trữ vĩnh viễn, ngay cả khi
nguồn điện bị ngắt. Điều đó đặt chúng ở phía bên kia của RAM (Bộ nhớ truy cập ngẫu
nhiên), bộ nhớ này sẽ mất tất cả dữ liệu khi không được cấp nguồn.
Trong trường hợp của EEPROM, nó khơng phải là bộ nhớ như ROM, trong đó dữ liệu
được ghi lại và không thể thay đổi được nữa. EEPROM, giống như đèn flash, có thể
được thay đổi khi cần thiết. Điều đó có nghĩa là, một số dữ liệu có thể được lưu trữ và
xóa để lưu trữ những dữ liệu khác.
Trên thực tế, như từ viết tắt của nó chỉ ra, nó là bộ nhớ có thể xóa bằng điện để lập
trình lại. Điều này khác với các loại ROM khác, cũng có thể xóa được như EPROM,
nhưng trong trường hợp này, điện khơng được sử dụng để xóa các ơ nhớ, thay vào đó
chúng có một "cửa sổ" thạch anh trong chip để chiếu tia UV mà nó bị xóa. .
Đặc điểm này của EPROM khiến chúng hơi khó chịu, phải chiếu những tia đó để xóa
chúng. Và tệ nhất là chúng có thể vơ tình bị xóa nếu tiếp xúc với loại bức xạ này. Trong
EEPROM, nó được phép thực hiện thông qua điện áp, theo cách an toàn và thoải mái
hơn.
Cơ cấu nội bộ
2/7
Nguồn: Researchgate.net
Để EEPROM hoạt động, cần có các ơ nhớ rất đặc biệt. Chúng được chế tạo bằng cách
sử dụng các bóng bán dẫn loại MOS, nhưng có một cổng nổi ở phía trước MOSFET
truyền thống. Các bóng bán dẫn mới này tuân theo cấu trúc được gọi là SAMOS và trạng
thái bình thường của chúng bị cắt và đầu ra sẽ luôn cung cấp mức logic 1.
Các ô EEPROM này có thể được đọc với số lần khơng giới hạn, nhưng có giới hạn về số
lần chúng có thể bị xóa và lập trình lại , giống như nhiều ô khác. Điều này cũng xảy ra
với ổ đĩa flash, đó là lý do tại sao người ta đã nói rất nhiều về độ bền của ổ cứng SSD, ổ
flash, v.v.
Trong trường hợp của SAMOS, giới hạn đó nằm trong khoảng từ 100.000 đến 1.000.000
lần . Sau đó, họ sẽ thất bại. Nhân tiện, một số cấu trúc được tạo ra bởi một người quen
cũ, một trong những người vĩ đại: Tiến sĩ Fujio Masuoka từ Toshiba (1984), người cũng
đã tạo ra các ký ức và cấu trúc bán dẫn quan trọng khác... Tuy nhiên, con chip đầu tiên
đã ra mắt trên thị trường là của Intel từ năm 1988, một EEPROM loại NOR.
Ngoài ra, bạn phải biết rằng loại bộ nhớ này thường được liên kết với CPU hoặc bộ điều
khiển thông qua bus với các giao thức như SPI, I2C , v.v. Trong trường hợp MCU (vi điều
khiển), nó thường được tích hợp bên trong, như trường hợp của một số DSP, để đạt
được tốc độ cao hơn.
Như có thể thấy trong hình trên, các bóng bán dẫn SAMOS tạo nên các ơ nhớ được
nhóm thành từng cặp. Một trong những đường được gắn vào cổng của một số bóng bán
dẫn hoạt động như một đường lựa chọn, để đánh dấu hoặc báo hiệu đường đó để truy
cập (đọc và viết) và đường còn lại sẽ là đường lưu trữ bit thơng tin (0 hoặc 1).
Các bóng bán dẫn được căn chỉnh để tạo thành độ dài của từ (word) cần thiết (4-bit, 8bit, 16-bit,...) và bao nhiêu từ được nhóm lại tùy theo dung lượng của EEPROM (ví dụ: có
thể có từ độ dài 64-bit và với 16 dòng = 1024 bit, tức là 1kb).
EERPOM hoạt động như thế nào?
3/7
Như bạn có thể thấy ở bên cạnh, để thực hiện các tác vụ khác nhau , điện áp của cổng,
nguồn và cống của bạn phải là một điện áp cụ thể:
Gate ở 20v và Drain ở 20v = lập trình (ghi) ơ nhớ để lưu bit mong muốn.
Gate to 0v and Drain to 20v = Xóa bit được lưu trữ để có thể lập trình lại thành giá
trị khác.
Gate ở 5v và Drain ở 5v = đọc bit được lưu trữ. Vì điện áp cổng thấp hơn điện áp
ghi, giá trị được lưu trữ sẽ không bị thay đổi. Điều tương tự cũng xảy ra với điện áp
thoát, thấp hơn, bit được lưu trữ sẽ khơng bị xóa.
Kết luận, EEPROM sử dụng điện áp "cao" để xóa và ghi, trong khi chúng sử dụng điện
áp thấp hơn để đọc...
Mua EEPROM và làm việc với nó
STMicroelectronics , nhà sản xuất vi điện tử của Pháp, là số một trong loại chip
EEPROM này, mặc dù có nhiều nhà sản xuất khác, chẳng hạn như Microchip. Những
con chip này thường khá rẻ.
Nếu bạn quyết định sử dụng một trong những con chip này, bạn nên gặp nhà sản xuất và
kiểu máy, đồng thời tìm kiếm bảng dữ liệu của nó để xem tất cả các khuyến nghị của nhà
sản xuất, vì chúng có thể khác nhau giữa các loại chip này. Ví dụ: họ sẽ chỉ định điện áp
mà nó hoạt động, sơ đồ chân , v.v. Vì vậy, bạn có thể định cấu hình dự án của mình
đúng cách.
Tùy thuộc vào kích thước và kiểu máy, nó có thể có nhiều hoặc ít chân cắm hơn . Nhưng
để cung cấp cho bạn một ý tưởng, một chip IC 24LC512 EEPROM điển hình có thể bao
gồm:
Các chân 1 (A0), 2 (A1) và 3 (A3) được sử dụng trong cấu hình, là các chân chọn.
Chân 4 (Vss/GND) nối đất.
Chân 5 (SDA), dành cho dữ liệu nối tiếp cho giao tiếp I2C.
Chân 6 (SCL), dành cho clock cho I2C.
Chân 7 (WP), chống ghi hoặc chống ghi. Nếu nó được kết nối với GND, chức năng
ghi sẽ được kích hoạt. Nếu nó kết nối với Vcc thì nó bị vơ hiệu hóa.
Chân 8 (Vcc), nối với nguồn.
Về thông số kỹ thuật của con chip này:
512K (64×8)
bộ đệm ghi 128 byte
Điện áp hoạt động: 1.8va 5.5v
Đọc hiện tại: 40uA
Xe buýt truyền thông: I2C
Chu kỳ ghi: 5ms
Khả năng tương thích đồng hồ: 100-400Khz
Độ bền: 10.000.000 chu kỳ
4/7
Có thể kết nối tối đa 8 thiết bị
Đóng gói: DIP 8 chân, SOIJ, SOIC và TSSOP.
Nơi để mua
Để mua chip EEPROM , bạn có thể xem các đề xuất sau:
ST 95040 4Kb SPI nối tiếp
ST M28C64C 64Kb song song
ST M24C02C 2Kb I2C nối tiếp
ST M8571B6 1Kb I2C nối tiếp
ST 24LC256 256Kb I2C nối tiếp
Nối tiếp Microchip 24LC256-i/sn 256Kb I2C
Sử dụng Arduino EEPROM
Nếu bạn muốn bắt đầu làm việc với EEPROM, bạn cũng có thể thử cái trên bo mạch
Arduino của mình . Nó có thể được lập trình một cách đơn giản để hiểu ở mức độ logic
và lập trình làm thế nào để nó có thể hoạt động.
Ví dụ để ghi lại một biến
5/7
//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
}
Ví dụ đọc dữ liệu từ 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()
{
}
ể
6/7
Ví dụ để cập nhật giá trị, lập trình lại
//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
}
Thơng tin thêm – Khóa học Arduino miễn phí
7/7