基于Keil C的AT24C02串行E2PROM的编程
AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽(2。5~5。5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。
1AT24C02的引脚功能
AT24C02引脚如图1所示。
他的的1、2、3脚是3根地址线,用于确定芯片的硬件地址。第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这根双向I2C总线串行传送。第6脚SCL为串行时钟,SDA和SCL为漏极开路端,在实际的应用当中都需要和正电源间各接一个5。1kΩ的电阻上拉。第7脚为WP写保护端,接地时允许芯片执行一般的读写操作;接正电源时只允许对器件进行读操作。
2AT24C02的内部结构
图2为AT24C02的内部结构图。
启动、停止逻辑单元接收数据引脚SDA上的电平信号,判断是否进行启动和停止操作串行控制逻辑单元根据SCL,SDA电平信号以及“启动、停止逻辑”部件发出的各种信号进行区分,并排列出有关的“寻址”、“读数据”和“写数据”等逻辑,将他们传送到相应的操作单元。例如:当操作命令为“寻址”时候,他将通知地址计数器加1,并启动“地址比较”器进行工作。在“读数据”时,他控制“Dout/确认逻辑”单元;在“写数据”时候,他控制“高压泵/定时”电路,以便向E2PROM电路提供编程所需要的高电压。
地址/计数器单元产生访问E2PROM所需要的存储单元的地址,并将其分别送到X译码器进行字选,送到Y译码器进行位选。
高压泵/定时单元由于E2PROM数据写入时候需要向电路施加编程高电压,为了解决单一电源电压的供电问题,芯片生产厂家采用了电压的片内提升电路。电压的提升范围一般可以达12~21。5V。
Dout/确认逻辑单元地址和数据均以8位二进制码串行输入/输出。数据传送时,每成功传送一个字节数据后,接收器都必须产生一个应答信号。在第9个时钟周期时将SDA线置于低电压作为应答信号。
AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。
I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。AT24C02正是运用了I2C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。
AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。控制字各位的具体作用见表1。
由上表可知,控制字的高4位为AT24C02的识别位,是不能更改的;而第A0,A1,A2片选位,最后是一位是读写控制位,当其为1时,进行的是读操作,反之将要进行的是写操作。
3AT24C02的读写操作
3。1开始位、停止位和确认位的编程
总线SCL和SDA一般由上拉电阻拉为高电平,只有在SCL为低电平的周期内,SDA引脚上的数据才有效。而当SCL为高电平期间SDA引脚上产生的电平变化则表示I2C总线工作的“开始”或“停止”两种状态:当SCL为高平时,SDA由高电平转向低电平时表示“开始”状态,而由低电平转向高电平时表示“停止”状态,其时序如图3所示。
由时序图可以编写由主机发给AT24C02的开始信号和停止信号的KEILC语言函数如下:
同时,AT24C02与主机进行信息交换,还需要另外一个“确认信号(ACK)”的状态。I2C总线数据传送时,每成功地传送一个字节数据后,AT24C02都必须产生一个应答信号,应答的器件在第9个时钟周期时将SDA线拉低,表示其已收到一个8位数据。AT24C02在接收到起始信号和与之匹配的地址之后就会响应第一个应答信号;如果AT24C02被设置为写操作,则每接收一个字节之后响应一个应答信号;当AT24C02被设置在读模式时,则在发送一个字节的数据后会释放SDA线,并监视主机发过来的应答信号,一旦接收到应答信号,AT24C02继续发送数据,如主机没有发送应答信号,AT24C02将停
E2PROM 编程 串行 AT24C02 Keil 基于 相关文章:
- 基于LCM1602液晶、DS1302时钟芯片、E2PROM的电子时钟设计(11-29)
- 用IIC总线读取E2PROM存储器数据(11-24)
- 单片机学习之二十:E2PROM芯片24C02的读写程序(11-18)
- 串行I2C总线E2PROM AT24CXXX的应用1(11-13)
- 24C02串行E2PROM的读写资料(11-10)
- 基于AVR单片机的煤矿传感器设计(12-12)