De AT24C256 is een I2C EEPROM (elektrisch uitwisbaar programmeerbaar alleen-lezen geheugen) waarmee de Raspberry Pi gegevens kan opslaan en ophalen, zelfs na stroomverlies. Deze gids legt uit hoe u de AT24C256 Met de Raspberry Pi, inclusief bedrading, het inschakelen van I2C en het lezen/schrijven van gegevens met behulp van Python.
Wat u nodig hebt
- Raspberry Pi (Elk model met GPIO- en I2C -ondersteuning, bijvoorbeeld PI 3, PI 4)
- AT24C256 EEPROM -module
- Breadboard en jumper draden
- Python geïnstalleerd Op de Raspberry Pi
Stap 1: De AT24C256 bedraden naar de Raspberry Pi
De AT24C256 communiceert met behulp van de I2C -protocol.
Verbindingen
AT24C256 PIN | Raspberry Pi Pin |
---|---|
VCC | 3.3V (pin 1) |
GND | Grond (pin 6) |
SDA | SDA (Pin 3, GPIO2) |
SCL | SCL (Pin 5, GPIO3) |
WP (Write Protect) | GND (uitschakelen schrijfbeveiliging) |
Stap 2: Schakel I2C in op de Raspberry Pi
- Open de Raspberry Pi -configuratie -tool:
sudo raspi-config
- Navigeren naar Interface -opties> I2C en schakel het in.
- Start de Raspberry Pi opnieuw op:
sudo reboot
Stap 3: Installeer vereiste bibliotheken
- Update de pakketlijst van uw Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installeer de benodigde I2C -tools en Python -bibliotheken:
sudo apt install -y i2c-tools python3-smbus
- Controleer of de AT24C256 EEPROM wordt gedetecteerd op de I2C -bus:
De eeprom zou moeten verschijnen op 0x50 (of een ander adres op basis van A0-A2 PIN-configuraties).sudo i2cdetect -y 1
Stap 4: Gegevens lezen en schrijven naar de AT24C256
De AT24C256 slaat gegevens op in 256 kb geheugen, en elke byte is toegankelijk met zijn geheugenadres.
Gegevens schrijven naar 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!")
Gegevens lezen van 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)}")
Stap 5: Toepassingen van de AT24C256
- Gegevenslogboekregistratie: Sensorgegevens opslaan in de loop van de tijd voor offline toegang.
- Configuratieopslag: Systeeminstellingen of kalibratiegegevens opslaan.
- Veilige authenticatie: Bewaar gecodeerde toetsen of authenticatietokens.
- IoT -projecten: Schakel persistente opslag in voor applicaties van internet of dingen.
Problemen oplossen
-
Eeprom niet gedetecteerd:
- Controleer de bedrading en bevestig SDA/SCL -verbindingen.
- Loop
sudo i2cdetect -y 1
Om het I2C -adres van de EEPROM te verifiëren.
-
Onjuiste lees-/schrijfbewerkingen:
- Ervoor zorgen Write Protect (WP) is geaard om schrijven mogelijk te maken.
- Vertragingen introduceren (
time.sleep(0.05)
) om EEPROM -schrijfbewerkingen te laten voltooien.
-
I2C -communicatiefouten:
- Controleer op conflicterende I2C -adressen in de bus.
- Ervoor zorgen
smbus2
is correct geïnstalleerd met behulp vanpip3 install smbus2
.
Conclusie
De AT24C256 EEPROM is een eenvoudige maar krachtige manier om Bewaar gegevens volhardend Op een frambozen pi. Of voor Gegevenslogboekregistratie, instellingen opslaan of IoT -applicaties, deze gids biedt de fundamentele kennis die nodig is om effectief te communiceren met EEPROM -opslag. Experimenteer met het lezen/schrijven van grotere datasets om het volledige potentieel ervan te verkennen! 🚀