ที่ AT24C256 เป็น I2C EEPROM (หน่วยความจำแบบอ่านแบบอ่านได้อย่างเดียวทางไฟฟ้า) ที่ช่วยให้ Raspberry Pi สามารถจัดเก็บและดึงข้อมูลได้แม้หลังจากการสูญเสียพลังงาน คู่มือนี้อธิบายวิธีการเชื่อมต่อไฟล์ AT24C256 ด้วย Raspberry Pi รวมถึงการเดินสายการเปิดใช้งาน I2C และข้อมูลการอ่าน/การเขียนโดยใช้ Python
สิ่งที่คุณต้องการ
- Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO และ I2C เช่น PI 3, PI 4)
- AT24C256 โมดูล EEPROM
- เครื่องหั่นขนมปังและสายจัมเปอร์
- ติดตั้ง Python บนราสเบอร์รี่ pi
ขั้นตอนที่ 1: เดินสาย AT24C256 ไปยังราสเบอร์รี่ PI
AT24C256 สื่อสารโดยใช้ไฟล์ โปรโตคอล I2C.
การเชื่อมต่อ
AT24C256 PIN | Raspberry Pi Pin |
---|---|
VCC | 3.3V (พิน 1) |
gnd | พื้นดิน (พิน 6) |
SDA | SDA (พิน 3, GPIO2) |
SCL | SCL (PIN 5, GPIO3) |
WP (เขียน Protect) | GND (ปิดใช้งานการป้องกันการเขียน) |
ขั้นตอนที่ 2: เปิดใช้งาน I2C บน Raspberry Pi
- เปิดเครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config
- นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน
- รีบูตราสเบอร์รี่ pi:
sudo reboot
ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ
- อัปเดตรายการแพ็คเกจ Raspberry Pi ของคุณ:
sudo apt update && sudo apt upgrade -y
- ติดตั้งเครื่องมือ I2C ที่จำเป็นและไลบรารี Python:
sudo apt install -y i2c-tools python3-smbus
- ตรวจสอบว่าตรวจพบ AT24C256 EEPROM บนรถบัส I2C:
EEPROM ควรปรากฏที่ 0x50 (หรือที่อยู่อื่นตามการกำหนดค่า PIN 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: เปิดใช้งานที่เก็บข้อมูลแบบถาวรสำหรับแอปพลิเคชัน Internet of Things
การแก้ไขปัญหา
-
ไม่พบ EEPROM:
- ตรวจสอบการเดินสายและยืนยันการเชื่อมต่อ SDA/SCL
- วิ่ง
sudo i2cdetect -y 1
เพื่อตรวจสอบที่อยู่ I2C ของ EEPROM
-
การดำเนินการอ่าน/เขียนไม่ถูกต้อง:
- ทำให้มั่นใจ Write Protect (WP) เป็น มีสายดิน เพื่อเปิดใช้งานการเขียน
- แนะนำความล่าช้า (
time.sleep(0.05)
) เพื่อให้การดำเนินการเขียน EEPROM เสร็จสมบูรณ์
-
ข้อผิดพลาดในการสื่อสาร I2C:
- ตรวจสอบที่อยู่ I2C ที่ขัดแย้งกันบนรถบัส
- ทำให้มั่นใจ
smbus2
ติดตั้งอย่างถูกต้องโดยใช้pip3 install smbus2
.
บทสรุป
AT24C256 EEPROM เป็นวิธีที่เรียบง่าย แต่ทรงพลัง จัดเก็บข้อมูลอย่างต่อเนื่อง บนราสเบอร์รี่ pi ไม่ว่าจะ การบันทึกข้อมูลการจัดเก็บการตั้งค่าหรือแอปพลิเคชัน IoTคู่มือนี้ให้ความรู้พื้นฐานที่จำเป็นในการโต้ตอบกับการจัดเก็บ EEPROM อย่างมีประสิทธิภาพ ทดลองกับการอ่าน/เขียนชุดข้อมูลขนาดใหญ่เพื่อสำรวจศักยภาพอย่างเต็มที่! 🚀