X25165芯片在8051系统中的应用

2006-05-07 15:49:37来源: 国外电子元器件

系统中的应用实例,给出了X25165与8051单片机的硬件接口电路和软件接口程序。

单片机  看门狗  X25165  接口  软件

 
   美国Xicor公司生产的Z25165芯片是集看门狗、电压监控和串行EEPROM三项功能于一体的集成电路产品。该芯片的应用将有利于简化单片机系统的结构,降低系统的成本,减少对电路板的空间需求,增加系统的可靠性。

1 芯片简介

    X25165的引脚排列如图1所示,各引脚功能说明如表1所列。

    X25165使用简单的三线总线串行外设接口(SPI),对芯片进行操作的所有操作码、字节地址及写入的数据均从SI引脚输入,写入数据在串行时钟(SCK)的上升沿被锁存,从芯片读取的数据从SO引脚串行移出,并在串行时钟的下降沿输出数据。

    芯片的看门狗定时器和Vcc电压监视器都对微处理器提供独立的保护,当系统发生故障时,只要看门狗定时器达到其可编程的超时极限,RESET引脚立即自动产生一个持续200ms的高电平复位信号。当电源电压Vcc降到4.5V以下时,RESET引脚立即自动产生主电平复位信号,并一直保护到电源电压恢复正常。在系统电源上电或掉电时,RESET引脚也立即自动产生一个高电平复位信号。这样,就能有效地防止系统死机、数据误写及误操作等故障现象的发生。

表1 X25165芯片在8051系统中的应用

引脚名

说   明

CS 片选输入(低电平有效)
SO 串行输出
SI 串行输入
SCK 串行时钟输入
WP EEPROM写保护输入
RESET 复位信号输出
Vss
Vcc 电源电压

    X25165芯片内部有2k×8位的串行EEPROM,每个字节可以擦写10万次以上,内部数据可以保存100年以上。应用时,可以通过编程对指定的块进行锁定,以防止由于误操作等原因破坏保存的数据。

2 工作原理

2.1 指令

    X25165共有七条指令(见表2),对芯片的所有操作都需要通过对指令寄存器写命令来完成,所有的指令、地址、数据均以高位在前的方式(MSB)串行传送。

表2 指令集

指令名 指令格式 操   作
WREN 0000 0110 设置写使能锁存器(允许写操作)
SFLB 0000 0000 设置FLB位
VRDI/RFLB 0000 0100 复位写使能锁存器/复位FLB位
RDSR 0000 0101 读状态寄存器
WRSR 0000 0001 写状态寄存器
READ 0000 0011 从指定的起始地址开始读数据
WRITE 0000 0010 将数据写到指定的存储单元

2.2 状态寄存器

    X25165内有一个八位状态寄存器,在任何时候都可以通过RDSR指令来读取状态寄存器的内容,也可以通过WREN,SFLB,WRSR等指令来设置状态寄存器中的某些位。状态寄存器的格式如下:

7 6 5 4 3 2 1 0
WPEN FLB WD1 WD0 BL1 BL0 WEL WIP

    WIP:是一个只读位,用于指示芯片是否正忙于内部非易失性的写操作。

    WEL:写使能,指示当前写使能锁存器的状态;

    BL1、BL0:设置EEPROM的块保护地址范围,见表3;

表3 块保护地址范围

BL1 BL0 被保护的地址范围
0 0
0 1 $0600……$07FF
1 0 $0400……$07FF
1 1 $0000……$07FF

    WD0、WD1:选择看门狗的超时周期,见表4;

表4 看门狗定时器的超时周期

WD1 WD0 看门狗超时周期
0 0 1.4秒
0 1 600毫秒
1 0 200毫秒
1 1 禁止

    FLB:只读位,指示一个易失位的状态,可用SFLB和RFLB指令进行置位和清零,上电时该位自动清零;

    WPEN:为非易失位,可用WRSR指令进行编程,该位和WP引脚配合使用能以编程方式实现对硬件的写保护(见表5)。当WP引脚为低电平且WPEN位被置位时,所有状态寄存器的写操作被禁止。

表5 块保护矩阵

状态寄存器 状态寄存器 芯片引脚 EEPROM EEPROM 状态寄存器
WEL WPEN WP 被保护块 未保护块 WPEN,BL0,BL1,WD0.WD1,BITS
0 × × 保护 保护 保护
1 1 0 保护 可写 保护
1 0 × 保护 可写 可写
1 × 1 保护 可写 可写

3 芯片应用

3.1 硬件接口电路

    在一个8051单片机系统中可按照图2的连接方式使用该芯片。

3.2 软件接口设计

    根据图2的连接方式,笔者编写了七个实用的应用接口程序,供大家参考。

    a.串行输出了程序

    将累加器A中的数据按照高位在前的顺序(MSB)串行输出至X25165芯片中。

    WD-OUTB:MOV R7,#08H;有8位数据要传输

    WD-OUTB1:CLR P1.2;使SCK为低电平

    RLC A ;将输出位移入C

    MOV P1.1,C;进位位移入SI

    SEIB P1.2;使SCK位为高电平

    DJNZ R7,WD-OUTB1;判断循环是否结束

    CLR P1.1;清SI

    RET

    b.串行输入子程序

    将1字节的数据按照高位在前的顺序(MSB)从X25165中串行读入累加器A中。

    WD-INB:MOV R7,#08H;有8位数据要接收

    WD-INB1:SETB P1.2;产生SCK脉冲

    CLR P1.2 ;

    MOV C, P1.0 ;S0移入进位位C

    RLC A ;累加器A带进位位去移

    DJNZ R7, WD-INB1;判断循环是否结束

    RET

    c.读状态寄存器子程序

    用于从X25165中读状态寄存器内容,读出的内容存放在A中。

    WD-RD-SR:CLR P1.2 ;使SCK为低电平

    CLR P1.3 ;芯片选择CS有效

    MOV A,#05H ;RDSR指令送累加器A

    LCALL WD-OUTB ;输出RDSR指令

    LCALL WD-INB ;读取状态寄存器内容

    CLR P1.2 ;使SCK为低电平

    SETB P1.3 ;芯片选择CS无效

    RET

    d.写状态寄存子程序

    该子程序可以设置块保护地址范围和可编程看门狗定时器超时周期。子程序中需要先使片选信号有效,然后用WREN指令设置写使能锁存器,8位指令输出后必须将片选信号拉高,这样才能使命令生效。同样,数据输出完成后也必须将片选信号拉高。

    WD-WR-SR:CLR P1.2 ;使SCK为低电平

    CLR P1.3 ;芯片选择CS有效

    MOV A, #06H ;WREN指令送累加器A

    LCALL WD-OUTB ;输出WREN指令

    SETB P1.3 ;使CS为高电平

    CLR P1.3 ;芯片选择CS有效

    MOV A,#01H ;WRSR指令送累加器A

    LCALL WD-OUTB ;输出WRSR指令,置状态寄存器

    MOV A,#10H;无块保护,超时周期;800ms

    LCALL WD-OUTB ;输出状态寄存器内容

    CLR P1.2 ;使SCK为低电平

    SETB P1.3 ;使CS为高电平

    RET ;

    e.读存储单元内容子程序

    从X25165的串行EEPROM中读指定单元内容,需要先发送READ指令和16位地址,指定地址单元的数据在SCK脉冲的作用下就会从S0引脚依次移出。

    WD-RD-DATA:CLR P1.2 ;使SCK为低电平

    CLR P1.3 ;芯片选择CS有效

    MOC A,#03H ;READ指令送累加器A

    LCALL WD-OUTB;输出READ指令

    MOV A,DPH;高位地址送累加器A

    LCALL WD-OUTB ;输出高位地址

    MOV A,DPL ;低位地址送累加器A

    LCALL WD-OUTB ;输出低位地址

    LCALL WD-INB ;读取(DPTR)单元的数据

    MOV R4,A ;数据送R4

    LCALL WD-INB ;读取(DPTP+1)单元的数据

    MOV R5,A ;数据送R5

    CLR P1.2 ;使SCK为低电平

    SETB P1.3 ;芯片选择CS无效

    RET

    f.写存储单元内容子程序

    该子程序向芯片内EEPROM的指定起始地址写入数据,与写状态寄存器子程序一样,程序中需要先输出WREN指令设置写使能锁存器。然后,按高位在前的顺序输出存放于DPTR中的16位地址和存放于R5、R4中的16位数据。最后,要循环检测状态寄存器的WIP位,直到芯征内容的写操作完成,以确保数据被安全可靠地写入芯片。

    WD-WR-DATA:CLR P1.2 ;使SCK为低电平

    CLR P1.3 ;芯片选择CS有效

    MOV A,#06H ;WREN指令送累加器A

    LCALL WD-LUTB ;输出WREN指令

    SETB P1.3 ;使CS为高电平

    CLR P1.3 ;芯片选择CS有效

    MOV A,#02H ;WRITE指令送累加器A

    LCALL WD-OUTB ;输出WRITE指令

    MOV A,DPH ;输出高8位地址

    LCALL WD-OUTB ;

    MOV A,DPL ;输出低8位地址

    LCALL WD-OUTB ;

    MOV A, R4 ;输出低8位数据

    LCALL WD-OUTB ;

    MOV A,R5 ;输出高8位数据

    LCALL WD-OUTB;

    CLR P1.2 ;使SCK为低电平

    SETB P1.3 ;使CS为高电平

    WD-WIP-POLL:LCALL WD-RD-SR ;读状态寄存器

    JB ACC.0, WD-WIP-POLL

    ;检测WIP位

    RET

    g.看门狗定时器复位子程序

    只要在设定的看门狗定时器超时周期以内执行子程序并向芯片的CS引脚发送一个下降沿,看门狗就不会产生复位输出信号。

    WD-EAT:SETB P1.3 ;

    CLR P1.3 ;产生CS下降沿脉冲

    SETB P1.3 ;

    RET

    笔者在设计车轮径轴向位移检测仪时使用了X25165芯片,从而简化了系统结构,降低了成本,提高了系统的可靠性,使用过程中保存的数据从未发生丢失现象,使用结果令人满意。

关键字:芯片  系统  应用

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

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved