Za pomocą EEPROM AT24C256 z Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

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ć

  1. Raspberry Pi (Każdy model z obsługą GPIO i I2C, np. PI 3, PI 4)
  2. AT24C256 Moduł EEPROM
  3. Druty chleba i skoczków
  4. 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

  1. Otwórz narzędzie konfiguracyjne Raspberry Pi:
    sudo raspi-config
    
  2. Przejść do Opcje interfejsu> i2c i włącz to.
  3. Uruchom ponownie Raspberry Pi:
    sudo reboot
    

Krok 3: Zainstaluj wymagane biblioteki

  1. Zaktualizuj listę pakietów Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Zainstaluj niezbędne narzędzia I2C i biblioteki Python:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Sprawdź, czy EEPROM AT24C256 jest wykrywany w magistrali I2C:
    sudo i2cdetect -y 1
    
    EEPROM powinien pojawić się w 0x50 (lub inny adres oparty na konfiguracjach PIN A0-A2).

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

  1. Rejestrowanie danych: Przechowuj dane czujników w czasie, aby uzyskać dostęp offline.
  2. Pamięć konfiguracji: Zapisz ustawienia systemu lub dane kalibracyjne.
  3. Bezpieczne uwierzytelnianie: Przechowuj szyfrowane klucze lub tokeny uwierzytelniania.
  4. Projekty IoT: Włącz trwałe przechowywanie aplikacji Internetu rzeczy.

Rozwiązywanie problemów

  1. EEPROM nie został wykryty:

    • Sprawdź okablowanie i potwierdź połączenia SDA/SCL.
    • Uruchomić sudo i2cdetect -y 1 Aby zweryfikować adres EEPROM I2C.
  2. 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.
  3. 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ł! 🚀

Zostaw komentarz

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.