. AT24C256 to EEPROM I2C (elektrycznie wymazująca programowalna pamięć tylko do odczytu), która pozwala Raspberry Pi przechowywać i pobieranie danych nawet po utracie mocy. Ten przewodnik wyjaśnia, jak połączyć się AT24C256 Z Raspberry Pi, w tym okablowaniem, włączaniem I2C oraz odczytaniem/pisaniem danych za pomocą Pythona.
Czego będziesz potrzebować
- Raspberry Pi (Każdy model z obsługą GPIO i I2C, np. PI 3, PI 4)
- AT24C256 Moduł EEPROM
- Druty chleba i skoczków
- Zainstalowany Python na Raspberry Pi
Krok 1: Okablowanie AT24C256 do Raspberry Pi
AT24C256 komunikuje się za pomocą Protokół I2C.
Znajomości
AT24C256 PIN | Pin Raspberry Pi |
---|---|
VCC | 3,3 V (pin 1) |
GND | Uziemienie (pin 6) |
SDA | SDA (pin 3, GPIO2) |
Scl | SCL (pin 5, GPIO3) |
WP (zapisz ochronę) | GND (wyłącz ochronę zapisu) |
Krok 2: Włącz I2C na Raspberry Pi
- Otwórz narzędzie konfiguracyjne Raspberry Pi:
sudo raspi-config
- Przejść do Opcje interfejsu> i2c i włącz to.
- Uruchom ponownie Raspberry Pi:
sudo reboot
Krok 3: Zainstaluj wymagane biblioteki
- Zaktualizuj listę pakietów Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Zainstaluj niezbędne narzędzia I2C i biblioteki Python:
sudo apt install -y i2c-tools python3-smbus
- Sprawdź, czy EEPROM AT24C256 jest wykrywany w magistrali I2C:
EEPROM powinien pojawić się w 0x50 (lub inny adres oparty na konfiguracjach PIN A0-A2).sudo i2cdetect -y 1
Krok 4: Czytanie i zapisanie danych do AT24C256
AT24C256 przechowuje dane w 256 kB pamięcii każdy bajt jest dostępny za pomocą adresu pamięci.
Pisanie danych do 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!")
Czytanie danych z 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)}")
Krok 5: Zastosowania AT24C256
- Rejestrowanie danych: Przechowuj dane czujników w czasie, aby uzyskać dostęp offline.
- Pamięć konfiguracji: Zapisz ustawienia systemu lub dane kalibracyjne.
- Bezpieczne uwierzytelnianie: Przechowuj szyfrowane klucze lub tokeny uwierzytelniania.
- Projekty IoT: Włącz trwałe przechowywanie aplikacji Internetu rzeczy.
Rozwiązywanie problemów
-
EEPROM nie został wykryty:
- Sprawdź okablowanie i potwierdź połączenia SDA/SCL.
- Uruchomić
sudo i2cdetect -y 1
Aby zweryfikować adres EEPROM I2C.
-
Nieprawidłowe operacje odczytu/zapisu:
- Zapewnić Zapisz Protect (WP) Jest uziemiony Aby umożliwić pisanie.
- Wprowadź opóźnienia (
time.sleep(0.05)
) Aby umożliwić zakończenie operacji zapisu EEPROM.
-
Błędy komunikacyjne I2C:
- Sprawdź sprzeczne adresy I2C w autobusie.
- Zapewnić
smbus2
jest prawidłowo zainstalowany za pomocąpip3 install smbus2
.
Wniosek
EEPROM AT24C256 to prosty, ale potężny sposób przechowuj dane trwałe Na malinowym pi. Czy dla Rejestrowanie danych, przechowywanie ustawień lub aplikacji IoT, ten przewodnik zapewnia podstawową wiedzę potrzebną do skutecznego interakcji z magazynowaniem EEPROM. Eksperymentuj z czytaniem/pisaniem większych zestawów danych, aby zbadać pełny potencjał! 🚀