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
- Raspberry Pi (Anumang modelo na may suporta sa GPIO at I2C, hal., PI 3, PI 4)
- AT24C256 EEPROM MODULE
- Mga wire ng tinapay at jumper
- 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
- Buksan ang tool ng pagsasaayos ng Raspberry Pi:
sudo raspi-config
- Mag -navigate sa Mga pagpipilian sa interface> i2c at paganahin ito.
- I -reboot ang Raspberry Pi:
sudo reboot
Hakbang 3: I -install ang mga kinakailangang aklatan
- I -update ang listahan ng package ng Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- I -install ang kinakailangang mga tool ng I2C at mga aklatan ng Python:
sudo apt install -y i2c-tools python3-smbus
- Patunayan na ang AT24C256 EEPROM ay napansin sa I2C bus:
Ang EEPROM ay dapat lumitaw sa 0x50 (o isa pang address batay sa mga pagsasaayos ng A0-A2 PIN).sudo i2cdetect -y 1
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
- Pag -log ng Data: Store sensor data sa paglipas ng panahon para sa offline na pag -access.
- Imbakan ng pagsasaayos: I -save ang mga setting ng system o data ng pagkakalibrate.
- Ligtas na pagpapatunay: Tindahan ang naka -encrypt na mga key o mga token ng pagpapatunay.
- Mga proyekto ng IoT: Paganahin ang patuloy na imbakan para sa mga aplikasyon ng Internet of Things.
Pag -aayos
-
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.
-
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.
-
Mga error sa komunikasyon ng I2C:
- Suriin para sa magkasalungat na mga address ng I2C sa bus.
- Matiyak
smbus2
ay maayos na naka -install gamitpip3 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! 🚀