在本教程中,我们使用Arduino接口I2C串行EEPROM IC AT24C256。首先,我们将看到一点关于AT24系列EEPROM, AT24C256的引脚和引脚描述,写两个函数读写数据从/到EEPROM,最后了解Arduino AT24C256 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芯片的引脚图。
销的描述
数字 |
销 | 功能 |
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的设备地址图。
前四个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,有相同的引脚和代码,需要非常小的修改。
组件的要求
- Arduino UNO
- AT24C256 eepm集成电路
- 2 x10kΩ电阻
- 连接电线
- 面包板
- 实验板电源(选配)
线路图
下图为Arduino AT24C256 EEPROM接口电路图。
代码
为了编写代码,您不需要下载任何其他库,因为我们将只使用“Wire”库(Arduino IDE附带)。我没有使用专用库,而是决定使用Wire库为AT24C256的Read和write操作编写两个函数。
写一个字节到EEPROM
从EEPROM读取一个字节
代码
为了演示Arduino和外部EEPROM IC接口的工作,我写了小代码,使用write函数存储ASCII值从33(' ! ')到126(' ~ ')。
在EEPROM中存储后,我使用read函数读取它们,并在串行监视器上打印字符。
结论
一个简单的教程,如何接口AT24C256 EEPROM IC Arduino。如果您了解Arduino AT24C256 EEPROM接口的工作原理,那么您可以实现任何数据采集应用程序。