Använda AT24C256 EEPROM med Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

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

  1. Hallon (Varje modell med GPIO och I2C -stöd, t.ex. PI 3, PI 4)
  2. AT24C256 EEPROM -modul
  3. Breadboard och jumpertrådar
  4. 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

  1. Öppna Raspberry PI -konfigurationsverktyget:
    sudo raspi-config
    
  2. Navigera till Gränssnittsalternativ> i2c och aktivera det.
  3. Starta om Raspberry Pi:
    sudo reboot
    

Steg 3: Installera obligatoriska bibliotek

  1. Uppdatera din Raspberry Pis paketlista:
    sudo apt update && sudo apt upgrade -y
    
  2. Installera de nödvändiga I2C -verktygen och Python -bibliotek:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Kontrollera att AT24C256 EEPROM upptäcks på I2C -bussen:
    sudo i2cdetect -y 1
    
    EEPROM bör dyka upp på 0x50 (eller en annan adress baserad på A0-A2-stiftkonfigurationer).

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

  1. Dataloggning: Lagra sensordata över tid för offlineåtkomst.
  2. Konfigurationslagring: Spara systeminställningar eller kalibreringsdata.
  3. Säker autentisering: Lagra krypterade nycklar eller autentiseringstokens.
  4. IoT -projekt: Aktivera ihållande lagring för Internet of Things -applikationer.

Felsökning

  1. 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.
  2. 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.
  3. I2C -kommunikationsfel:

    • Kontrollera om det är motstridiga I2C -adresser på bussen.
    • Säkerställa smbus2 är korrekt installerad med pip3 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! 🚀

Lämna en 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.