1、16.May 2006HUAWEI TECHNOLOGIES Co., LHUAWEI Confidential Security Level: SecretEEPROM IntroductionAR硬件李东 00176431HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 2目录目录EEPROM器件简介器件简介I2C EEPROM器件介绍器件介绍SPI EEPROM器件介绍器件介绍HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 3 EEPROM是是Electrically-E
2、rasable Programmable Read Only Memory的简称,中文意为:电可擦可编程只读存储器。所谓只读的简称,中文意为:电可擦可编程只读存储器。所谓只读存储器是因为可以用管脚设置或软件命令方式设置其工作于只读方存储器是因为可以用管脚设置或软件命令方式设置其工作于只读方式,并没有和可擦可编程的说法矛盾。可以支持式,并没有和可擦可编程的说法矛盾。可以支持100万次擦写,数万次擦写,数据保存据保存100年以上。一般来说,年以上。一般来说,EEPROM适用于存储诸如初始化配适用于存储诸如初始化配置数据、单板重要信息等场合,这种场合的要求是:数据存储量比置数据、单板重要信息等场合,
3、这种场合的要求是:数据存储量比较少、访问速率要求不高、掉电后数据不丢失。因此较少、访问速率要求不高、掉电后数据不丢失。因此EEPROM,特别是串行特别是串行EEPROM是最佳选择,它还能节省单板的空间,我们是最佳选择,它还能节省单板的空间,我们公司用的都是串行公司用的都是串行EEPROM。串行。串行EEPROM按照硬件接口的不同按照硬件接口的不同可以分为两种:可以分为两种: 1、I2C接口接口EEPROM; 2、SPI接口接口EEPROM。 以下对这两种串行以下对这两种串行EEPROM分开来做介绍。分开来做介绍。EEPROM 器件简介器件简介HUAWEI TECHNOLOGIES Co., L
4、td.HUAWEI Confidential Page 48PIN的的I2C接口接口EEPROM的管脚图如图所示:的管脚图如图所示: 8PIN的的I2C接口接口EEPROM管脚管脚 I2C接口接口EEPROM管脚说明管脚说明HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 514PIN-EEPROM比比8PIN-EEPROM多出来的管脚都是多出来的管脚都是NC脚,并且不常用,所以脚,并且不常用,所以此处就不介绍。此处就不介绍。I2C接口接口EEPROM使用两根线进行读写操作,一根为时钟线(使用两根线进行读写操作,一根为时钟线(SCL)、
5、另一根)、另一根为数据线(为数据线(SDA)。)。SDA为双向信号,同时由于为双向信号,同时由于EEPROM只能是只能是I2C总线中总线中的的Slave,所以,所以SCL为输入信号。和标准的为输入信号。和标准的I2C总线一样,总线一样,SDA的输出为的输出为Open-drain方式。方式。WP为写保护管脚,高电平使能。为写保护管脚,高电平使能。A2:0为地址输入管脚,用来作为为地址输入管脚,用来作为EEPROM地址识别位,不同的地址识别位,不同的EEPROM使使用的位数不同。用的位数不同。VCC为电源管脚,不同的为电源管脚,不同的EEPROM有不同的电源电压要求。同时,不同的供有不同的电源电压
6、要求。同时,不同的供电电压支持的最高时钟频率也不同,电压越高支持的时钟频率也越高。电电压支持的最高时钟频率也不同,电压越高支持的时钟频率也越高。I2C接接口口EEPROM支持的最高时钟频率一般为支持的最高时钟频率一般为100KHz400KHz。GND为地管脚。为地管脚。I2C接口接口EEPROM管脚说明管脚说明HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 6I2C接口接口EEPROM操作分析操作分析控制字节格式控制字节格式HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 7I
7、2C接口接口EEPROM操作分析操作分析I2C接口接口EEPROM传输控制字节格式见上图。传输控制字节格式见上图。S:开始传输指示。:开始传输指示。Control Code:所有:所有I2C接口接口EEPROM统一的控制码,统一的控制码,4位组成位组成“1010”。Chip Select Bits:EEPROM地址识别位,地址识别位,3位组成位组成A2:0,分别对应器,分别对应器件管脚件管脚A2:0的输入电平,当的输入电平,当Master器件的器件的I2C总线上挂接多片总线上挂接多片EEPROM时,可以由此做片选。但是有的时,可以由此做片选。但是有的EEPROM A2:0这这3个管脚未个管脚未
8、用或者用了用或者用了12个,那么此处地址识别位中,多余的位可以用来做个,那么此处地址识别位中,多余的位可以用来做EEPROM内部存储内部存储Block选择(如果需要的话)。选择(如果需要的话)。R/W:读写命令,:读写命令,“1”为读;为读;“0”为写。为写。ACK:Acknowledge bit。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 8I2C接口接口EEPROM写操作写操作 字节写操作(Byte Write):字节写操作序列见上图。一次只写1个字节。Master先发出Start指令,接着是控制字节EEPROM正常响应,发出
9、Acknowledge bit然后Master再送出要写入的EEPROM存储单元地址EEPROM正常响应,发出Acknowledge bitMaster再送出数据EEPROM正常响应,发出Acknowledge bitMaster发出Stop指令,结束本次写操作。其中地址位长度视EEPROM容量来定,按目前公司使用的EEPROM容量来看,地址不超过2个字节。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 9I2C接口接口EEPROM写操作写操作 页写操作(Page Write):EEPROM内有Page Write Buffer,不同
10、容量EEPROM的Page Write Buffer大小不同(可参见表1)。Page写时,数据先写入Page Write Buffer,等到Master发出Stop指令后才往存储单元写。页写操作序列见上图。跟字节写不同的是:Master写完1个字节后不发Stop指令,继续送出数据,直到写满EEPROM的Page Write Buffer为止。EEPROM内部有地址循环计数器,每写入1个字节地址加1,当地址加到当前Page的上界时,如果还继续写的话,地址就会回到当前Page的下界。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 10I2
11、C接口接口EEPROM写操作写操作页写操作(Page Write):以24LC08为例,它的存储结构为:4(block)2568(bit) ,Page Write Buffer大小为16bytes。那么Page Write时,在Control Byte指定Block选择位“B1B0”,在Word Address指定8位地址“A7A6A5A4A3A2A1A0”。那样“B1B0”和“A7A6A5A4”就指定了当前Page Write是哪个Page,“B1B0A7A6A5A40000”为当前Page的下界,“B1B0A7 A6A5A41111”为当前Page的上界,而“A3A2A1A0”指定了从当前
12、Page的哪个单元开始写。内部地址循环计数器就从“A3A2A1A0”开始计数,每写1次加1,当计数值为“1111”时,如果继续写的话,计数值就回到“0000”。所以一次Page Write操作时,数据不要超过1个Page的长度,否则会造成数据覆盖。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 11I2C接口接口EEPROM读操作读操作当前地址读操作:当前地址读操作序列见上图。Master每对EEPROM进行一次读/写操作,EEPROM内部地址计数器就会加1,因此当前地址单元为前一次访问的下一个地址单元。Current Read方式就
13、利用这个原则省略了地址,Master只需送出包含读命令的控制字节就行。Master接收1个字节后,无效Acknowledge bit,并送出Stop指令,结束当前读操作。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 12I2C接口接口EEPROM读操作读操作 任意读操作:任意读操作:任意读操作序列见上图。Master要先送出写操作命令,并且送出地址,地址可以是任意的。Master要重新发出开始指令来结束写操作,然后再送出包含读命令的控制字节。Master接收1个字节后,无效Acknowledge bit,并送出Stop指令,结束当前
14、读操作。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 13I2C接口接口EEPROM读操作读操作 连续读操作:连续读操作:连续读操作序列见上图。跟当前地址读/任意读不同的是:Master接收到1个字节后,不发出Stop指令,而是继续送出Acknowledge bit,继续接收。每读1次EEPROM地址计数器加1;同样是循环计数,读操作地址计数边界为整片EEPROM地址边界,不同于Page Write地址计数边界。因此连续读方式可以读完整片EEPROM。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confi
15、dential Page 14I2C接口接口EEPROM读操作读操作 Acknowledge bit检测检测: :执行写操作时,不论是Byte Write还是Page Write,EEPROM只有接收到Master发出的Stop指令后,才触发内部的写周期。在内部写周期内,EEPROM不会响应Master的指令。所以Master要检测内部写周期什么时候结束。Master写操作和EEPROM内部写周期检测流程如下图:HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 15I2C接口接口EEPROM读操作读操作 Acknowledge bit检
16、测:检测:第1步:Master往EEPROM写数据。第2步:Master结束写操作,并触发EEPROM内部写周期。第3步:检测开始,Master发出开始指令。第4步:Master发送包含写命令的控制字节。第5步:Master检测EEPROM送出的Acknowledge bit:如果是“0”,表示EEPROM内部写周期已结束,可以进行后续的操作;如果是“1”,则表示EEPROM内部写周期还没有结束,这时候应该跳回到第3步,进行循环检测。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 16不同不同I2C接口接口EEPROM之间区别之间区别
17、 目前,公司使用目前,公司使用Microchip公司、公司、Atmel公司的公司的I2C接口接口EEPROM。它们之间的。它们之间的主要区别见下表:主要区别见下表:HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 17SPI接口接口EEPROM管脚说明管脚说明SPI接口接口EEPROM的管脚图如图所示:的管脚图如图所示:HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 18SPI接口接口EEPROM管脚说明管脚说明S:片选输入,高电平有效。C:时钟输入。D:串行数据输入。Q:串行
18、数据输出。ORG:存储结构选择,上拉或悬空时选择为16-bit方式,下拉时选择为8-bit方式。Vcc/Vss:电源/地。不同的EEPROM有不同的电源电压要求,同时,不同的供电电压支持的最高时钟频率也不同,电压越高支持的时钟频率也越高。Microchip公司的SPI接口EEPROM最高时钟频率能达到3MHz,Atmel公司的最高能达到2MHz,ST公司的最高能达到1MHz。PE:Program Enable,写保护输入,只有Microchip公司的SPI接口EEPROM才有,上拉或悬空时可以正常写,下拉时写保护。Atmel、ST公司的SPI接口EEPROM中该管脚为NC脚。HUAWEI TE
19、CHNOLOGIES Co., Ltd.HUAWEI Confidential Page 19SPI接口接口EEPROM操作分析操作分析不同容量的SPI接口EEPROM操作指令中的地址码长度不同,并且同样的EEPROM在8-bit方式时,地址码长度比16-bit方式时多一位。下表列出的是93LC76的操作指令集,以供参考。其中各指令的含义如下:READ:读。EWEN:擦除、写使能。ERASE:擦除。ERAL:全擦除。WRITE:写。WRAL:全写。EWDS:擦除、写禁止。HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 20SPI接口接
20、口EEPROM操作分析操作分析 93LC76指令集ORG=1(16-bit) 93LC76指令集ORG=0(8-bit)HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 21 擦除、写禁止擦除、写禁止/使能操作指令序列使能操作指令序列擦除、写使能指令序列如上图左,擦除、写禁止指令序列如上图右。时钟未画,后续的图中一样。此时数据输出管脚为高阻态,也未画出。当EEPROM上电后或者执行了擦除、写禁止指令后,处于擦除、写禁止状态,此时禁止擦除、写操作,但允许读操作。此时若要想进行擦除或写操作,必须先执行擦除、写使能指令。 SPI接口接口EEP
21、ROM擦除、写禁止擦除、写禁止使能操作使能操作HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 22 读操作序列读操作序列读操作序列见上图。数据输出(Q)管脚先输出1个“0”bit,然后再由高位到低位顺序输出数据,如果是连续地读,那么后续的输出就没有这个“0”Bit。16-bit或8-bit方式由ORG引脚电平选择。只要片选(S)继续为高,并且时钟继续提供,那么EEPROM地址指针会自动增加,就能连续地输出数据,这样就能读出整片EEPROM的数据。Atmel公司SPI接口EEPROM不支持连续读操作。SPI接口接口EEPROM读操作读操
22、作HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 23 写操作序列写操作序列写操作序列见上图。只写一个指定的存储单元。写操作中已包含了自动擦除操作,所以不需要额外的擦除指令。16-bit或8-bit方式由ORG引脚电平选择。SPI接口接口EEPROM写操作写操作HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 24SPI接口EEPROM触发内部Programming的条件:1、ST公司的:当EEPROM在时钟的上升沿完成最后一位(写和全写操作时为数据位,擦除和全擦除时为地址位)
23、的采样,片选(S)必须在下一个时钟上升沿之前拉低,以触发EEPROM内部的Programming。2、Atmel公司的:EEPROM完成最后一位(写和全写操作时为数据位,擦除和全擦除时为地址位)的采样后就触发内部Programming。3、Microchip公司的:EEPROM在时钟上升沿完成最后一位(写和全写操作时为数据位,擦除和全擦除时为地址位)的采样的同时触发内部Programming。Master对SPI接口EEPROM是否完成内部Programming的检测:1、ST、Atmel公司的要求Master在片选(S)低电平保持了至少TSLSH(见前面SPI接口EEPROM传输协议介绍)时
24、间,但是在EEPROM完成Programming之前将其拉高,并通过EEPROM的数据输出(Q)管脚电平来检测是否完成Programming,Q=“0”表示Busy,Q=“1”表示Ready。 具体的片选(S)低电平时间长度可以参见芯片手册。2、Microchip公司的在检测EEPROM是否完成内部Programming时,不需要Master将片选(S)拉低。SPI接口接口EEPROM写操作写操作HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 25 全写操作序列全写操作序列全写操作序列见上图。往整片EEPROM里写相同的数,不需要指定
25、具体的地址。16-bit或8-bit方式由ORG引脚电平选择。全写操作中已包含了自动擦除操作,所以不需要额外的擦除指令。Microchip、Atmel、ST公司EEPROM触发内部Programming的条件、对是否完成Programming的状态检测方法,分别跟写操作时一样。SPI接口接口EEPROM全写操作全写操作HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 26 擦除操作序列擦除操作序列擦除操作序列见上图。只擦除指定的一个存储单元。擦除操作使得存储单元数据变成全“1”,不需要Master输入数据。16-bit或8-bit方式由
26、ORG引脚电平选择。Microchip、Atmel、ST公司EEPROM触发内部Programming的条件、对是否完成Programming的状态检测方法,分别跟写操作时一样。 SPI接口接口EEPROM擦除操作擦除操作HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 27 全擦除操作序列全擦除操作序列整片EEPROM存储单元数据变成全“1”,不需要Master输入地址和数据。Microchip、Atmel、ST公司EEPROM触发内部Programming的条件、对是否完成Programming的状态检测方法,分别跟写操作时一样。SPI接口接口EEPROM全擦除操作全擦除操作HUAWEI TECHNOLOGIES Co., Ltd.HUAWEI Confidential Page 28目前,公司使用Microchip公司、Atmel公司、ST公司的SPI接口EEPROM。它们之间的主要区别见下表: 不同不同SPI接口接口EEPROM之间区别之间区别