THE AT24C256 הוא I2C EEPROM (זיכרון לקריאה בלבד שניתן לחיוקה חשמלית) המאפשר ל- Raspberry Pi לאחסן ולאחזר נתונים גם לאחר אובדן חשמל. מדריך זה מסביר כיצד לממשק את AT24C256 עם ה- Raspberry Pi, כולל חיווט, הפעלת I2C וקריאה/כתיבת נתונים באמצעות Python.
מה תצטרך
- Raspberry Pi (כל דגם עם תמיכה ב- GPIO ו- I2C, למשל, pi 3, pi 4)
- AT24C256 מודול EEPROM
- חוטי לחם וגשר
- פיתון מותקן על ה- Raspberry Pi
שלב 1: חיווט AT24C256 ל- Raspberry Pi
ה- AT24C256 מתקשר באמצעות פרוטוקול I2C.
חיבורים
AT24C256 PIN | סיכת פטל pi |
---|---|
VCC | 3.3 וולט (סיכה 1) |
GND | קרקע (סיכה 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (סיכה 5, GPIO3) |
WP (כתוב הגנה) | GND (השבת הגנת כתיבה) |
שלב 2: הפעל את i2c ב- Raspberry Pi
- פתח את כלי התצורה של Raspberry Pi:
sudo raspi-config
- נווט אל אפשרויות ממשק> i2c ולאפשר את זה.
- אתחל מחדש את ה- Raspberry Pi:
sudo reboot
שלב 3: התקן ספריות נדרשות
- עדכן את רשימת החבילות של Raspberry Pi שלך:
sudo apt update && sudo apt upgrade -y
- התקן את כלי ה- I2C והספריות הפיתון הדרושים:
sudo apt install -y i2c-tools python3-smbus
- ודא שה- AT24C256 EEPROM מתגלה באוטובוס I2C:
ה- EEPROM אמור להופיע ב 0x50 (או כתובת אחרת המבוססת על תצורות סיכה A0-A2).sudo i2cdetect -y 1
שלב 4: קריאה וכתיבת נתונים ל- AT24C256
ה- AT24C256 מאחסן נתונים ב זיכרון 256KB, וכל בייט ניגש באמצעות כתובת הזיכרון שלו.
כתיבת נתונים ל- 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!")
קריאת נתונים מ- 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)}")
שלב 5: יישומים של AT24C256
- רישום נתונים: אחסן נתוני חיישנים לאורך זמן לגישה לא מקוונת.
- אחסון תצורה: שמור הגדרות מערכת או נתוני כיול.
- אימות מאובטח: אחסן מפתחות מוצפנים או אסימוני אימות.
- פרויקטים של IoT: אפשר אחסון מתמשך ליישומי אינטרנט של דברים.
פתרון בעיות
-
EEPROM לא זוהה:
- בדוק חיווט ואשר חיבורי SDA/SCL.
- לָרוּץ
sudo i2cdetect -y 1
כדי לאמת את כתובת ה- I2C של EEPROM.
-
פעולות קריאה/כתיבה שגויות:
- לְהַבטִיחַ כתוב Protect (WP) הוא מוּאֲרָק לאפשר כתיבה.
- להציג עיכובים (
time.sleep(0.05)
) כדי לאפשר להשלמת פעולות כתיבת EEPROM.
-
שגיאות תקשורת I2C:
- בדוק אם יש כתובות I2C מנוגדות באוטובוס.
- לְהַבטִיחַ
smbus2
מותקן כראוי באמצעותpip3 install smbus2
.
מַסְקָנָה
ה- AT24C256 EEPROM הוא דרך פשוטה ועם זאת חזקה לאחסן נתונים בהתמדה על פטל pi. אם עבור רישום נתונים, אחסון הגדרות או יישומי IoTמדריך זה מספק את הידע היסודי הדרוש לאינטראקציה עם אחסון EEPROM בצורה יעילה. התנסו בקריאה/כתיבת מערכי נתונים גדולים יותר כדי לחקור את מלוא הפוטנציאל שלה! 🚀