X25054/45E2PROM及其与51系列微处理器的接口方法

2006-05-07 15:49:55来源: 电子技术应用

随着测量技术的发展和微处理器的广泛应用,系统的电路越来越复杂,系统的可靠性问题也越来越突出,因此看门狗、工作电压监控和存储器差不多在每一系统中都被采用。Xicor公司提供的X25043/45 E2PROM芯片,把看门狗定时器、工作电压监控和E2PROM三种功能组合在一个封装内,并采用三线总线工作的串行外设接口(SPI)和软件协议,降低了系统成本,提高了系统的工作可靠性,非常适合于需现场修改数据的场合,可广泛应用于仪器仪表、工业自动控制等领域。但在应用中,对存储阵列的读写、看门狗定时器的设置则需通过芯片要求的指令来完成。

1 X25043/45的主要特点和引脚定义

X25043/45的主工特点如下:

(1)可编程的看门狗定时器,通过指令可选择看门狗定时时间;(2)工作电压监测,并产生复位信号;(3)读写时钟速率可达1MHz;(4)518×8位串行E2PROM;(5)数据块锁定功能和处内偶然性的写保护功能,保护存储数据;(6)CMOS器件,低功耗;(7)擦写次数最少10万次,最少100年的数据保存期。

    X25043/45的引脚排列如图1所示,引脚功能说明见表1。

表1 X25043/45的引脚说明

引脚号 引脚名 说    明
1 CS 芯片选择输入端
2 SO 串行数据输出端
3 WP 写保护输入端
4 Vss 电源地端
5 SI 串行数据输入端
6 SCK 串行时钟输入端
7 RES/RES 复位信号输出端。X25043输出低电平,X25045输出高电平。
8 Vcc 正电源输入端

2 工作原理及操作指令

X25043/45内含一个8位指令寄存器,传送指令、数据和地址时按8位串行数据格式进行,且均以最高有效位在先的方式传送。其指令见表2。SI线上输入的数据在SCK上升沿被锁存,芯片内的数据在SCK下降沿输出至SO线上。时钟SCK允许操作过程中停止并在其后恢复。

表2 X25043/45指令集(A8为地址的最高位)

指令名 指令格式

说    明

WREN 0000 0110 允许写操作,设置写使能锁存器。
WRDI 0000 0100 禁止写操作,复位写使能锁存器。
RDSR 0000 0101 读状态寄存器。
WRSR 0000 0001 写状态寄存器。
READ 0000 A8011 从开始于所选地址(A8)的存储器阵列中读数据。
WRITE 0000 A8010 将数据写入开始于所选地址(A8)的存储器阵列中。

在读存储阵列时,将CS拉至低电平,发送SCK时钟脉冲,通过SI线发送含最高位地址A8的READ指令,然后发送8位地址,选定的存储单元中的数据被送到SO线上。每个数据被送出后,芯片内的地址计数器自动加1,指向下一存储单元;若继续提供SCK脉冲,可读出下一存储单元数据。当地址计数器达到$1FFH时,自动翻转至$000H单元,直至CS为高电平,终止读操作。SO线不输出数据时,呈高阻状态。其时序如图2所示。读状态寄存器时,片选后发送RDSR指令,状态寄存器的内容在发送RDSR指令的第8个SCK脉冲的下降沿被送出到SO线上。

在写操作之前,必须置位“写使能”。在字节、页或状态寄存器写周期完成后和上电情况下,“写使能”自动复位,WP为低电平,“写使能”可被复位。“写使能”复位时,不能对芯片进行写操作。因此必须置WP为高电平,将片选CS置低电平,向芯片发出WREN指令,接着再将片选CS置位,以置位“写使能”。若不将CS置位而继续进行写操作,则写操作无效。最少一个SCK周期后,重新将CS置低电平以进行写操作。写存储阵列时,发送含最高位地址位A8的WRITE指令后,送8位地址,再送数据写入芯片。在CS一直为低电平的情况下,可以连续送写同一页地址的4个字节数据。超过4个字节数据,芯片将自动从本南的第一个地址重新写入,因此必须在第24、32、40、48个SCK周期后,置位CS;写状态字时,发送WRSR后送更新的状态寄存器内容。

    X25043/45可提供电源监控和编程看门狗定时器,给系统的时间内没有访问X25043/45,即CS为低电平,则X25043/45将产生复位信号输出。芯片通过其供电电源Vcc来实现电源监控。当Vcc低于规定值时,产生复位信号输出,对于5V工作芯片,其值为4.25~4.5V。当Vcc低于4.25~4.5V时,上电后自动产生复位信号,信号宽度最小可达100ms。

发送WREN、WRDI和RDSR指令时,不必发送地址或数据。RDSR、WRSR指令分别用于读、写X25043/45内的状态寄存器。状态寄存器的格式如下:

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
× × WD1 WD0 BL1 BL0 WEL WIP

注:×是随意位

WD1、WD0是看门狗定时位,为非易失性位,其组合表征的时间见表3。

表3 WD1和WD0组合表征的时间

WD1 WD0 看门狗定时典型值
0 0 1.4s
0 1 600ms
1 0 200ms
1 1 看门狗功能无效

BL1、BL0是存储器块保护位,为非易失性位,其组合表征的保护存储器阵列范围见表4。选定保护的块,用户只能读而不能写。

表4 BL1和BL0组合表征的保护存储器范围

BL1 BL0 初保护的阵列地址
0 0 无保护阵列
0 1 $180H~$1FFH
1 0 $100H~$1FFH
1 1 000H~$1FFH

WEL是“写使能”锁存器状态位,只读位。为1,“写使能”置位;为0,“写使能”复位。

WIP是表征芯片写操作忙位,只读位。为1,写操作正在进行;为0,无写操作。

3 X25043/45与5系列微处理器接口

由于51系列微处理器无SPI接口,因此必须通过移位方式来实现通讯。X25043与51系列微处理器接口时,一般不能通过CPU的P2口进行片选,只有在P2口为位控方式工作时才允许。51系列CPU的P2口工作于地址总线方式时,其输出是脉冲形式,地址送出后,呈高电平。因此在对X25045操作时,不能保证片选持续有效,也就不能对其进行任何操作。为此片选CS只能是位控方式连接,一般与CPU的P1或P3口相连接。

图3是一款典型接口电路。R1是复位输出的上拉电阻,上拉电阻是必需的。微处理器U1为89C52,U2为X25045,提供高电平复位信号。从图3中可以看出,X25045必须用4根线与CPU接口。

在系统接口复杂时,典型接口方式将浪费宝贵的CPU口资源;进行口扩展时,既增加成本,又减低了可靠性,不能体现X25045的优点。在系统设计时,设计人员往往都力求最精简最可靠的最小系统方案,而较复杂的系统几乎用满所有CPU口线。

图4和图5两款电路相对图3有一定改进,经济实用,均能可靠地运行。图4所示电路是一种总线接口方式。但对X25045操作时,P2口不能选择其它任何器件。若总线其它器件均以低电平选择有效时,必须选将P2口置高电平,即:MOV P2,#0FH。这款电路在对X25043/45操作时,系统的中断操作中不能有数据输入输出操作。若有数据输入输出操作,必须先关中断,否则将出现逻辑混乱,甚至烧毁CPU和X25043/45。在访问X25043/45的优先级低于中断操作的最高级时,也就是说,在访问X25045时系统还必须响应中断。如有URT串口工作时,则不能使用该款电路。

    对于图5电路,虽然只减少了一根口线,但巧妙地利用X25043/45的读操作是在SCK的上升沿、写操作是在SCK的下降沿、而SO线在无输出时呈高阻状态这一特性,将SO线和SI短接,把四线接口改为三线接口。笔者多次将图5的接口方法应用于仪器开发,将X25043/45用于口令、校准参数等的存储,均取得满意的效果,系统结构简单,并且一直稳定工作。由于它带有电源监控、上电复位和看门狗电路,所以在实际应用中,可大大减少系统的设计,提高工作可靠性。

以上三款电路的编程方法基本相同。对于图5所示的电路,在对X25045操作前,先要禁止所有中断,将P2口全部置高电平,才能读写X25045。三厌电路读写X25045时,程序唯一的差别是在定义赋值CS、SI、SCK、SO上。对于图5,将SI、SO的定义赋值相同。据图5接口方式编有如下范围程序,该程序提供了所有X25045的命令。

源程序:

CS BIT P1.0 ;P1.0作片选

SI BIT P1.2 P1.2作串作输入

SO BIT P1.2 ;P1.2作串行输出

SCK BIT P1.3 ;P1.3作串行时钟

WREN_INST EQU 06H ;写锁存指令

WRDI_INST EQU 04H ;读锁存指令

WRST_INST EQU 01H ;写状态寄存器指令

RDSR_INST EQU 05H ;读状态寄存器指令

WRITE_INST EQU 02H ;写存储阵列指令

READ_INST EQU 03H ;读存储阵列指令

BYTE_ADDR EQU 55H ;字节操作方式存储器地址

BYTE_DATA EQU 0EAH ;写操作数据

PAGE_ADDR EQU 1F0H ;页操作方式存储器地址

PAGE_DATA1 EQU 99H ;写入页的第一个数据字节

PAGE_DATA2 EQU 0AAH ;写入页的第二个数据字节

PAGE_DATA3 EQU 0CCH ;写入页的第三个数据字节

STATUS_REG EQU 10H ;状态寄存器

MAX_POLL EQU 99H ;写忙(WIP)查询最大循环数

STACK_TOP EQU 060H ;堆栈指针

初始化子程序:

INSTALL:MOV SP,#STACK_TOP

CLR EA

CLR A

SETB CS

CLR SI

SETB SO

CLR SCK

RET

复位看门狗子程序:

RES_DOG:CLR CS

SETB CS

RET

写操作忙标志查询子程序:

WIP_POLL:MOV R1,#MAX_POLL

WIP_POLL1:LCALL RS_C

JNB ACC.0,WIP_POLL2

DJNZ R1,WIP_POLL1

WIP_POLL2: RET

复位“写使能”子程序:

WD_C:CLR SCK

CLR CS

MOV A,#WRDI_INST

LCALL OUTBYT

CLR SCK

SETB CS

RET

置位“写使能”子程序:

WE_C:CLR SCK

CLR CS

MOV A,#WREN_INST

LCALL OUTBYT

CLR SCK

SETB CS

RET

写状态寄存器子程序:

WS_C:CLR SCK

CLR CS

MOV A,#WRSR_INST

LCALL OUTBYT

MOV A,#STATUS_REG

LCALL OUTBYT

CLR SCK

SETB CS

LCALL WIP_POLL

RET

读状态寄存器子程序:

RS_C: CLR SCK

CLR CS

MOV A,#RDSR_INST

LCALL OUTBYT

LCALL INBYT

CLR SCK

SETB CS

RET

单字节数据写入子程序:

BYTE_W:MOV DPTR,#BYTE_ADDR

CLR SCK

CLR CS

MOV A,#WRITE_INST

MOV B,DPH

MOV C,B.0

MOV ACC.3,C

LCALL OUTBYT

MOV A,DPL

LCALL OUTBYT

MOV A,#BYTE_DATA

LCALL OUTBYT

CLR SCK

SETB CS

LCALL WIP_POLL

RET

单字节数据读出子程序:

BYTE_R:MOV DPTR,#BYTE_ADDR

CLR SCK

CLR CS

MOV A,#READ_INST

MOV B,DPH

MOV C,B.0

MOV ACC.3,C

LCALL OUTBYT

MOV A,DPL

LCALL OUTBYT

LCALL INBYT

MOV R6,A

CLR SCK

SETB CS

RET

连续3字节数据写入子程序:

PAGE_W:MOV DPTR,#PAGE_ADDR

CLR SCK

CLR CS

MOV A,#WRITE_INST

MOV B,DPH

MOV C,B.C

MOV ACC.3,C

LCALL OUTBYT

MOV A,DPL

LCALL OUTBYT

MOV A,#PAGE_DATA1

LCALL OUTBYT

MOV A,#PAGE_DATA2

LCALL OUTBYT

MOV A,#PAGE_DATA3

LCALL OUTBYT

CLR SCK

SETB CS

LCALL WIP_POLL

RET

连续2字节读取子程序:

SEQU_R:MOV DPTR,#PAGE_ADDR

CLR SCK

CLR CS

MOV A,#READ_INST

MOV B,DPH

MOV C,B.0

MOV ACC.3,C

LCALL OUTBYT

MOV A,DPL

LCALL OUTBYT

LCALL INBYT

MOV R2,A

LCALL INBYT

MOV R3,A

LCALL INBYT

MOV R4,A

CLR SCK

SETB CS

RET

字节读出子程序:

OUTBYT:MOV R0,#08

OUTBYT1:CLR SCK

RLC A

MOV SI,C

SETB SCK

DJNZ R0,OUTBYT1

CLR SI

RET

字节写入子程序:

INBYT:MOV R0,#08

INBYT1:SETB SCK

CLR SCK

MOV C,SO

RLC A

DJNZ R0,INBYT1

RET

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200605/2476.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved