Verwenden des AT24C256 EEPROM mit dem Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

Der AT24C256 ist ein I2C-EEPROM (elektrisch löschbar programmierbares schreibgeschütztes Speicher), mit dem der Raspberry Pi Daten auch nach Stromverlust speichern und abrufen kann. In diesem Leitfaden wird erläutert, wie man die Schnittstellen AT24C256 Mit dem Raspberry Pi einschließlich Verkabelung, Aktivieren von I2C und Lesen/Schreiben von Daten mithilfe von Python.


Was Sie brauchen werden

  1. Raspberry Pi (Jedes Modell mit GPIO- und I2C -Unterstützung, z. B. PI 3, PI 4)
  2. AT24C256 EEPROM -Modul
  3. Breadboard- und Jumper -Drähte
  4. Python installiert Auf dem Raspberry Pi

Schritt 1: Verkabelung des AT24C256 mit dem Raspberry Pi

Der AT24C256 kommuniziert mit dem I2C -Protokoll.

Verbindungen

AT24C256 PIN Raspberry Pi Pin
VCC 3,3 V (Pin 1)
GND Masse (Pin 6)
SDA SDA (Pin 3, gpio2)
Scl SCL (Pin 5, gpio3)
WP (schreiben) GND (Schreibschutz deaktivieren)

Schritt 2: Aktivieren Sie I2C am Raspberry Pi

  1. Öffnen Sie das Raspberry PI -Konfigurationstool:
    sudo raspi-config
    
  2. Navigieren zu Schnittstellenoptionen> i2c und es aktivieren.
  3. Starten Sie den Raspberry Pi neu:
    sudo reboot
    

Schritt 3: Installieren Sie die erforderlichen Bibliotheken

  1. Aktualisieren Sie die Paketliste Ihres Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installieren Sie die erforderlichen I2C -Tools und Python -Bibliotheken:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Stellen Sie sicher, dass das AT24C256 EEPROM im I2C -Bus erkannt wird:
    sudo i2cdetect -y 1
    
    Das EEPROM sollte bei erscheinen 0x50 (oder eine andere Adresse basierend auf A0-A2-Pin-Konfigurationen).

Schritt 4: Lesen und Schreiben von Daten an den AT24C256

Der AT24C256 speichert Daten in 256 KB Speicherund auf jedes Byte wird mit seiner Speicheradresse zugegriffen.

Daten in EEPROM schreiben

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!")

Daten aus EEPROM lesen

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

Schritt 5: Anwendungen des AT24C256

  1. Datenprotokollierung: Speichern Sie Sensordaten im Laufe der Zeit für den Offline -Zugriff.
  2. Konfigurationsspeicher: Speichern Sie Systemeinstellungen oder Kalibrierungsdaten.
  3. Sichere Authentifizierung: Verschlüsselte Schlüssel oder Authentifizierungs -Token speichern.
  4. IoT -Projekte: Aktivieren Sie den anhaltenden Speicher für das Internet der Dinge.

Fehlerbehebung

  1. EEPROM nicht erkannt:

    • Überprüfen Sie die Verkabelung und bestätigen Sie die SDA/SCL -Verbindungen.
    • Laufen sudo i2cdetect -y 1 Um die I2C -Adresse des EEPROM zu überprüfen.
  2. Falsche Lesen/Schreibvorgänge:

    • Sicherstellen Schreiben Sie Protect (WP) Ist geerdet Schreiben zu aktivieren.
    • Verzögerungen einführen (time.sleep(0.05)), um EEPROM -Schreibvorgängen abzuschließen.
  3. I2C -Kommunikationsfehler:

    • Überprüfen Sie, ob widersprüchliche I2C -Adressen im Bus.
    • Sicherstellen smbus2 wird ordnungsgemäß mit Verwendung installiert pip3 install smbus2.

Abschluss

Der AT24C256 EEPROM ist ein einfacher, aber leistungsfähiger Weg dazu Daten dauerhaft speichern Auf einem Himbeer -Pi. Ob für Datenprotokollierung, Speichern von Einstellungen oder IoT -AnwendungenDieser Leitfaden bietet das grundlegende Wissen, das für die effektive Interaktion mit EEPROM -Speicherung erforderlich ist. Experimentieren Sie mit Lesen/Schreiben größerer Datensätze, um das volle Potenzial zu untersuchen! 🚀

Hinterlasse einen Kommentar

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.