AT24C256 EEPROM'u Raspberry Pi ile kullanmak

Using the AT24C256 EEPROM with the Raspberry Pi

AT24C256 Raspberry Pi'nin güç kaybından sonra bile verileri depolamasını ve almasını sağlayan bir I2C EEPROM (elektriksel olarak silinebilir programlanabilir salt okunur bellek). Bu kılavuz, AT24C256 Kablolama, I2C'yi etkinleştirme ve Python kullanarak okuma/yazma verileri dahil Raspberry Pi ile.


Ne İhtiyacınız Olacak

  1. Ahududu pi (GPIO ve I2C destekli herhangi bir model, örneğin Pi 3, Pi 4)
  2. AT24C256 EEPROM Modülü
  3. Breadboard ve jumper telleri
  4. Python yüklü Raspberry Pi'de

Adım 1: AT24C256'yı Raspberry Pi'ye bağlama

AT24C256, I2C protokolü.

Bağlantılar

AT24C256 PIN Raspberry Pi Pimi
VCC 3.3V (pim 1)
Gnd Zemin (pim 6)
SDA SDA (pim 3, GPIO2)
Scl SCL (Pin 5, GPIO3)
WP (Yaz Koruma) GND (Yazma Korumasını Devre Dışı Bırak)

Adım 2: Raspberry Pi'de I2C'yi etkinleştirin

  1. Raspberry Pi yapılandırma aracını açın:
    sudo raspi-config
    
  2. Gezmek Arayüz Seçenekleri> I2C ve etkinleştir.
  3. Raspberry Pi'yi yeniden başlatın:
    sudo reboot
    

3. Adım: Gerekli kütüphaneleri kurun

  1. Raspberry Pi’nin paket listesini güncelleyin:
    sudo apt update && sudo apt upgrade -y
    
  2. Gerekli I2C araçlarını ve Python kütüphanelerini yükleyin:
    sudo apt install -y i2c-tools python3-smbus
    
  3. I2C veri yolunda AT24C256 EEPROM tespit edildiğini doğrulayın:
    sudo i2cdetect -y 1
    
    EEPROM şu adreste görünmeli 0x50 (veya A0-A2 pin yapılandırmalarına dayalı başka bir adres).

Adım 4: AT24C256'ya veri okuma ve yazma

AT24C256 verileri 256kb bellekve her baytı bellek adresi kullanılarak erişilir.

EEPROM'a veri yazmak

import smbus2
import time

EEPROM_ADDRESS = 0x50  # Default I2C address of AT24C256
bus = smbus2.SMBus(1)  # Use I2C bus 1

def write_byte(address, data):
    bus.write_i2c_block_data(EEPROM_ADDRESS, address, [data])
    time.sleep(0.05)  # EEPROM needs time to write

# Write data (example: store 'A' at address 0x00)
write_byte(0x00, ord('A'))
print("Data written successfully!")

EEPROM'dan Verileri Okumak

def read_byte(address):
    return bus.read_byte_data(EEPROM_ADDRESS, address)

# Read the stored byte at address 0x00
stored_value = read_byte(0x00)
print(f"Stored Data: {chr(stored_value)}")

Adım 5: AT24C256 uygulamaları

  1. Veri Günlüğü: Çevrimdışı erişim için sensör verilerini zamanla saklayın.
  2. Yapılandırma Depolama: Sistem ayarlarını veya kalibrasyon verilerini kaydedin.
  3. Güvenli Kimlik Doğrulama: Şifreli anahtarları veya kimlik doğrulama jetonlarını saklayın.
  4. IoT Projeleri: Nesnelerin İnterneti uygulamaları için kalıcı depolama alanı etkinleştirin.

Sorun giderme

  1. EEPROM tespit edilmedi:

    • Kabloları kontrol edin ve SDA/SCL bağlantılarını onaylayın.
    • Koşmak sudo i2cdetect -y 1 EEPROM’un I2C adresini doğrulamak için.
  2. Yanlış okuma/yazma işlemleri:

    • Emin olmak Koru (WP) yaz ki topraklanmış yazmayı etkinleştirmek için.
    • Gecikmeler (time.sleep(0.05)) EEPROM yazma işlemlerinin tamamlanmasına izin vermek için.
  3. I2C iletişim hataları:

    • Otobüste çelişen I2C adreslerini kontrol edin.
    • Emin olmak smbus2 kullanılarak düzgün bir şekilde kuruldu pip3 install smbus2.

Çözüm

AT24C256 EEPROM, Verileri sürekli olarak saklayın Raspberry Pi'de. İçin Veri günlüğü, depolama ayarları veya IoT uygulamaları, bu kılavuz EEPROM depolama ile etkili bir şekilde etkileşim kurmak için gereken temel bilgileri sağlar. Tam potansiyelini keşfetmek için daha büyük veri kümelerini okuma/yazmayı deneyin! 🚀

Yorum bırak

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.