EEPROM AT24C02 İki Kablolu Seri EEPROM
EEPROM uygulamaları DIY, Tüketici platformundan otomotiv, endüstriyel seviyeye kadar uzanır. Bu eğitim, AT24C02 pin çıkışı, teknik özellikler, özellikler ve uygulamaların bir gösterisidir.
AT24C02 Pin çıkışı
Çip, 8 uçlu TSSOP paketinde mevcuttur. Aşağıdaki şemada AT24C02 İki Kablolu Seri EEPROM'un pin çıkışı gösterilmektedir:
PIN konfigürasyonu
Tablodaki pim yapılandırması aşağıdaki gibi detaylandırılmıştır:
PIN numarası | Pin Adı | Fonksiyon |
---|---|---|
1 | A0 | Adres0 pin |
2 | A1 | Adres1 pin |
3 | A2 | Adres2 pini |
4 | GND | Referans potansiyel pimi |
5 | SDA | Açık tahliye Seri Veri hattı pimi |
6 | SCL | Seri Saat hat pimi |
7 | WP | Yazma Koruması pimi |
8 | VCC | Pozitif Güç kaynağı pimi |
Adres pimleri
Bunlar, entegre EEPROM yongasının adres pinleridir. Tek bir veri yolunda sekiz farklı 1K / 2K cihazı bağlayabilir.
I2C Arayüzü
Cihaz, cihazlar ve EEPROM arasında veri iletişimi için entegre bir devreye sahiptir. SCL, protokolün saat hattıdır, SDA ise seri verileri aktarmak için çift yönlü bir hattır.
Yazmaya Karşı Koruma
Herhangi bir veri değişikliğini önlemek için cihaza yazma koruması sağlanmıştır. GND'ye bağlandığında, normal Yazma / Okuma işlemlerine hizmet eder. Yazma koruma özelliğini etkinleştirmek için, bunu güç kaynağı pinine bağlayın.
AT24C02 Özellikler
- Çalışma Voltajı: 1,8 Volt - 5,5 Volt
- Maksimum Çalışma Gerilimi: 6.25 Volt
- Çalışma Akımı: 5.0 mA
- Maksimum Okuma Akımı: 1mA
- Maksimum Bekleme Akımı: 1uA
- Her pimdeki Çıkış Voltajı: –1.0Volts - 7.0Volts
- Veri Saklama Süresi: 100 yıl
- Yazma döngüsü sayısı: 100 milyon
- Maksimum Zamanlamalı Yazma Döngüsü: 5msn
- 1.8V'de Saat Frekansı: 100 kHz
- 2.4V, 5V'de Saat Frekansı: 400 kHz
- Çalışma Sıcaklığı: –55 ° C ila + 125 ° C
- Paket Tipi: 8 uçlu, TSSOP paketi
Özellikleri
- Bellek cihazının iki çalışma modu vardır, yani Düşük voltajlı ve Standart voltajlı Çalışma.
- AT24C0 serisinin bu sürümü, her biri 8 baytlık 32 sayfa olarak düzenlenmiştir.
- 2K, her kelimeyi 8 bitlik bir veri kelime adresi ile tahsis eder ve bunları hafızada saklar.
- Cihaz, okuma / yazma işlemi için İki kablolu Seri Arayüzü destekler.
- İstenmeyen gürültüyü en aza indirmek için girişleri filtrelemek için bir Schmitt Tetikleyiciye sahiptir.
- AT24C02'deki Veri Aktarım Protokolü çift yönlüdür.
- Mekanik veri kaybını önlemek için donanım teli korumasına sahiptir.
- AT24C02 Kısmi Sayfa Yazmaya izin verir ve oldukça dayanıklı bir aygıttır.
Blok Şeması
EEPROM'un dahili devresini anlamak için blok şeması gösterildiği gibidir:
AT24C02 EEPROM nasıl çalışır?
AT24C02 EEPROM, başlatma-durdurma koşullarında çalışır. EEPROM, hem saat hattı hem de veri hattı yüksekten düşüğe değiştiğinde okumaya veya yazmaya hazır hale gelir. EEPROM, çevresel aygıt adresini, bayt adresini ve depolanacak bilgileri alır. İletimden sonra işlem sonlandırılır. Bu, durdurma koşulu tarafından belirlenir, yani I2C arayüzünün her iki hattı da düşükten yüksek duruma geçiş yapar.
Mikroişlemci ile EEPROM'u Arayüz
AT24C02, I2C Bus protokolü ile herhangi bir mikro kontrol birimi ile kolayca arayüzlenebilir. EEPROM'un arabirimi, her iki modülün güç kaynağını bağlayarak ve elektriksel olarak silinebilir programlanabilir ROM'un SDA ve SCL'sini Arduino'nun I2C hatlarına bağlayarak yapılır. Ayrıca, MCU’da dahili olarak entegre kaldırma dirençleri yoksa, kaldırma dirençleri kullanın.
EEPROM'u Arduino UNO ile arayüzleme
Bu bölümde, AT24C02 EEPROM ile Arduino arasında arayüz oluşturmak için bir örnek göreceğiz. Hemen hemen tüm Arduino geliştirme kartlarında en az bir I2C bağlantı noktası bulunur. Benzer şekilde, Arduino Uno da bu EEPROM çipinden veri yazmak ve okumak için kullanabileceğimiz bir I2C portuna sahiptir. Arduino ve EEPROM'u aşağıdaki arayüz şemasında gösterildiği gibi bağlayın:
Kablo korumasını etkinleştirmek ve yazmayı durdurmak için WP'yi VCC'ye bağlayın. Tek bir EEPROM kullanıyoruz, bu nedenle adres pinlerini kullanmayacağız.
Arduino UNO | AT24C02 EEPROM |
---|---|
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
WP | GND |
Arduino Kodu
#include <Wire.h>
#define ADDR_Ax 0b000 //A2, A1, A0
#define ADDR (0b1010 << 3) + ADDR_Ax
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Wire.begin();
writeI2CByte(0, 1);
Serial.println(readI2CByte(0));
}
void loop() {
// put your main code here, to run repeatedly:
}
void writeI2CByte(byte data_addr, byte data){
Wire.beginTransmission(ADDR);
Wire.write(data_addr);
Wire.write(data);
Wire.endTransmission();
}
byte readI2CByte(byte data_addr){
byte data = NULL;
Wire.beginTransmission(ADDR);
Wire.write(data_addr);
Wire.endTransmission();
Wire.requestFrom(ADDR, 1); //retrieve 1 returned byte
delay(1);
if(Wire.available()){
data = Wire.read();
}
return data;
}
Kod nasıl çalışır?
Kod, verilerin yazılmasını ve okunmasını gösterir.
İlk olarak, okuma / yazma işlevlerini gerçekleştirmek için "Wire.h" kitaplığı dahil edilmiştir. Ardından, verileri iletmek için 8 bitlik cihaz adresi gönderilir. Adresin son biti, aygıtın EEPROM'da okuyup okumayacağını veya yazıp yazmayacağını belirler.
#include <Wire.h>
#define ADDR_Ax 0b000 //A2, A1, A0
#define ADDR (0b1010 << 3) + ADDR_Ax
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Wire.begin();
writeI2CByte(0, 1);
Serial.println(readI2CByte(0));
}
void writeI2CByte(byte data_addr, byte data){
Wire.beginTransmission(ADDR);
Wire.write(data_addr);
Wire.write(data);
Wire.endTransmission();
}
Verileri bu konumdan okumak için, verileri okumak için son biti 1 olan cihaz adreslerinden oluşan "Wire.requestFrom" aracılığıyla istek yapılır ve ikinci argüman 1 tutulur, bu da işlevin bir bayt döndüreceği anlamına gelir. veri. "Wire.available" işlevi bellek adresini kontrol edecek ve konumda saklanan verileri geri döndürecektir. Seri monitörde görüntülenecektir.
byte readI2CByte(byte data_addr){
byte data = NULL;
Wire.beginTransmission(ADDR);
Wire.write(data_addr);
Wire.endTransmission();
Wire.requestFrom(ADDR, 1); //retrieve 1 returned byte
delay(1);
if(Wire.available()){
data = Wire.read();
}
return data;
}
Alternatif Seçenekler
- DS2431 + Tek Kablolu EEPROM
- 24LCxxx EEPROM
- AT28C64B 64 Kilobit EEPROM
Başvurular
- İletişim sistemleri
- Otomobil
- Veri depolama
- Tüketici elektroniği
- Endüstriyel uygulamalar
- Test cihazları
2D Diyagram
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.