Usando l'EEPROM AT24C256 con il Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

IL AT24C256 è un EEPROM I2C (memoria programmabile di sola lettura abilitabile elettricamente) che consente a Raspberry Pi di archiviare e recuperare i dati anche dopo la perdita di potenza. Questa guida spiega come interfacciarsi il AT24C256 Con Raspberry Pi, inclusi cablaggio, abilitazione I2C e dati di lettura/scrittura utilizzando Python.


Cosa avrai bisogno

  1. Raspberry Pi (Qualsiasi modello con supporto GPIO e I2C, ad esempio PI 3, PI 4)
  2. Modulo EEPROM AT24C256
  3. Breadboard e fili jumper
  4. Python installato Sul Raspberry Pi

Passaggio 1: cablaggio dell'AT24C256 a Raspberry Pi

L'AT24C256 comunica usando il Protocollo I2C.

Connessioni

Pin AT24C256 Pin di lampone
VCC 3.3V (pin 1)
GND Terra (pin 6)
SDA SDA (PIN 3, GPIO2)
SCL SCL (PIN 5, GPIO3)
WP (Write Protect) GND (Disabilita protezione da scrittura)

Passaggio 2: abilita i2c su Raspberry Pi

  1. Apri lo strumento di configurazione Raspberry Pi:
    sudo raspi-config
    
  2. Navigare a Opzioni di interfaccia> i2c e abilitarlo.
  3. Riavvia il Raspberry Pi:
    sudo reboot
    

Passaggio 3: installa le librerie richieste

  1. Aggiorna l'elenco dei pacchetti di Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installa gli strumenti I2C necessari e le librerie Python:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Verificare che l'EEPROM AT24C256 sia rilevato sul bus I2C:
    sudo i2cdetect -y 1
    
    L'Eeprom dovrebbe apparire a 0x50 (o un altro indirizzo in base alle configurazioni del pin A0-A2).

Passaggio 4: leggere e scrivere dati su AT24C256

AT24C256 memorizza i dati in 256 kb di memoriae si accede a ciascun byte utilizzando il suo indirizzo di memoria.

Scrivere dati su 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!")

Leggere i dati da 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)}")

Passaggio 5: applicazioni dell'AT24C256

  1. Registrazione dei dati: Archiviare i dati del sensore nel tempo per l'accesso offline.
  2. Archiviazione di configurazione: Salva impostazioni di sistema o dati di calibrazione.
  3. Autenticazione sicura: Memorizzare chiavi crittografate o token di autenticazione.
  4. Progetti IoT: Abilita l'archiviazione persistente per le applicazioni Internet of Things.

Risoluzione dei problemi

  1. Eeprom non rilevato:

    • Controllare il cablaggio e confermare le connessioni SDA/SCL.
    • Correre sudo i2cdetect -y 1 Per verificare l'indirizzo I2C dell'EEPROM.
  2. Operazioni di lettura/scrittura errate:

    • Garantire Write Protect (WP) È a terra per consentire la scrittura.
    • Introdurre ritardi (time.sleep(0.05)) per consentire il completamento delle operazioni di scrittura EEPROM.
  3. Errori di comunicazione i2C:

    • Controlla gli indirizzi I2C in conflitto sul bus.
    • Garantire smbus2 è correttamente installato utilizzando pip3 install smbus2.

Conclusione

L'EEPROM AT24C256 è un modo semplice ma potente archiviare i dati in modo persistente su un Raspberry Pi. Sia per Registrazione dei dati, impostazioni di archiviazione o applicazioni IoT, questa guida fornisce le conoscenze fondamentali necessarie per interagire efficacemente con l'archiviazione EEPROM. Sperimenta la lettura/la scrittura di set di dati più grandi per esplorare il suo pieno potenziale! 🚀

Lascia un commento

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.