将AT24C256 EEPROM与Raspberry Pi一起使用

Using the AT24C256 EEPROM with the Raspberry Pi

这 AT24C256 是I2C EEPROM(可擦除的可编程可读取内存),即使在功率损耗后,Raspberry Pi也可以存储和检索数据。本指南说明了如何接口 AT24C256 使用Raspberry Pi,包括接线,启用I2C以及使用Python的阅读/写入数据。


你需要什么

  1. 覆盆子pi (任何具有GPIO和I2C支持的模型,例如PI 3,PI 4)
  2. AT24C256 EEPROM模块
  3. 面包板和跳线电线
  4. 安装了Python 在覆盆子pi上

步骤1:将AT24C256接线到Raspberry Pi

AT24C256使用 I2C协议.

连接

AT24C256针 覆盆子Pi Pin
VCC 3.3V(引脚1)
gnd 地面(引脚6)
SDA SDA(引脚3,GPIO2)
SCL SCL(引脚5,GPIO3)
WP(写保护) GND(禁用写保护)

步骤2:在Raspberry Pi上启用I2C

  1. 打开Raspberry Pi配置工具:
    sudo raspi-config
    
  2. 导航到 接口选项> I2C 并启用它。
  3. 重新启动覆盆子Pi:
    sudo reboot
    

步骤3:安装所需库

  1. 更新您的Raspberry Pi的包装列表:
    sudo apt update && sudo apt upgrade -y
    
  2. 安装必要的I2C工具和Python库:
    sudo apt install -y i2c-tools python3-smbus
    
  3. 确认在I2C总线上检测到AT24C256 EEPROM:
    sudo i2cdetect -y 1
    
    EEPROM应该出现在 0x50 (或基于A0-A2引脚配置的另一个地址)。

步骤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的应用

  1. 数据记录:随着时间的推移,将传感器数据存储以进行离线访问。
  2. 配置存储:保存系统设置或校准数据。
  3. 安全身份验证:存储加密的键或身份验证令牌。
  4. 物联网项目:为物联网应用程序启用持久存储。

故障排除

  1. 未检测到EEPROM:

    • 检查接线并确认SDA/SCL连接。
    • 跑步 sudo i2cdetect -y 1 验证EEPROM的I2C地址。
  2. 不正确的读/写操作:

    • 确保 写保护(WP)接地 启用写作。
    • 引入延迟(time.sleep(0.05))允许EEPROM写操作完成。
  3. I2C通信错误:

    • 检查公共汽车上是否有冲突的I2C地址。
    • 确保 smbus2 使用适当安装 pip3 install smbus2.

结论

AT24C256 EEPROM是一种简单而强大的方法 持续存储数据 在覆盆子pi上。是否要 数据记录,存储设置或物联网应用程序,本指南提供了有效与EEPROM存储相互作用所需的基础知识。尝试阅读/编写较大的数据集,以探索其全部潜力! 🚀

发表评论

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.