AT24C256在单片机系统中的应用
扫描二维码
随时随地手机看文章
1引言
AT24C256 是ATMEL公司256kbit串行电可擦的可编程只读存储器,8引脚双排直插式封装,具有结构紧凑、存储容量大等特点,可以在2线总线上并接4片该 IC,特别适用于具有高容量数据储存要求的数据采集系统。本文将介绍该IC的工作原理和与单片机的软硬件接口。
2AT24C256的主要特性及引脚说明:
2.1主要特性——芯片有3种工作电压;
5.0V(VCC=4.5V~5.5V)
2.7V(VCC=2.7V~5.5V)
1.8V(VCC=1.8V~3.6V)
——内部可以组成32k×8存储单元;
——2线串行接口;
——斯密特触发,滤波输入抑制噪声;
——双向数据传送协议;
——硬件写保护引脚和软件数据保护功能;
——具有64字节页写模式。
2.2AT24C256引脚说明
其引脚排列如图1所示。
A0、A1:地址选择输入端。在串行总线结构中,可以连接4个AT24C256IC。用A0、A1来区分各IC。A0、A1悬空时为0。
SCL:串行时钟输入。上升沿将SDA上的数据写入存储器,下降沿从存储器读出数据送SDA上。
SDA:双向串行数据输入输出口。用于存储器与单片机之间的数据交换。
WP:写保护输入。此引脚与地相连时,允许写操作;与VCC相连时,所有的写存储器操作被禁止。如果不连,芯片内部下拉到地。
VCC:电源。
GND:地。
NC:空。
3AT24C256的工作原理
AT24C256内部有512页,每一页为64字节,任一单元的地址为15位。地址范围0000H~7FFFH。
3.1芯片工作状态
1)时钟和数据传送
一般情况下,SDA被外部的设备拉到高,只有当SCL为低电平时,SDA上的数据变化,表示要传送数据。SCL为高时SDA变化表示状态变化。
2)开始状态(START)
当SCL为高时,SDA由高到低表示数据传送开始,这一状态必须在所有命令之前。
3)结束状态(STOP)
当SCL为高时,SDA由低到高表示数据传送结束状态。
4)应答状态(ACK)
所有的地址和数据都是以8位的形式串行传送给存储器或从存储器读出的。存储器在第9个时钟周期SDA发零信号表示已经收到8位数据。见图2总线协议图。
3.2设备选址
EEPROM 进入开始状态后,需要一个8位的地址字来选择芯片进行读写。设备地址字由5位0、1组成的命令字和两位地址选择位A1、A0和一位读/写操作位构成。对于 AT24C256,命令字为“10100”,同一串行总线上可以连接4个设备,由地址线A1,A0加以区分。如只有一个AT24C256,A1,A0都取 0。最低位为1表示读操作,0表示写操作。10100A1A0R/W
4AT24C256的读写方式和5工作时序
4.1写操作
有两种方式:写字节和写页。
1)写字节
向 AT24C256发送设备地址字并接到应答信号后,需要发送2个8位地址来选择要写数据的地址,AT24C256接收到这个地址,应答一个零信号,然后根据时钟写8位数据到AT24C256。存储器接收到数据后返回一个应答信号。写数据结束,AT24C256进入内部计时的写周期。在写循环过程中所有的输入都不能进行,直到写结束,EEPROM才响应,写字节过程如图2所示。
2)写页
AT24C256 具有64字节作为一页的写页功能,可以一次性写入一页。写页的初始化过程与写字节的方法基本相同。不同的是写入一个字节后,微控制器不发停止状态命令,而是在应答信号后,接着输入63个字节。每一个字节接收到后,EEPROM照样输出一个为零的应答信号。因为一页只有64个单元,所以数据字的地址低6位接收到一个字节后会自动加1,高位地址不变,即页地址不变。当内部产生的地址到页边界时,接下来的字节要放至该页的开始。如果发送至E2PROM的数据超过 64字节,则最早写的字节将被覆盖,流程见图3的写页操作。
4.2读操作
读操作有3种方式。初始化过程与写操作基本相同,只是将设备选择字中的最低位改成读。读操作流程图见图4。
1)当前地址读
内部数据的地址保持在最后的读写操作地址加1上,只要芯片有电源供给,这个地址一直保持着。读到EEPROM的最后字节后又回到最开始的位置。
2)随机读
随机读前先要向EEPROM写入一个字节地址,然后才能读。
3)读串
既可以是当前地址读,也可以是随机地址读。微控制器接收到一个字后,回一个应答信号。一旦EEPROM接收到应答信号,地址加1,接着输出下一个字节。微控制器接收到数据后不回应答信号时,表示读过程结束。
5单片机数据采集系统中的应用
5.1硬件连接
图 5是AT24C256在单片机数据采集系统中应用的原理图。整个采集系统由AT89C51控制,负责对外围芯片的初始化和数据传送。其中DS1302是 Dallas公司的时钟芯片,在此系统中的作用是产生年、月、日、时、分、秒,用于记录采集数据的时间。2543是具有11个模拟通道的12位串行A/D 芯片,要采集的数据从传感器经信号调制直接连到2543的模拟输入口。AT24C256用来保存采集的时间和数据。
5.2软件编程
写一个字节到AT24C256,要写的字节在A寄存器中。
BYTEW:MOVR2,#8
SETBP1.5
SETBP1.4;停止总线操作
NOP
NOP
CLRP1.4
CLRP1.5;启动总线操作
OTSLP:RLCA
JNCBITLS
SETBP1.4
JMPOTSL1
BITLS:CLRP1.4
OTSL1:SETBP1.5;写数据
NOP
NOP
CLRP1.5
DJNZR2,OTSLP
SERBP1.5
SETBP1.4
RET
参考文献
[1]ATMEL公司.AT24C256的技术资料.
[2]何立民.单片机实用技术选编[M].北京航空航天大学出版社,1992.