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
- Raspberry Pi (Qualsiasi modello con supporto GPIO e I2C, ad esempio PI 3, PI 4)
- Modulo EEPROM AT24C256
- Breadboard e fili jumper
- 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
- Apri lo strumento di configurazione Raspberry Pi:
sudo raspi-config
- Navigare a Opzioni di interfaccia> i2c e abilitarlo.
- Riavvia il Raspberry Pi:
sudo reboot
Passaggio 3: installa le librerie richieste
- Aggiorna l'elenco dei pacchetti di Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installa gli strumenti I2C necessari e le librerie Python:
sudo apt install -y i2c-tools python3-smbus
- Verificare che l'EEPROM AT24C256 sia rilevato sul bus I2C:
L'Eeprom dovrebbe apparire a 0x50 (o un altro indirizzo in base alle configurazioni del pin A0-A2).sudo i2cdetect -y 1
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
- Registrazione dei dati: Archiviare i dati del sensore nel tempo per l'accesso offline.
- Archiviazione di configurazione: Salva impostazioni di sistema o dati di calibrazione.
- Autenticazione sicura: Memorizzare chiavi crittografate o token di autenticazione.
- Progetti IoT: Abilita l'archiviazione persistente per le applicazioni Internet of Things.
Risoluzione dei problemi
-
Eeprom non rilevato:
- Controllare il cablaggio e confermare le connessioni SDA/SCL.
- Correre
sudo i2cdetect -y 1
Per verificare l'indirizzo I2C dell'EEPROM.
-
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.
-
Errori di comunicazione i2C:
- Controlla gli indirizzi I2C in conflitto sul bus.
- Garantire
smbus2
è correttamente installato utilizzandopip3 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! 🚀