AT24C256 I2C EEPROM如何与Arduino接口?

在本教程中,我们使用Arduino接口I2C串行EEPROM IC AT24C256。首先,我们将看到一点关于AT24系列EEPROM, AT24C256的引脚和引脚描述,写两个函数读写数据从/到EEPROM,最后了解Arduino AT24C256 EEPROM接口是如何工作的。

Arduino-AT24C04-EEPROM连接 - 针图

介绍

EEPROM是电可擦可编程只读存储器(electroerasable Programmable Read Only Memory)的缩写,是一种非易失性存储器,即使在断电后也能保持其内容。

关于物理位置,有两种类型的EEPROM。一种是内部EEPROM,它被嵌入到微控制器中,另一种是外部EEPROM,它是以集成电路的形式,必须通过串行接口(如I2C或SPI)。

在前面的教程中,我已经讨论了如何访问Arduino的内部EEPROM。有关EEPROM(及其历史)、易失性和非易失性内存以及Arduino内部EEPROM的读写的更多信息,请查看“Arduino EEPROM教程”。

内部EEPROM通常限制(通常是几个KB),但显着快,因为它们在与MCU中的处理器相同的硅。如果您将Arduino UNO作为示例,则ATMEGA328P MCU(uno上的微控制器)只有1 kB的EEPROM。

这就是外部EEPROM ic发挥作用的地方。您可以获得高达256kb(或更多)的容量,并且可以很容易地通过I2C或SPI进行接口。

AT24C256简要说明

如果我们谈论串行EEPROM芯片,那么Atmel的(现在Microchip) AT24和AT25系列是非常受欢迎的。AT24系列是I2AT25系列是SPI EEPROM芯片。

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

它是一个8引脚IC可在8引脚SOIC, 8引脚TSSOP, 8衬垫UDFN或8球VFBGA封装。8引线SOIC在arduino模块

销图

下图是AT24C256 EEPROM芯片的引脚图。

AT24C256引脚图

销的描述

数字

功能

1

A0 地址输入
2 A1

地址输入

3.

A2 地址输入
4 接地

地面

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线路。我用了两个10 kΩ电阻作为引体向上。其余的连接非常简单,如图所示。

接下来是设备地址。如果您查看数据表,请参阅如何使用地址输入引脚配置IC的设备地址图。

AT24C256-Device-Address

前四个MSB的序列“1010”对于来自Atmel的所有I2C EEPROM是强制性的。接下来的三个位i.e,a2,a1和a0允许您在同一I2C总线上连接最多8个设备。

由于我们只使用了一个AT24C256 IC,三个地址输入引脚A2、A1和A0连接到地,使其在设备地址中对应的值为“000”。

最后一位(LSB)是读或写操作选择位。如果这是' 1 ',则选择读操作;如果这是' 0 ',则选择写操作。

笔记:我们可以忽略设备地址的LSB,同时将代码写入Arduino Wire(和内部Twowire)库,根据操作处理它。因此,我们可以将地址声明为“0x50”。

笔记:我的AT24C256 EEPROM IC在运输时损坏。我将使用一个较老的AT24C04 IC,它的容量为4kb(4096位或512 B),用于演示。电路保持不变,因为它们都是I2C eeprom,有相同的引脚和代码,需要非常小的修改。

AT24C04-EEPROM-IC

组件的要求

  • Arduino UNO
  • AT24C256 eepm集成电路
  • 2 x10kΩ电阻
  • 连接电线
  • 面包板
  • 实验板电源(选配)

线路图

下图为Arduino AT24C256 EEPROM接口电路图。

Arduino-AT24C256-EEPROM-CIRCUCTION

代码

为了编写代码,您不需要下载任何其他库,因为我们将只使用“Wire”库(Arduino IDE附带)。我没有使用专用库,而是决定使用Wire库为AT24C256的Read和write操作编写两个函数。

写一个字节到EEPROM

Arduino-AT24C256-EEPROM写

从EEPROM读取一个字节

Arduino-AT24C256-EEPROM-Read

代码

为了演示Arduino和外部EEPROM IC接口的工作,我写了小代码,使用write函数存储ASCII值从33(' ! ')到126(' ~ ')。

在EEPROM中存储后,我使用read函数读取它们,并在串行监视器上打印字符。

Arduino-AT24C256-Read-Serial

结论

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

发表评论

您的电子邮件地址将不会被公布。必填字段被标记*