Usando el EEPROM AT24C256 con la Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

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

  1. Frambuesa pi (Cualquier modelo con soporte GPIO e I2C, por ejemplo, PI 3, PI 4)
  2. AT24C256 Módulo EEPROM
  3. Cables de placa y jersey
  4. 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

  1. Abra la herramienta de configuración de Raspberry Pi:
    sudo raspi-config
    
  2. Navegar por Opciones de interfaz> I2C y habilitarlo.
  3. Reinicie la Raspberry Pi:
    sudo reboot
    

Paso 3: Instale las bibliotecas requeridas

  1. Actualice la lista de paquetes de su Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Instale las herramientas I2C necesarias y las bibliotecas de Python:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Verifique que el EEPROM AT24C256 se detecte en el bus I2C:
    sudo i2cdetect -y 1
    
    El EEPROM debe aparecer en 0x50 (u otra dirección basada en configuraciones PIN A0-A2).

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

  1. Registro de datos: Almacene los datos del sensor con el tiempo para el acceso fuera de línea.
  2. Almacenamiento de configuración: Guardar configuraciones del sistema o datos de calibración.
  3. Autenticación segura: Almacenar claves cifradas o tokens de autenticación.
  4. Proyectos de IoT: Habilite el almacenamiento persistente para aplicaciones de Internet de las cosas.

Solución de problemas

  1. 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.
  2. 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.
  3. Errores de comunicación I2C:

    • Verifique las direcciones I2C conflictivas en el autobús.
    • Asegurar smbus2 se instala correctamente utilizando pip3 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! 🚀

Escribir un comentario

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.