Gamit ang AT24C256 EEPROM kasama ang Raspberry Pi

Using the AT24C256 EEPROM with the Raspberry Pi

Ang AT24C256 ay isang I2C EEPROM (electrically erasable programmable read-only memory) na nagbibigay-daan sa Raspberry Pi na mag-imbak at makuha ang data kahit na matapos ang pagkawala ng kuryente. Ipinapaliwanag ng gabay na ito kung paano i -interface ang AT24C256 kasama ang Raspberry Pi, kabilang ang mga kable, pagpapagana ng I2C, at data ng pagbabasa/pagsulat gamit ang Python.


Ano ang kakailanganin mo

  1. Raspberry Pi (Anumang modelo na may suporta sa GPIO at I2C, hal., PI 3, PI 4)
  2. AT24C256 EEPROM MODULE
  3. Mga wire ng tinapay at jumper
  4. Naka -install ang Python Sa Raspberry Pi

Hakbang 1: Ang mga kable ng AT24C256 sa Raspberry Pi

Ang AT24C256 ay nakikipag -usap gamit ang I2C Protocol.

Mga koneksyon

AT24C256 PIN Raspberry Pi Pin
VCC 3.3v (pin 1)
Gnd Ground (pin 6)
SDA SDA (PIN 3, GPIO2)
SCL SCL (Pin 5, GPIO3)
Wp (isulat ang protektahan) GND (huwag paganahin ang proteksyon sa pagsulat)

Hakbang 2: Paganahin ang I2C sa Raspberry Pi

  1. Buksan ang tool ng pagsasaayos ng Raspberry Pi:
    sudo raspi-config
    
  2. Mag -navigate sa Mga pagpipilian sa interface> i2c at paganahin ito.
  3. I -reboot ang Raspberry Pi:
    sudo reboot
    

Hakbang 3: I -install ang mga kinakailangang aklatan

  1. I -update ang listahan ng package ng Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. I -install ang kinakailangang mga tool ng I2C at mga aklatan ng Python:
    sudo apt install -y i2c-tools python3-smbus
    
  3. Patunayan na ang AT24C256 EEPROM ay napansin sa I2C bus:
    sudo i2cdetect -y 1
    
    Ang EEPROM ay dapat lumitaw sa 0x50 (o isa pang address batay sa mga pagsasaayos ng A0-A2 PIN).

Hakbang 4: Ang data ng pagbabasa at pagsulat sa AT24C256

Ang AT24C256 ay nag -iimbak ng data sa 256kb ng memorya, at ang bawat byte ay na -access gamit ang memory address nito.

Pagsulat ng data sa 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!")

Pagbasa ng data mula sa 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)}")

Hakbang 5: Mga Aplikasyon ng AT24C256

  1. Pag -log ng Data: Store sensor data sa paglipas ng panahon para sa offline na pag -access.
  2. Imbakan ng pagsasaayos: I -save ang mga setting ng system o data ng pagkakalibrate.
  3. Ligtas na pagpapatunay: Tindahan ang naka -encrypt na mga key o mga token ng pagpapatunay.
  4. Mga proyekto ng IoT: Paganahin ang patuloy na imbakan para sa mga aplikasyon ng Internet of Things.

Pag -aayos

  1. Hindi napansin ng eeprom:

    • Suriin ang mga kable at kumpirmahin ang mga koneksyon sa SDA/SCL.
    • Tumakbo sudo i2cdetect -y 1 Upang mapatunayan ang address ng I2C ng EEPROM.
  2. Maling basahin/isulat ang mga operasyon:

    • Matiyak Sumulat ng Proteksyon (WP) ay grounded upang paganahin ang pagsulat.
    • Ipakilala ang mga pagkaantala (time.sleep(0.05)) upang payagan ang EEPROM na magsulat ng mga operasyon upang makumpleto.
  3. Mga error sa komunikasyon ng I2C:

    • Suriin para sa magkasalungat na mga address ng I2C sa bus.
    • Matiyak smbus2 ay maayos na naka -install gamit pip3 install smbus2.

Konklusyon

Ang AT24C256 EEPROM ay isang simple ngunit malakas na paraan upang Patuloy na mag -imbak ng data Sa isang Raspberry Pi. Kung para sa Ang pag -log ng data, pag -iimbak ng mga setting, o mga aplikasyon ng IoT, ang gabay na ito ay nagbibigay ng kaalaman sa pundasyon na kinakailangan upang makipag -ugnay sa EEPROM na imbakan nang epektibo. Eksperimento sa pagbabasa/pagsulat ng mas malaking mga datasets upang galugarin ang buong potensyal nito! 🚀

Mag -iwan ng komento

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.