Usando o AT24C256 EEPROM com o Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

AT24C256 é um I2C EEPROM (memória programável eletricamente apagável) que permite ao Raspberry Pi armazenar e recuperar dados mesmo após a perda de energia. Este guia explica como interface o AT24C256 com o Raspberry Pi, incluindo fiação, habilitando o I2C e a leitura/escrita de dados usando o Python.


O que você precisará

  1. Raspberry Pi (Qualquer modelo com suporte GPIO e I2C, por exemplo, PI 3, PI 4)
  2. Módulo AT24C256 EEPROM
  3. Fios de pão e jumper
  4. Python instalado No Raspberry Pi

Etapa 1: Fiação do AT24C256 para o Raspberry Pi

O AT24C256 se comunica usando o Protocolo I2C.

Conexões

AT24C256 PIN Pino de framboesa pi
VCC 3.3V (pino 1)
Gnd Terra (pino 6)
SDA SDA (pino 3, gpio2)
SCL SCL (pino 5, gpio3)
WP (Write Protect) GND (desativar proteção de gravação)

Etapa 2: Ativar I2C no Raspberry Pi

  1. Abra a ferramenta de configuração do Raspberry Pi:
    sudo raspi-config
    
  2. Navegar para Opções de interface> i2c e ativá -lo.
  3. Reinicie o Raspberry Pi:
    sudo reboot
    

Etapa 3: Instale as bibliotecas necessárias

  1. Atualize a lista de pacotes do Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Instale as ferramentas i2C necessárias e as bibliotecas Python:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Verifique se o AT24C256 EEPROM é detectado no barramento i2C:
    sudo i2cdetect -y 1
    
    A EEPROM deve aparecer em 0x50 (ou outro endereço com base nas configurações do pino A0-A2).

Etapa 4: Ler e escrevendo dados para o AT24C256

Os AT24C256 armazena dados em 256kb de memóriae cada byte é acessado usando seu endereço de memória.

Escrevendo dados para a 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!")

Lendo dados 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)}")

Etapa 5: Aplicações do AT24C256

  1. Registro de dados: Armazene os dados do sensor ao longo do tempo para acesso offline.
  2. Armazenamento de configuração: Salvar configurações do sistema ou dados de calibração.
  3. Autenticação segura: Armazene chaves criptografadas ou tokens de autenticação.
  4. Projetos de IoT: Habilite o armazenamento persistente para aplicativos da Internet das Coisas.

Solução de problemas

  1. EEPROM não detectado:

    • Verifique a fiação e confirme as conexões SDA/SCL.
    • Correr sudo i2cdetect -y 1 Para verificar o endereço I2C da EEPROM.
  2. Operações de leitura/gravação incorretas:

    • Garantir Write Protect (WP) é de castigo Para ativar a escrita.
    • Introduzir atrasos (time.sleep(0.05)) para permitir a conclusão das operações de gravação da EEPROM.
  3. Erros de comunicação i2c:

    • Verifique se há endereços I2C conflitantes no barramento.
    • Garantir smbus2 é instalado corretamente usando pip3 install smbus2.

Conclusão

A EEPROM AT24C256 é uma maneira simples, mas poderosa de armazenar dados persistentemente em um Raspberry Pi. Seja para Registro de dados, armazenamento de configurações ou aplicativos de IoT, este guia fornece o conhecimento fundamental necessário para interagir com o armazenamento da EEPROM de maneira eficaz. Experimente a leitura/escrita de conjuntos de dados maiores para explorar todo o seu potencial! 🚀

Deixe um comentário

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.