Giao tiếp EEPROM serial 2-wire 24C04 với Arduino

0
253

24C04 là một EEPROM serial 2-wire, là tên viết tắt của Electrically Erasable Programmable Read-Only Memory. IC EEPROM cung cấp giao thức truyền thông I2C. Về cơ bản, nó là một thiết bị nhớ lưu trữ thông tin và giữ thông tin đó lại ngay cả khi ngắt nguồn điện.

Có dung lượng bộ nhớ 512 words, mỗi word có 8-bit, bộ nhớ bao gồm 32 pages, mỗi trang 16 byte và sử dụng địa chỉ word 9 bit để định địa chỉ word ngẫu nhiên trong bộ nhớ. Module sử dụng giao thức truyền thông I2C để giao tiếp với các bộ vi điều khiển hoặc thiết bị kỹ thuật số khác.

Sơ đồ chân 24C04 EEPROM

Gồm 8 chân:

Sơ đồ chân 24C04 EEPROM

Chân 01, 02, 03: A0, A1, A2

Ba chân này là đầu vào địa chỉ, các chân A2 và A1 dùng để định địa chỉ hardwire, bạn có thể định địa chỉ 4K trên hệ thống bus trong khi chân A0 là chân không có kết nối và thông thường, chúng ta kết nối chân này với mass.

Chân 04: GND

Chân nối mass nguồn.

Chân 05: SDA

Chân truyền dữ liệu nối tiếp cho phép truyền nối tiếp dữ liệu, địa chỉ hai chiều.

Chân 06: SCL

Là chân đầu vào xung clock đưa dữ liệu vào EEPROM khi có xung cạnh dương của clock và khi có sự thay đổi trạng thái logic âm, nó sẽ gửi dữ liệu tới đầu ra của mỗi thiết bị.

Chân 07: WP

Chân write-protect sẽ bảo vệ dữ liệu phần cứng. Cho phép đọc / ghi bằng cách kết nối với chân nối đất. Ghi được cho phép, khi cấp điện áp Vcc.

Chân 08: Vcc

Đặt tín hiệu điện áp trong phạm vi từ 1,7V đến 5,5V ở chân này.

Đặc điểm

  • Điện áp hoạt động tiêu chuẩn thấp Vcc từ 1,7V đến 5,5V.
  • Bộ nhớ có dung lượng 512 x 8 (4K) bit.
  • EEPROM truyền dữ liệu hai chiều và giao tiếp thông qua giao thức truyền dữ liệu nối tiếp 2-wire
  • Đầu vào kích hoạt Schmitt khử nhiễu.
  • Là một thiết bị có độ tin cậy cao với độ bền 1 triệu chu kỳ ghi và giới hạn lưu giữ dữ liệu là gần 100 năm.
  • Tần số xung nhịp tối đa 1MHz.
  • Bảo vệ dữ liệu phần cứng qua chân wire-protect

Các ứng dụng của EEPROM 24C04

Thiết bị này rất phù hợp để sử dụng trong các ứng dụng yêu cầu điện áp và nguồn điện thấp, nhiều ứng dụng công nghiệp và thương mại sử dụng thiết bị này vì nó cung cấp khả năng chống nhiễu và có thể mở rộng nó bằng cách kết hợp xếp tầng 8 linh kiện tương tự.

Bạn có thể dễ dàng giao tiếp với các bộ vi điều khiển khác. Máy tính và các thiết bị điện tử khác sử dụng thiết bị này để lưu trữ dữ liệu và tránh mất dữ liệu khi tắt nguồn.

Cách sử dụng EEPROM 24C04

Như đã đề cập ở trên, thiết bị này sử dụng giao thức I2C bao gồm hai dây có tên là SDA và SCL. Vì nó là một bus hai chiều, do đó có thể hoạt động như một bộ phát hoặc bộ thu. Đầu vào SDA được kéo lên mức cao bằng vi điều khiển hoặc bất kỳ thiết bị nào khác. Dữ liệu ở chân SDA thay đổi khi tín hiệu SCL chuyển thay đổi từ mức cao xuống mức thấp.

Cách sử dụng EEPROM 24C04

Sự chuyển đổi từ mức logic thấp đến mức logic cao của tín hiệu xung clock là điều kiện bắt đầu hoặc dừng. Khi có xung cạnh dương ở đầu vào SDA và SCL ở mức cao, thì đó là điều kiện khởi động. Điều kiện dừng xảy ra khi có mức logic âm ở đầu vào SDA và đầu vào SCL ở mức logic cao, đưa thiết bị đến chế độ nguồn chờ.

Cách sử dụng EEPROM 24C04

EEPROM gửi hoặc nhận các địa chỉ và word dữ liệu được truyền nối tiếp nhau ở dạng các word 8 bit và gửi một số 0 để sự xác nhận đã nhận được từng word. Hình dưới đây minh họa trạng thái đầu ra với sự thay đổi trạng thái đầu vào SDA và SCL. Dữ liệu vào ở đầu vào SDA.

Cách sử dụng EEPROM 24C04

Giao tiếp 24C04 với Arduino

Đây là sơ đồ kết nối giao tiếp EEPROM 24C04 với Arduino UNO. Kết nối chân SCL của Arduino với chân SCL của EEPROM. Tương tự, chân SDA (Arduino) với chân SDA của IC EEPROM. Ngoài ra, kết nối điện trở pull-up vào dây SDA / SCL.

Giao tiếp 24C04 với Arduino

  • Sao chép code này và dán vào Arduino IDE
  • Tải code này lên Arduino của bạn.
  • Code sẽ chỉ đọc giá trị ở địa chỉ 0x00

Bạn có thể sửa đổi code theo yêu cầu của bạn.

#include "Wire.h"

#define EEPROM_I2C_ADDRESS 0x50

void setup()
{
Wire.begin();
Serial.begin(9600);
int address = 0;
byte val = 110;
writeAddress(address, val);
byte readVal = readAddress(address);
Serial.print("The returned value is ");
Serial.println(readVal);
}
void loop()
{

}

void writeAddress(int address, byte val)

{
Wire.beginTransmission(EEPROM_I2C_ADDRESS);
Wire.write((int)(address >> 8)); // MSB
Wire.write((int)(address & 0xFF)); // LSB
Wire.write(val);
Wire.endTransmission();
delay(5);
}

byte readAddress(int address)

{
byte rData = 0xFF;
Wire.beginTransmission(EEPROM_I2C_ADDRESS);
Wire.write((int)(address >> 8)); // MSB
Wire.write((int)(address & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(EEPROM_I2C_ADDRESS, 1);
rData = Wire.read();
return rData;
}

 

Mạch ứng dụng EEPROM 24C04

Bạn có thể giao tiếp thiết bị này với các bộ vi điều khiển khác. Hình dưới đây cho biết cách đấu nối. Bộ vi điều khiển gửi dữ liệu đến EEPROM 24C04 để lưu dữ liệu. Có thể sử dụng mạch này để thiết kế hệ thống bãi đậu xe thông minh.

Mỗi khách hàng vào khu vực đậu xe nhập số CNIC được nhập thông qua bàn phím. Bộ vi điều khiển lưu số CNIC vào thiết bị EEPROM. Bây giờ, nếu khách hàng muốn mở ổ khóa, màn hình LCD sẽ hiển thị lệnh “Nhập số CNIC của bạn”. Nếu CNIC đã nhập khớp với CNIC được lưu trữ trong EEPROM, nó sẽ mở khóa nơi xe của người dùng đang đỗ.

Mạch ứng dụng EEPROM 24C04

Sơ đồ 2D EEPROM 24C04

EEPROM 24C04

>>> Mời anh em xem thêm:

Tôi là một người làm việc trong lĩnh vực cơ khí, thiết bị công nghiệp....Blog là nơi tôi chia sẻ thông tin hữu ích đến các bạn đọc.
Subscribe
Notify of
0 Bình luận
Inline Feedbacks
View all comments