Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

25 Nisan 2021 Pazar

EEPROM AT24C02 İki Kablolu Seri EEPROM

 

EEPROM AT24C02 İki Kablolu Seri EEPROM


AT24C02, ATMEL tarafından başlatılan, harici elektriksel olarak silinebilir programlanabilir Salt okunur bellek serisidir. AT24C02, 8 cihaz arasında veri iletişimi için iki yönlü bir I2C protokolünü destekleyen bunlardan biridir. Bu sürümde 2KB hafıza alanı vardır ve 8 baytlık sayfa şeklinde düzenlenmiş toplam 32 adettir. Giriş voltajına bağlı olarak iki çalışma moduna sahip küçük, düşük güçlü bir cihazdır. Cihaz, bir milyona kadar yazma döngüsüne sahip 8 bayt yazma moduna sahiptir. Yer tasarrufu sağlayan bir TSSOP paketinde gelir ve çok güvenilirdir.

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:

AT24C02 İki Telli Seri EEPROM pinout şeması

 PIN konfigürasyonu

Tablodaki pim yapılandırması aşağıdaki gibi detaylandırılmıştır:

PIN numarasıPin AdıFonksiyon
1A0Adres0 pin
2A1Adres1 pin
3A2Adres2 pini
4GNDReferans potansiyel pimi
5SDAAçık tahliye Seri Veri hattı pimi
6SCL Seri Saat hat pimi
7WPYazma Koruması pimi
8VCCPozitif 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 dahili blok şeması

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:

AT24C02 Arduino ile İki Kablolu Seri EEPROM arabirimi

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 UNOAT24C02 EEPROM
5VVCC
GNDGND
A4SDA
A5SCL
WPGND

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));
}

Veriyi yazmak için son bit 0 olmalıdır. Bunu belirtilen bellek veri adresi ve yazılacak veri takip eder. Veriler artık yerde saklanmaktadır.
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

2D diyagram



ANA SAYFAYA DÖN

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.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.