Folosind EEPROM AT24C256 cu Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

Ul AT24C256 este o EEPROM I2C (Electrically Erasable Programmable Read-Only Memory) care permite Raspberry Pi să stocheze și să preia date chiar și după întreruperea alimentării. Acest ghid explică cum să interacționați AT24C256 cu Raspberry Pi, inclusiv cablarea, activarea I2C și citirea/scrierea datelor folosind Python.


De ce veți avea nevoie

  1. Zmeura Pi (orice model cu suport GPIO și I2C, de exemplu, Pi 3, Pi 4)
  2. AT24C256 Modulul EEPROM
  3. Breadboard și Jumper Wires
  4. Python instalat pe Raspberry Pi

Pasul 1: Cablarea AT24C256 la Raspberry Pi

AT24C256 comunică folosind Protocolul I2C.

Conexiuni

AT24C256 Pin Raspberry Pi Pin
VCC 3.3V (Pin 1)
GND Sol (Pin 6)
SDA SDA (Pin 3, GPIO2)
SCL SCL (Pin 5, GPIO3)
WP (Scrie Protejează) GND (Dezactivați protecția la scriere)

Pasul 2: Activați I2C pe Raspberry Pi

  1. Deschideți instrumentul de configurare Raspberry Pi:
    sudo raspi-config
    
  2. Navigați la Opțiuni de interfață > I2C și activați-l.
  3. Reporniți Raspberry Pi:
    sudo reboot
    

Pasul 3: Instalați bibliotecile necesare

  1. Actualizați lista de pachete a Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Instalați instrumentele I2C necesare și bibliotecile Python:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Verificați dacă EEPROM AT24C256 este detectată pe magistrala I2C:
    sudo i2cdetect -y 1
    
    EEPROM ar trebui să apară la 0x50 (sau o altă adresă bazată pe configurații de pini A0-A2).

Pasul 4: Citirea și scrierea datelor la AT24C256

AT24C256 stochează datele în 256KB de memorie, iar fiecare octet este accesat folosind adresa sa de memorie.

Scrierea datelor în 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!")

Citirea datelor de la 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)}")

Pasul 5: Aplicații ale AT24C256

  1. Data Logging: Stocați datele senzorilor în timp pentru acces offline.
  2. Stocare configurație: Salvați setările de sistem sau datele de calibrare.
  3. Autentificare securizată: Stocați chei criptate sau tokenuri de autentificare.
  4. Proiecte IoT: Activați stocarea persistentă pentru aplicațiile Internet of Things.

Depanare

  1. EEPROM Nu a fost detectat:

    • Verificaţi cablarea şi confirmaţi conexiunile SDA/SCL.
    • Alergare sudo i2cdetect -y 1 pentru verificarea adresei I2C a EEPROMgements.
  2. Operațiuni de citire/scriere incorecte:

    • Asigura Scrie Protect (WP) este împământat pentru a permite scrierea.
    • Introducerea întârzierilor (time.sleep(0.05)) pentru a permite finalizarea operaţiunilor de scriere ale EEPROM.
  3. Erori de comunicare I2C:

    • Verificaţi adresele I2C aflate în conflict în autobuz.
    • Asigura smbus2 este instalat corect folosind pip3 install smbus2.

Concluzie

AT24C256 EEPROM este un mod simplu, dar puternic de a stocați datele în mod persistent pe un Raspberry Pi. Fie că este vorba de înregistrarea datelor, setările de stocare sau aplicațiile IoT, acest ghid oferă cunoștințele de bază necesare pentru a interacționa eficient cu stocarea EEPROM. Experimentați cu citirea/scrierea seturilor de date mai mari pentru a explora întregul potențial al acestuia! 🚀

Lasă un comentariu

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.