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
- Zmeura Pi (orice model cu suport GPIO și I2C, de exemplu, Pi 3, Pi 4)
- AT24C256 Modulul EEPROM
- Breadboard și Jumper Wires
- 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
- Deschideți instrumentul de configurare Raspberry Pi:
sudo raspi-config
- Navigați la Opțiuni de interfață > I2C și activați-l.
- Reporniți Raspberry Pi:
sudo reboot
Pasul 3: Instalați bibliotecile necesare
- Actualizați lista de pachete a Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Instalați instrumentele I2C necesare și bibliotecile Python:
sudo apt install -y i2c-tools python3-smbus
- Verificați dacă EEPROM AT24C256 este detectată pe magistrala I2C:
EEPROM ar trebui să apară la 0x50 (sau o altă adresă bazată pe configurații de pini A0-A2).sudo i2cdetect -y 1
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
- Data Logging: Stocați datele senzorilor în timp pentru acces offline.
- Stocare configurație: Salvați setările de sistem sau datele de calibrare.
- Autentificare securizată: Stocați chei criptate sau tokenuri de autentificare.
- Proiecte IoT: Activați stocarea persistentă pentru aplicațiile Internet of Things.
Depanare
-
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.
-
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.
-
Erori de comunicare I2C:
- Verificaţi adresele I2C aflate în conflict în autobuz.
- Asigura
smbus2
este instalat corect folosindpip3 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! 🚀