E2PROM的原理以及应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EEPROM的原理以及应用

一、常用串行EEPROM的简介

1) 引脚描述

SCL:串行时钟

SDA:串行数据

A2~0:设备地址、页地址

WP:写禁止

VCC:电源供电

GND:地

2) 内存管理

以Atmel公司的2线EEPROM为例,从A T24C01~A T24C16,其内存架构分别由16page*8byte、32page*8byte、32page*16byte、64page*16byte、128page*16byte组成。寻址字节需要7~11bit的数据字。AT24C32和A T24C64分别由128page*32byte、256page*32byte组成。系统提供了2个字节的寻址数据字。

3) 器件操作

时钟和数据传输:SDA引脚正常状态下由外部器件拉高。SDA上的数据只有在SCL 为低的时间段才能进行改变,在SCL为高时SDA数据的更改会表现为如下所述的一个开始条件或者一个结束条件。

开始条件:SCL为高,SDA由高变为低是一个开始条件,开始命令优先于其他所有的命令。

结束条件:SCL为高,SDA由低变为高是一个结束条件。在一个读序列之后的结束命令,会将EEPROM置于一个待机电源模式。

响应:所有的地址和数据字都是以8bit字,串行的传入或者传出EEPROM。在第九个时钟周期,EEPROM发出一个0来作为收到一个字的响应信号。

Twr:一个写序列的有效结束条件到一个内部的写周期结束。

注:页写的自加计数是低5位自加,高位不变,以保证在当前页。页写到当前页的最后边界时,会计数到最开始到位置。如果MCU发给EEPROM的数据超过了32个时,会发生卷边,覆盖掉前面的数据。

注:上次读、写操作的地址加1。只要芯片不掉电,就会暂存在芯片中。

注意:连续读时每读完1字节后主机要发应答给主机,但在最后1字节后(即停止信号前)主机不发应答。

二、相关其他存储器

非易失性记忆体像EPROM, EEPROM和FLASH 能在断电后仍保存资料.但由于所有这些记忆体均起源自唯读存贮器(ROM) 技术, 所以您不难想象得到它们都有不易写入的缺点.确切的来说,这些缺点包括写入缓慢,有限写入次数,写入时需要特大功耗等等.

美国Ramtron公司铁电存贮器(FRAM)的核心技术是铁电晶体材料.这一特殊材料使得铁电存贮产品同时拥有随机存取记忆体(RAM) 和非易失性存贮产品的特性.

铁电晶体材料的工作原理是: 当我们把电场加载到铁电晶体材料上,晶阵中的中心原子会沿着电场方向运动,到达稳定状态.晶阵中的每个自由浮动的中心原子只有两个稳定状态.一个我们拿来记忆逻辑中的0,另一个记忆1.中心原子能在常温,没有电场的情况下停留在此状态达一百年以上.铁电记忆体不需要定时刷新,能在断电情况下保存数据.三、EEPROM应用中出现问题以及处理的办法

在实际应用过程中,发现一些问题,整理如下,希望能够对各位有所帮助。

1.因快速操作E2PROM造成读写数据出错

在实际应用中有时会发现对E2PROM的读写会有随机的出错现象,而程序控制上检查不出有任何问题,从示波器上捕获的波形来看读写操作波形正常,但读操作时从E2PORM传输出的数据与E2PROM实际存储的数据不同,对写操作而言波形显示的写入数据与预期相同,但写操作完毕后E2PROM中存储的数据确与写入数据不符。这种现象有时会随机出现,但根据示波器捕获的波形判断与控制程序本身无关,并且可以排除硬件问题,在查阅E2PROM规格书后发现有一个很容易忽略的参数:T DHDL,此参数用于规定当对E2PROM进行一次I2C操作后必须再等待一段时间才能再对E2PROM进行I2C操作。T DHDL如下图所示

当对E2PROM访问完成后,如果没有等待大于T DHDL定义的时间就对E2PROM进行新的访问(无论是读或写),将可能出错,读出或写入的数据无法保证正确。上诉问题就是由此引起的。

解决措施:

在每次访问E2PROM前或每次访问E2PROM后强制等待大于T DHDL规定的时间肯定可以解决此问题,但会增加每次访问E2PROM的时间,人为降低了系统的性能。

针对此情况,可以定义一全局变量,用于指定访问E2PROM需要等待的时间,每次访问完E2PROM后设置此全局变量大于等于下次访问需要等待的时间,然后结束本次访问并返回主程序。此全局变量将在定时中断中根据系统运行时间的消耗进行修定。在访问E2PROM时首先检测上述全局变量中要求等待的时间是否已经完成,如果完成就可以立即进行E2PROM的访问,如果没有完成就强制等要求等待的时间完成后再进行E2PROM的访问,从而解决此问题。

2.使用写操作引起的失误

E2PROM支持页写操作,实际应用过程中使用页写时常常会犯一些错误:

①连续进行写操作会出现错误

在连续进行对E2PROM的操作时会可能会出现数据不能够正确写入E2PROM。此

时如果用示波器捕获波形,将会发现写操作的波形与需要的操作完全符合,但

操作完成后E2PROM中存储的数据却与写入数据不符。引起此问题的原因为没

有等待足够的时间供E2PROM进行写入。在进行写操作时,E2PROM内部硬件具

备缓冲寄存器,待写入的数据不是直接写入指定地址存储器中,而是先存储在

缓冲寄存器中,然后再通过内部电路写入指定地址存储器中。当通过I2C协议

将需要写入的数据写入E2PROM的缓冲寄存器后,I2C传输完成,此时需要等待

一段时间供E2PROM进行从缓冲寄存器写入指定地址存储器中,否则写入数据

可能失败,造成写操作出现错误。

解决措施:

使用与因快速操作E2PROM造成读写数据出错类似的方法,定义一个全局变量,用于指定写入E2PROM需要等待的时间,每次对E2PROM进行写操作后后设置此全局变量大于等于E2PROM写入数据需要等待的时间,然后结束本次

相关文档
最新文档