AT24C04是一个4kbit串行CMOS型E2PROM,可进行8位数据读写操作,具有512B存储空间。该器件与400kHz的I2C总线兼容,具有随机读写和掉电永久保存数据的特点。图5-12所示为该器件的引脚排列。其中,WP为写保护控制端,高电平有效,对该器件读写操作比较比较频繁时,该引脚接地或悬空;A0、A1、A2为器件地址端,其中A1、A2为器件地址编号,通过对A1、A2的电平设置,I2C总线可以连接4个AT24C04芯片;A0为内部存储器地址,单片机与AT24C04串行通信时,由于传输的地址为8位,因此剩余的地址A0可以接单片机的一个接口。容量够用时A0引脚可以接地。此时,AT24C04的使用容量为256B。
图5-12 AT24C04引脚排列
1.基本操作时序
基本操作包括器件的启动、停止和应答,其时序严格依照I2 C总线协议。利用I2 C总线传送数据时,单片机每次向AT24C04成功发送1B数据后,AT24C04必须产生一个应答信号,应答在第9个时钟周期将SDA线拉低,表示其已收到一个8位数据。在程序设计时,需要根据时序编写相应的操作函数。
2.应用操作
AT24C04应用操作包括写1B数据、读1B数据、对一个地址写1B数据、对应一个地址读1B数据及页写和连续读操作等。在了解这些操作过程前,我们先了解一下AT24C04的器件地址。AT24C04的地址位占1B,其结构为
其中高4位为固定值1010,A1、A2为器件地址,A0为存储阵列字地址。R/W为读写操作位。使用单片AT24C04时,引脚A0、A1、A2接地,地址0xA0表示对AT24C04的写操作,0xA1表示对AT24C04的读操作。
(1)对AT24C04写1B数据
对AT24C04发送1B数据通过写操作完成。写数据过程依据I2C总线协议,8位数据从高位到低位依次传送。
(2)对AT24C04读1B数据
单片机接收AT24C041B数据通过读操作完成。读数据过程中,只有在SCL为高电平时器件检测SDA状态,读操作得到的8位串行数据先高位后低位。(www.xing528.com)
(3)对AT24C04的一个地址写1B数据
此操作为单片机对存储器保存1B数据操作,其过程如图5-13所示。首先启动AT24C04,先写入器件地址控制字A0,再写入数据存放地址,然后写入要保存的数据,最后发送停止信号。单片机每写入AT24C041B数据都需要检测应答信号,以保证数据发送的有效性。
图5-13 对AT24C04的一个地址写1B数据时序
(4)对AT24C04的一个地址读1B数据
对地址读数据操作时序如图5-14所示。过程中先启动AT24C04,写入器件地址控制字A0,再写入将要读的数据地址,重新启动AT24C04,然后写入器件地址控制字A1,然后才能读出与存储地址相对应的数据。单片机对AT24C04每次发送或接收1B数据之间也必须检测应答信号。
图5-14 对AT24C04的一个地址读1B数据
(5)页写和连续读操作
页写是单片机送出一个数据的首地址后,AT24C04可以连续存放16个数据,对应的地址自动加1,操作时序是在对应地址写数据的基础上继续进行写数据操作,中间不需停止操作。连续读操作是在对应地址读一个数据后继续读数据操作,地址自动增加1。连续读操作可以读出AT24C04内部的所有数据,当读的地址超过最大值时,地址自动从0开始。页写和连续读操作对于存取一组数据非常方便。
AT24C04的基本操作和应用操作过程是AT24C04的程序设计基础,在AT24C04驱动程序设计时,这些操作是通过函数实现的。因此,只要了解器件的操作时序,单片机外部器件的程序设计就会变得简单明了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。