El AT24C256 es un I2C EEPROM (memoria de solo lectura programable eléctricamente borrable) que permite que la Raspberry Pi almacene y recupere datos incluso después de la pérdida de energía. Esta guía explica cómo interactuar el AT24C256 Con Raspberry Pi, que incluye cableado, habilitando I2C y lectura/escritura de datos utilizando Python.
Lo que necesitarás
- Frambuesa pi (Cualquier modelo con soporte GPIO e I2C, por ejemplo, PI 3, PI 4)
- AT24C256 Módulo EEPROM
- Cables de placa y jersey
- Python instalado en la frambuesa pi
Paso 1: Cableado el AT24C256 al Raspberry Pi
El AT24C256 se comunica usando el Protocolo I2C.
Conexión
AT24C256 PIN | Pin de frambuesa Pi |
---|---|
VCC | 3.3V (pin 1) |
Gnd | Tierra (pin 6) |
SDA | SDA (pin 3, GPIO2) |
SCL | SCL (pin 5, GPIO3) |
WP (Write Protect) | GND (deshabilitar la protección de escritura) |
Paso 2: Habilite I2C en la Raspberry Pi
- Abra la herramienta de configuración de Raspberry Pi:
sudo raspi-config
- Navegar por Opciones de interfaz> I2C y habilitarlo.
- Reinicie la Raspberry Pi:
sudo reboot
Paso 3: Instale las bibliotecas requeridas
- Actualice la lista de paquetes de su Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Instale las herramientas I2C necesarias y las bibliotecas de Python:
sudo apt install -y i2c-tools python3-smbus
- Verifique que el EEPROM AT24C256 se detecte en el bus I2C:
El EEPROM debe aparecer en 0x50 (u otra dirección basada en configuraciones PIN A0-A2).sudo i2cdetect -y 1
Paso 4: Leer y escribir datos al AT24C256
El AT24C256 almacena datos en 256 kb de memoria, y se accede a cada byte utilizando su dirección de memoria.
Escribir datos para 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!")
Lectura de datos de 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)}")
Paso 5: Aplicaciones del AT24C256
- Registro de datos: Almacene los datos del sensor con el tiempo para el acceso fuera de línea.
- Almacenamiento de configuración: Guardar configuraciones del sistema o datos de calibración.
- Autenticación segura: Almacenar claves cifradas o tokens de autenticación.
- Proyectos de IoT: Habilite el almacenamiento persistente para aplicaciones de Internet de las cosas.
Solución de problemas
-
EEPROM no detectado:
- Verifique el cableado y confirme las conexiones SDA/SCL.
- Correr
sudo i2cdetect -y 1
Para verificar la dirección I2C de la EEPROM.
-
Operaciones de lectura/escritura incorrectas:
- Asegurar Protección de escritura (WP) es conectado a tierra para habilitar la escritura.
- Introducir retrasos (
time.sleep(0.05)
) para permitir que las operaciones de escritura de EEPROM se completen.
-
Errores de comunicación I2C:
- Verifique las direcciones I2C conflictivas en el autobús.
- Asegurar
smbus2
se instala correctamente utilizandopip3 install smbus2
.
Conclusión
El AT24C256 EEPROM es una forma simple pero poderosa de almacenar datos de manera persistente En una frambuesa Pi. Ya sea para Registro de datos, configuraciones de almacenamiento o aplicaciones IoT, esta guía proporciona el conocimiento fundamental necesario para interactuar con el almacenamiento de EEPROM de manera efectiva. ¡Experimente con la lectura/redacción de conjuntos de datos más grandes para explorar todo su potencial! 🚀