De AT24C256 är ett I2C EEPROM (elektriskt raderbart programmerbart skrivskyddsminne) som gör att Raspberry Pi kan lagra och hämta data även efter effektförlust. Den här guiden förklarar hur man gränssnitt AT24C256 med Raspberry Pi, inklusive ledningar, möjliggör I2C och läsning/skrivdata med Python.
Vad du behöver
- Hallon (Varje modell med GPIO och I2C -stöd, t.ex. PI 3, PI 4)
- AT24C256 EEPROM -modul
- Breadboard och jumpertrådar
- Python installerad på Raspberry Pi
Steg 1: Koppling AT24C256 till Raspberry Pi
AT24C256 kommunicerar med I2C -protokollet.
Anslutningar
At24c256 stift | Hallon pi |
---|---|
Vcc | 3.3V (stift 1) |
Gard | Mark (stift 6) |
SDA | SDA (stift 3, GPIO2) |
SCL | SCL (stift 5, GPIO3) |
WP (skrivskydd) | GND (inaktivera skrivskydd) |
Steg 2: Aktivera i2c på Raspberry Pi
- Öppna Raspberry PI -konfigurationsverktyget:
sudo raspi-config
- Navigera till Gränssnittsalternativ> i2c och aktivera det.
- Starta om Raspberry Pi:
sudo reboot
Steg 3: Installera obligatoriska bibliotek
- Uppdatera din Raspberry Pis paketlista:
sudo apt update && sudo apt upgrade -y
- Installera de nödvändiga I2C -verktygen och Python -bibliotek:
sudo apt install -y i2c-tools python3-smbus
- Kontrollera att AT24C256 EEPROM upptäcks på I2C -bussen:
EEPROM bör dyka upp på 0x50 (eller en annan adress baserad på A0-A2-stiftkonfigurationer).sudo i2cdetect -y 1
Steg 4: Att läsa och skriva data till AT24C256
AT24C256 lagrar data i 256 kB minneoch varje byte nås med sin minnesadress.
Skriva data till EEPROM
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!")
Läser data från EEPROM
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)}")
Steg 5: Tillämpningar av AT24C256
- Dataloggning: Lagra sensordata över tid för offlineåtkomst.
- Konfigurationslagring: Spara systeminställningar eller kalibreringsdata.
- Säker autentisering: Lagra krypterade nycklar eller autentiseringstokens.
- IoT -projekt: Aktivera ihållande lagring för Internet of Things -applikationer.
Felsökning
-
EEPROM upptäcks inte:
- Kontrollera ledningar och bekräfta SDA/SCL -anslutningar.
- Sikt
sudo i2cdetect -y 1
För att verifiera EEPROM: s I2C -adress.
-
Felaktiga läs-/skrivoperationer:
- Säkerställa Skriv Protect (WP) är grundad för att aktivera skrivande.
- Införa förseningar (
time.sleep(0.05)
) för att låta EEPROM skriva operationer att slutföra.
-
I2C -kommunikationsfel:
- Kontrollera om det är motstridiga I2C -adresser på bussen.
- Säkerställa
smbus2
är korrekt installerad medpip3 install smbus2
.
Slutsats
AT24C256 EEPROM är ett enkelt men ändå kraftfullt sätt att lagra data ihållande på en Raspberry Pi. Om du Datavoggning, lagring av inställningar eller IoT -applikationer, den här guiden ger den grundläggande kunskapen som behövs för att interagera med EEPROM -lagring effektivt. Experimentera med att läsa/skriva större datasätt för att utforska dess fulla potential! 🚀