主要特性

AC24C32是Atmel的两线制串行EEPROM芯片,根据工作电压的不同,有-2.7、-1.8两种类型。主要特性有:

  • 工作范围:-2.7类型范围4.5~5.5V,-1.8类型1.8~5.5V。本文用的为-2.7类型。
  • 待机功耗:与工作电压有关,见下图
  • 容量:4096 x 8bits,即32k bits
  • 接口:I2C,工作在5V时支持最大时钟频率400kHz,其他电压时100kHz
  • 允许一次写一页(32-byte page write mode)
  • 一次写动作完成的时间:与工作电压有关,最大20ms
  • 写保护(write protect)功能
  • 输入脚有施密特触发器,用于噪声抑制
  • 可靠性:可写1百万次;数据可保存100年
  • 封装:8-Pin PDIP/SOIC/TSSOP

管脚定义

  • VCC:电源脚
  • GND:地
  • A0、A1、A2:器件I2C地址控制脚,7位I2C地址为0b1010A2A1A0。浮空时都为低电平。
  • SCL、SDA:I2C接口时钟线、数据线。
  • WP:写保护输入脚。当连接低电平时,器件正常读写;当连接高电平时,无法对前8k bits内容进行写入。浮空时为低电平。

与Arduino的连接

与Arduino UNO的I2C接口连接。

VCC连接5V;GND连接GND;AC24C32的SCL连接UNO的A5(SCL);AC24C32的SDA连接UNO的A4(SDA)。

功能调试

1. Page Write时,一次最多写入32个字节。当地址到达该页末尾时,会自动roll over到同一页的起始地址。

2. Sequential Read时,没有连续读取的字节数目限制(实际受限于Arduino的Wire库中buffer的大小)。当地址到达最后一页的末尾时,会自动roll over到首页的起始地址。

3. 写操作时,MCU发送stop后,AC24C32还需要一段tWR时间(tWR在5V供电时最大为10ms)进行内部工作,之后数据才正确写入。在tWR时间内,芯片不会回应任何接口的操作。

测试代码

以下代码向AC24C32写入了一段字符串,之后将写入的信息反复读出。

 /*
access to EEPROM AT24C32 using Arduino
storage capacity: 32K bits (4096 bytes)
*/ #include <Wire.h> #define ADDRESS_AT24C32 0x50 word wordAddress = 0x0F00; //12-bit address, should not more than 4095(0x0FFF)
char str[] = "This is ZLBG."; //string size should not more than 32 and the buffer size
byte buffer[]; int i; void setup()
{
Wire.begin();
Serial.begin(); //write
Wire.beginTransmission(ADDRESS_AT24C32);
Wire.write(highByte(wordAddress));
Wire.write(lowByte(wordAddress));
for (i = ; i < sizeof(str); i++)
{
Wire.write(byte(str[i]));
}
Wire.endTransmission(); delay(); //wait for the internally-timed write cycle, t_WR
} void loop()
{
//read
Wire.beginTransmission(ADDRESS_AT24C32);
Wire.write(highByte(wordAddress));
Wire.write(lowByte(wordAddress));
Wire.endTransmission();
Wire.requestFrom(ADDRESS_AT24C32, sizeof(str));
if(Wire.available() >= sizeof(str))
{
for (i = ; i < sizeof(str); i++)
{
buffer[i] = Wire.read();
}
} //print
for(i = ; i < sizeof(str); i++)
{
Serial.print(char(buffer[i]));
}
Serial.println(); delay();
}

参考资料

AT24C32 - Atmel Corporation
Arduino playground: Using Arduino with an I2C EEPROM
xAppSoftware Blog: How to interface the 24LC256 EEPROM to Arduino

Arduino I2C + AC24C32 EEPROM的更多相关文章

  1. STM32F10x_模拟I2C读写EEPROM

    Ⅰ.写在前面 说到IIC,大家都应该不会陌生,我们初学单片机的时候或多或少都知道或了解过,甚至使用I2C控制过器件.但是,有多少人真正去深入理解,或者深入研究过I2C通信协议呢? 1.我们有必要学习I ...

  2. STM32F10x_硬件I2C读写EEPROM(标准外设库版本)

    Ⅰ.写在前面 上一篇文章是“STM32F10x_模拟I2C读写EEPROM”,讲述使用IO口模拟I2C总线通信,对EEPROM(AT24Xxx)进行读写操作的过程. 上一篇文章主要内容:I2C协议.模 ...

  3. 第23章 I2C—读写EEPROM—零死角玩转STM32-F429系列

    第23章     I2C—读写EEPROM 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...

  4. Arduino学习笔记⑦ EEPROM断电保存数据

    1.前言     EEPROM,叫做电可擦可编程可读寄存器(是不是觉得好官方,不知道是什么鬼?反正我也一脸懵逼),只需要知道这是一种断电后数据不会丢失的存储设备,可以用来应对需要做记录做保存的场合.简 ...

  5. 转载:关于STM32硬件I2C读写EEPROM代码实现原理的理解与总结

    http://home.eeworld.com.cn/my/space-uid-716241-blogid-655190.html 一.I2C协议简介 I2C是两线式串行总线,用于连接微控制器及其外围 ...

  6. am335x system upgrade kernel i2c rtc eeprom(六)

    1      Scope of Document This document describes i2c bus hardware design and support i2c-devices: ee ...

  7. Arduino I2C + 三轴加速度计LIS3DH

    LIS3DH是ST公司生产的MEMS三轴加速度计芯片,实现运动传感的功能.主要特性有: 宽工作电压范围:1.71 ~ 3.6V 功耗:低功耗模式2μA:正常工作模式.ODR = 50Hz时功耗11μA ...

  8. I2C与EEPROM

    一.基本概念 RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保存数据的.它在任何时候都可以读写,RAM 通常是作为操作系统或其他正在运 ...

  9. 基于FPGA的I2C读写EEPROM

    I2C在芯片的配置中应用还是很多的,比如摄像头.VGA转HDMI转换芯片,之前博主分享过一篇I2C协议的基础学习IIC协议学习笔记,这篇就使用Verilog来实现EEPROM的读写,进行一个简单的I2 ...

随机推荐

  1. Java语言主要特点有哪些?

    1.简单 Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了.Java语言的简单性主要体现在以下三个方面: 1) Java的风格类似于C++,因而C++程序员是非常熟悉的.从某 ...

  2. RHCE7 学习里程-4用户权限,简单进程管理

    #创建用户 useradd abc 使用 vipw 命令查看 /etc/passwd 文件下 是否存在新用户 #G却换到最后一行 #创建账号的时候,默认也新建了一个组,组名跟用户名一样 groupad ...

  3. 在kindeditor 获取textarea 中 输入的值

    要在kindeditor 获取textarea 中 输入的值 必须在kindeditor创建的时候添加下面红色字体的代码     kindeditor创建代码如下: var editor;KindEd ...

  4. FFmpeg多媒体文件格式探测

    FFmpeg版本:3.4 在FFmpeg中,每一种文件容器格式都对应一种AVInputFormat 结构,位于源码中libavformat文件夹中.当调用avformat_open_input的时候, ...

  5. python web框架简介Bottle Flask Tornado

    Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. ? 1 2 3 4 pip inst ...

  6. 关于data-属性

    关于data-属性 现有需求如下,也就是类似做一个tab页的切换如下图: 因为这里要记录一下jquery里的“data-属性”的用法,所以忽略类似的组件. 往HTML标签上添加任意以 "da ...

  7. HTTP 1.0 & 1.1

    简介: HTTP ( HyperText Transfer Protocol ) 超文本传输协议,是互联网上应用最广泛的一种网络协议. HTTP 是一个客户端和服务端请求.应答的标准.使用 WEB 浏 ...

  8. firebug,chrome调试工具的使用

    ​http://ued.taobao.org/blog/?p=5534 chrome调试 http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156 ...

  9. awk 数据处理小技巧

    进行数据分析或统计时,如果数据量较小,我们可以用awk快速处理,以下是一些小技巧   一.时间戳转换 日期转时间戳: date -d "20150315"  "+%s&q ...

  10. 全文搜索技术—Lucene

    1.   内容安排 实现一个文件的搜索功能,通过关键字搜索文件,凡是文件名或文件内容包括关键字的文件都需要找出来.还可以根据中文词语进程查询,并且支持多种条件查询. 本案例中的原始内容就是磁盘上的文件 ...