在本教程中,我们将I2C串行EEPROM IC AT24C256与Arduino接口。首先,我们将看到有关AT24系列EEPROM,AT24C256的引脚和引脚描述,编写几个功能来读取和写入EEPROM的数据,并最终了解Arduino AT24C256 EEPROM界面如何工作。
介绍
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图。
引脚描述
数字 |
别针 | 功能 |
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的设备地址的图表。
对于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相同,并且代码需要很小的修改。
需要组件
- Arduino Uno
- AT24C256 EEPROM IC
- 2 x10kΩ电阻
- 连接电线
- 面包板
- 面包板电源(可选)
电路原理图
下图显示了Arduino AT24C256 EEPROM接口的电路图。
代码
要编写代码,您无需下载任何其他库,因为我们将仅使用“电线”库(随附Arduino IDE)。我决定不使用专用库,而是决定编写两个功能,用于使用电线库的AT24C256的读写操作。
写一个字节到eeprom
从EEPROM阅读字节
代码
为了演示Arduino和外部EEPROM IC接口的工作,我编写了小型代码,该代码将ASCII值从33('!'')存储到126('〜'),并使用写入功能。
将它们存储在EEPROM中后,我使用读取功能阅读它们,并在串行显示器上打印字符。
结论
关于如何与Arduino接口AT24C256 EEPROM IC的简单教程。如果您了解Arduino AT24C256 EEPROM接口的工作原理,则可以实现任何数据采集应用程序。