如何将AT24C256 I2C EEPROM与Arduino接口?

在本教程中,我们将I2C串行EEPROM IC AT24C256与Arduino接口。首先,我们将看到有关AT24系列EEPROM,AT24C256的引脚和引脚描述,编写几个功能来读取和写入EEPROM的数据,并最终了解Arduino AT24C256 EEPROM界面如何工作。

Arduino-AT24C04-EPROM-CONNECTIONS PIN-DIAGRAM

介绍

EEPROM是可擦除的可编程读取存储器的简短,是一种非易失性内存,即使关闭了电源后,它仍保留其内容。

相对于物理位置有两种类型的EEPROM。一个是内部EEPROM,它嵌入了微控制器中,另一个是外部EEPROM,它是IC的形式,必须通过串行界面连接到微控制器(例如I2C或SPI)。

我已经讨论了如何在较早的教程中访问Arduino的内部EEPROM。有关EEPROM(及其历史)的更多信息,挥发性和非易失性记忆以及阅读和写入Arduino的内部EEPROM,请查看“Arduino Eeprom教程”。

内部EEPROM的大小通常受到限制(通常是几个KB),但由于与MCU中的处理器在同一硅上,它们的尺寸很快。如果以Arduino Uno为例,则Atmega328p MCU(在UNO上的微控制器)只有1 kb的EEPROM。

这是外部Eeprom IC发挥作用的地方。您可以获得高达256 KB(或更多)的能力,并且可以通过I2C或SPI轻松连接。

AT24C256的简短说明

如果我们谈论串行EEPROM IC,那么Atmel的AT24和AT25系列非常受欢迎。AT24系列是我2c eeproms虽然AT25系列是SPI EEPROM IC。

对于这个项目,我选择了AT24C256 IC,即256 kbit Eeprom。这转化为2,62,144位或32,768个字节(32 kb)。

它是8铅SOIC,8铅TSSOP,8-PAD UDFN或8球VFBGA软件包的8杆IC。8铅SOIC很受欢迎Arduino模块

销图

下图显示了AT24C256 EEPROM IC的PIN图。

AT24C256针脚

引脚描述

数字

别针

功能

1

A0 地址输入
2 A1

地址输入

3

A2 地址输入
4 gnd

地面

5

SDA 序列数据
6 SCL

串行时钟

7

WP 写保护
8 VCC

电源

Arduino AT24C256 EEPROM接口

现在让我们继续与Arduino Uno接口AT24C256 EEPROM IC。首先要注意的是,AT24C256(或任何其他AT24系列EEPROM)在I上通信2C接口。因此,将模拟引脚A4(SDA)和A5(SCL)用于I2C通信

由于它是I2C通信,因此我们需要SDA和SCL线的上拉电阻。我使用了几个10kΩ电阻作为上拉。其余连接非常简单,并显示在电路图中。

接下来是设备地址。如果您查看数据表,则将获得有关如何使用地址输入引脚配置IC的设备地址的图表。

AT24C256设备地址

对于ATMEL的所有I2C EEPROM,必须使用前四个MSB的序列“ 1010”。接下来的三个位,即A2,A1和A0允许您在同一I2C总线上最多连接8个设备。

由于我们仅使用一个AT24C256 IC,因此将三个地址输入引脚A2,A1和A0连接到地面,以使其在设备地址中的相应值为“ 000”。

最后一个位(LSB)是读或写操作选择位。如果这是“ 1”,则选择读取操作,并且该位为“ 0”,则选择写操作。

笔记:我们可以在将代码写为Arduino电线(和内部两口)库时忽略设备地址的LSB,这取决于操作。因此,我们可以将地址声明为“ 0x50”。

笔记:我的AT24C256 EEPROM IC在运输时损坏了。我将使用较旧的AT24C04 IC,该IC的容量为4 kb(4096位或512 b)。该电路与它们俩都保持相同的I2C EEPROM相同,并且代码需要很小的修改。

AT24C04-EPROM-IC

需要组件

  • Arduino Uno
  • AT24C256 EEPROM IC
  • 2 x10kΩ电阻
  • 连接电线
  • 面包板
  • 面包板电源(可选)

电路原理图

下图显示了Arduino AT24C256 EEPROM接口的电路图。

Arduino-AT24C256-Eprom-Circuit-Diagram

代码

要编写代码,您无需下载任何其他库,因为我们将仅使用“电线”库(随附Arduino IDE)。我决定不使用专用库,而是决定编写两个功能,用于使用电线库的AT24C256的读写操作。

写一个字节到eeprom

Arduino-AT24C256-EPROM-WRITE

从EEPROM阅读字节

Arduino-AT24C256-EPROM-READ

代码

为了演示Arduino和外部EEPROM IC接口的工作,我编写了小型代码,该代码将ASCII值从33('!'')存储到126('〜'),并使用写入功能。

将它们存储在EEPROM中后,我使用读取功能阅读它们,并在串行显示器上打印字符。

Arduino-AT24C256-Read-Serial

结论

关于如何与Arduino接口AT24C256 EEPROM IC的简单教程。如果您了解Arduino AT24C256 EEPROM接口的工作原理,则可以实现任何数据采集应用程序。

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map