Le At24c256 est une EEPROM I2C (mémoire en lecture seule programmable effacée électriquement) qui permet au Raspberry Pi de stocker et de récupérer les données même après une perte de puissance. Ce guide explique comment interfacer le At24c256 avec le Raspberry Pi, y compris le câblage, l'activation des données I2C et la lecture / écriture à l'aide de Python.
Ce dont vous aurez besoin
- Raspberry Pi (Tout modèle avec le support GPIO et I2C, par exemple, PI 3, PI 4)
- Module EEPROM AT24C256
- Fils de planche à pain et de cavalier
- Python installé sur le Raspberry Pi
Étape 1: Câblage de l'AT24C256 au Raspberry Pi
L'AT24C256 communique en utilisant le Protocole I2C.
Relations
PIN AT24C256 | Pin de framboise PI |
---|---|
VCC | 3.3V (broche 1) |
GND | Terre (broche 6) |
SDA | SDA (broche 3, gpio2) |
SCL | SCL (broche 5, gpio3) |
WP (Write Protect) | GND (désactiver la protection de l'écriture) |
Étape 2: Activer I2C sur le Raspberry Pi
- Ouvrez l'outil de configuration Raspberry Pi:
sudo raspi-config
- Se diriger vers Options d'interface> I2C et l'activer.
- Redémarrez le Raspberry Pi:
sudo reboot
Étape 3: Installez les bibliothèques requises
- Mettez à jour la liste des packages de votre Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installez les outils I2C et les bibliothèques Python nécessaires:
sudo apt install -y i2c-tools python3-smbus
- Vérifiez que l'EEPROM AT24C256 est détectée sur le bus I2C:
L'EEPROM devrait apparaître à 0x50 (ou une autre adresse basée sur des configurations de broches A0-A2).sudo i2cdetect -y 1
Étape 4: Lecture et rédaction de données sur l'AT24C256
L'AT24C256 stocke les données dans 256 Ko de mémoireet chaque octet est accessible en utilisant son adresse mémoire.
Écrire des données à 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!")
La lecture des données d'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)}")
Étape 5: Applications de l'AT24C256
- Journalisation des données: Stockez les données du capteur au fil du temps pour un accès hors ligne.
- Stockage de configuration: Enregistrer les paramètres du système ou les données d'étalonnage.
- Authentification sécurisée: Stocker des clés cryptées ou des jetons d'authentification.
- Projets IoT: Activer le stockage persistant pour les applications Internet des objets.
Dépannage
-
Eeprom non détecté:
- Vérifiez le câblage et confirmez les connexions SDA / SCL.
- Courir
sudo i2cdetect -y 1
Pour vérifier l'adresse I2C de l'EEPROM.
-
Opérations de lecture / écriture incorrectes:
- Assurer Écrire Protect (WP) est fondé pour permettre l'écriture.
- Introduire les retards (
time.sleep(0.05)
) pour permettre aux opérations d'écriture EEPROM de terminer.
-
Erreurs de communication I2C:
- Vérifiez les adresses I2C contradictoires dans le bus.
- Assurer
smbus2
est correctement installé en utilisantpip3 install smbus2
.
Conclusion
L'EEPROM AT24C256 est un moyen simple mais puissant de stocker les données de manière persistante Sur un Raspberry Pi. Si pour Loguement de données, stockage des paramètres ou applications IoT, Ce guide fournit les connaissances fondamentales nécessaires pour interagir efficacement avec le stockage de l'EEPROM. Expérimentez avec la lecture / rédaction d'ensembles de données plus grands pour explorer son plein potentiel! 🚀