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
- Raspberry Pi (Jedes Modell mit GPIO- und I2C -Unterstützung, z. B. PI 3, PI 4)
- AT24C256 EEPROM -Modul
- Breadboard- und Jumper -Drähte
- 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
- Öffnen Sie das Raspberry PI -Konfigurationstool:
sudo raspi-config
- Navigieren zu Schnittstellenoptionen> i2c und es aktivieren.
- Starten Sie den Raspberry Pi neu:
sudo reboot
Schritt 3: Installieren Sie die erforderlichen Bibliotheken
- Aktualisieren Sie die Paketliste Ihres Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installieren Sie die erforderlichen I2C -Tools und Python -Bibliotheken:
sudo apt install -y i2c-tools python3-smbus
- Stellen Sie sicher, dass das AT24C256 EEPROM im I2C -Bus erkannt wird:
Das EEPROM sollte bei erscheinen 0x50 (oder eine andere Adresse basierend auf A0-A2-Pin-Konfigurationen).sudo i2cdetect -y 1
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
- Datenprotokollierung: Speichern Sie Sensordaten im Laufe der Zeit für den Offline -Zugriff.
- Konfigurationsspeicher: Speichern Sie Systemeinstellungen oder Kalibrierungsdaten.
- Sichere Authentifizierung: Verschlüsselte Schlüssel oder Authentifizierungs -Token speichern.
- IoT -Projekte: Aktivieren Sie den anhaltenden Speicher für das Internet der Dinge.
Fehlerbehebung
-
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.
-
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.
-
I2C -Kommunikationsfehler:
- Überprüfen Sie, ob widersprüchliche I2C -Adressen im Bus.
- Sicherstellen
smbus2
wird ordnungsgemäß mit Verwendung installiertpip3 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! 🚀