可编程看门狗监控EEPROM芯片X25045及其应用
- 格式:pdf
- 大小:344.96 KB
- 文档页数:1
X25045芯片简介X25045芯片简介X25045是美国Xicor 公司的生产的标准化8脚集成电路,它将EEPROM 、看门狗定时器、电压监控三种功能组合在单个芯片之内,大大简化了硬件设计,提高了系统的可靠性,减少了对印制电路板的空间要求,降低了成本和系统功耗,是一种理想的单片机外围芯片。
X25045引脚如图1所示。
其引脚功能如下。
CS :片选择输入;SO :串行输出,数据由此引脚逐位输出;SI :串行输入,数据或命令由此引脚逐位写入X25045;SCK :串行时钟输入,其上升沿将数据或命令写入,下降沿将数据输出;WP :写保护输入。
当它低电平时,写操作被禁止;Vss :地;Vcc :电源电压;RESET :复位输出。
X25045在读写操作之前,需要先向它发出指令,指令名及指令格式如表1所示。
X25045看门狗电路设计及编程X25045硬件连接图如图2所示。
X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。
在看门狗定时器预置的时间内若没有总线活动,则X25045将从RESET 输出一个高电平信号,经过微分电路C2、R3输出一个正脉冲,使CPU 复位。
图2电路中,CPU 的复位信号共有3个:上电复位(C1、R2 ,人工复位(S、R1、R2 和Watchdog 复位(C2、R3 ,通过或门综合后加到RESET 端。
C2、R3的时间常数不必太大,有数百微秒即可,因为这时CPU 的振荡器已经在工作。
看门狗定时器的预置时间是通过X25045的状态寄存器的相应位来设定的。
如表2所示,X25045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPROM 的工作设置有关。
X25045状态寄存器WD1=0,WD0=0,预置时间为1.4s 。
WD1=0,WD0=1,预置时间为0.6s 。
WD1=1,WD0=0,预置时间为0.2s 。
WD1=1,WD0=1,禁止看门狗工作。
收稿日期:2002 01 09 收修改稿日期:2002 04 26实现串行E 2PROM 芯片的PC 界面操作贾东耀,汪仁煌(广东工业大学,广东广州 510090)摘要:基于串行总线I 2C 或SPI 的E 2PROM 芯片已被广泛应用于智能仪表中,但通常对E 2PROM 的操作是利用单片机实现,可视性不强。
文中以X25045为例,给出了一种实现串行E 2PROM 芯片功能的新方案,即通过PC 机和单片机之间的串行通讯,可以很方便的实现PC 机对E 2PROM 的读写操作,并且可以把需要存入E 2PROM 的数据以数据库文件的形式保存起来,设计更为灵活。
PC 机界面采用VB6 0编程,形象直观。
该设计充分利用了PC 机的资源,在模块方式嵌入系统中,对于无显示模板系统的调试,确认存取数据和基本参数的准确性等方面的操作方便、简单。
本方案具有典型性,对于其他I 2C 或SPI 总线串行E 2PROM 的读写同样适用。
关键词:通讯约定;单片机C 语言中图分类号:TP333 文献标识码:B 文章编号:1002-1841(2002)08-0031-03Operation of Serial C hip E 2PROM On PC InterfaceJia Dongyao,Wang Renhuang(Guangdong U niversity of T echnology ,Guangdo ng 510090,China)Abstract:E 2PROM chips based on SPI or I 2C ser ial bus have been used w idely in intelligent instruments and sensors,while the normal oper atio n on E 2PROM is reailized by single chip and is inv isible.T his paper introduces one new method of realizing the function of chip E 2PROM and g ives the example of X25045.By using the serial communication between the P C and single chip,the read and w rite operation of X25045is carried out easily on PC,and the data to be sto red in E 2PRO M can be stored in database file form.T he PC interface is built by Visual Basic 6.0and vivid result is got.Especial ly in model embedded system,this method is effectiv e in debugging embedded system w ithout display model,conforming access data and ex aming the acuracy of basic parameters by making fully use of the PC resourses.T he metho d i s ty pical and can be applied to other E 2PROM chips based o n SPI or I 2C bus.Key Words:Communication Protocol;Single Chip C L anguage1 方案的提出目前基于串行总线I 2C 或SPI 的E 2PROM 芯片越来越多,被广泛应用于单片机系统、智能仪表等各个领域。
X25045编程器的制作摘要介绍X25045的编程特性以及用单片机GMS97C2051制作的编程器。
关键词单片机E2PROM 编程1 引言X25045是美国Xicor公司的产品,它将三种功能:电压监控、看门狗定时器和E2PROM 组合在单个芯片之内。
因其体积小、占用I/O口少等优点已被广泛应用于工业控制、仪器仪表等领域,是一种理想的单片机外围芯片。
为了对X25045内的E2PROM编程,用GMS97C2051单片机制作了一个简易编程器,该编程器与PC的串行口相接,编程数据可通过PC机写入X25045的E2PROM。
2 X25045简介2.1 X25045引脚:芯片选择输入;SO:串行输出;SI:串行输入;SCK:串行时钟输入;:写保护输入;Vss:地;Vcc:电源电压;RESET:复位输出。
2.2 X25045工作原理X25045内含512×8的串行E2PROM,可以直接与微控制器的I/O口串行相接。
X25045内有一个位指令寄存器,该寄存器可以通过SI来访问。
数据在SCK的上升沿由时钟同步输入,在整个工作期内,必须是低电平且必须是高电平。
如果在看门狗定时器预置的超时时间内没有总线的活动,那么X25045将提供复位信号输出。
X25045内部有一个“写使能”锁存器,在执行写操作之前该锁存器必须被置位,在写周期完成之后,该锁存器自动复位。
X25045还有一个状态寄存器,用来提供X25045状态信息以及设置块保护和看门狗的超时功能。
表1 X25045的指令集2.3 X25045的读时序(a)读E2PROM的时序(b)读状态寄存器的时序图2 X25045读时序2.4 X25045的写时序(a)写使能锁存器的时序(b)字节写操作的时序图3 X25045写时序2.5 复位操作当Vcc降至门限电压以下或看门狗定时器已达到编程的极限值,X25045的RESET引脚将输出高电平。
3 X25045编程器的组成及原理X25045编程器主要由单片机、MAX232、PS7219和LED等组成,如图4所示(虚线框部分)。
单片机监控芯片X25043的功能介绍1. 序言X25043是XICOR公司出产的单片机监控芯片。
它把四种常用的功能:上电复位、看门狗定时器、电压监控和串行EEPROM功能组合在单个封装之内。
这种组合降低了系统成本并减少了对电路板空间的要求。
1. 序言X25043是XICOR公司出产的单片机监控芯片。
它把四种常用的功能:上电复位、看门狗定时器、电压监控和串行EEPROM功能组合在单个封装之内。
这种组合降低了系统成本并减少了对电路板空间的要求。
下面分别介绍它们的功能。
2. X25043的原理X25043将多种功能集成在一起,图1是其原理框图:图1 X25043原理框图其中/WP是X25043写保护,低电平有效。
SI是串行数据输入口,串行时钟上升沿有效。
SO是串行数据输出口,串行时钟下降沿有效。
SCK是串行时钟,用于控制串行数据的I/O。
/CS是芯片片选信号,低电平有效。
VCC是供电电源。
/RESET是输出的复位信号,低电平有效。
2.1 上电复位和电压监控功能在单片机系统应用中,复位电路需要在供电电源VCC和振荡器稳定后能够提供至少2个状态的有效复位信号,对X25043来说是低电平信号。
X25043可在电源和振荡器稳定后提供200ms的有效低电平信号,然后恢复为高电平信号。
在运行过程中,X25043会时时监控供电电源VCC。
当VCC下降到小于一个预先设定的电压VTRIP时,/RESET输出信号将为低电平,使单片机系统复位,/RESET信号一直在VCC下降到1V仍有效。
在电源回升时的动作和供电复位时的动作一致。
其中,VTRIP是可以通过编程进行重新设定。
2.2 看门狗定时器功能看门狗定时器对微控制器提供了独立的保护系统。
当系统故障时,在可选的超时周期(timeout interval)之后,X25043/45看门狗将以/RESET信号作出响应。
用户可从三个预置的值中选择此周期。
一旦选定,即使在电源周期变化之后,此周期也不改变。
0 引言目前,大多数汽车油量仪表盘利用模拟电子技术通过机械式指针指示油箱油量,精度低,抗干扰能力差,显示不直观。
数字式油量计采用单片机技术,利用数字标定的方法能对任何形状的油箱进行测量,实时精确地显示汽车油箱的油量,并可实现数据的无线传送。
在系统设计中,由于要适配任意形状的油箱,并设置各种报警参数,需要EEPROM 来存储这些数并能进行查表输出,选用具有高速串行SPI接口的可擦除X25045存储器作为标定存储元件时采用无线收发模块PTR2000,实现了采集数据的远距离传送,可与手持式设备或其他监测中心通信,使用简单方便。
1 系统主要芯片介绍1.1 X25045介绍X25045是具有可编程看门狗EEPROM 的高性能集成芯片,它集成了3个主要功能:看门狗定时器、电压监测和EEPROM。
其EEPROM为512~8Bits,可以进行阵列保护,具有高速串行口SPI,控制器可通过SPI通信口实现对数据的存取。
X25045引脚功能图及功能如图1Cs:芯片选择输入;SO:串行输出;SI:串行输入;SCK:串行时钟输入;:写保护输入;Vss:地;Vcc:电源电压;RESET:复位输出。
X25045操作必须写入相应的指令,其指令集如表1所示。
表1 X25045指令集指令名指令格式操作指令名指令格式操作WREN 000001 1O 允许写操作 WRSR 00000001 写状态寄存器WRD1 000001O0 禁止写操作 READ 0000A801 1 读数据RDSR 00000101 读状态寄存器、ⅣIUTE 0000A8Ol0 写数据X25045的读写有严格的时序要求,具体参照其应用资料。
1.2 无线收发模块PTR2000介绍PTR2000是一种新型的单片无线收发数传MODEM模块,该模块在内部集成了高频接收、PLL合成、FSK调制解调、参量放大、功率放大、频道切换等功能,其工作频率稳定可靠、外围元件少、功耗极低且便于设计生产,可满足无线管制的要求且无需使用许可证,是目前低功率无线数传的理想选择,可广泛应用于车辆监控、遥控、工业数据采集系统、无线遥控系统等设计领域l 2_。
SPI接口应用之一---看门狗芯片X25045hadao 发表于 2006-5-8 0:08:41一、引脚定义及通信协议SO:串行数据输出脚,在一个读操作的过程中,数据从SO脚移位输出。
在时钟的下降沿时数据改变。
SI:串行数据输入脚,所有的操作码、字节地址和数据从SI脚写入,在时钟的上升沿时数据被锁定。
SCK:串行时钟,控制总线上数据输入和输出的时序。
/CS :芯片使能信号,当其为高电平时,芯片不被选择,SO脚为高阻态,除非一个内部的写操作正在进行,否则芯片处于待机模式;当引脚为低电平时,芯片处于活动模式,在上电后,在任何操作之前需要CS引脚的一个从高电平到低电平的跳变。
/WP:当WP引脚为低时,芯片禁止写入,但是其他的功能正常。
当WP引脚为高电平时,所有的功能都正常。
当CS为低时,WP变为低可以中断对芯片的写操作。
但是如果内部的写周期已经被初始化后,WP变为低不会对写操作造成影响。
二、硬件连接三、程序设计状态寄存器:WIP:写操作标志位,为1表示内部有一个写操作正在进行,为0则表示空闲,该位为只读。
WEL:写操作允许标志位,为1表示允许写操作,为0表示禁止写,该位为只读。
BL0,BL1:内部保护区间的地址选择。
被保护的区间不能进行看门狗的定时编程。
WD0,WD1:可设定看门狗溢出的时间。
有四种可选择:1.4s,600ms,200m s,无效。
操作码:WREN 0x06 设置写允许位WRDI 0x04 复位写允许位RDSR 0x05 读状态寄存器WRSR 0x01 写状态寄存器READ 0x03/0x0b 读操作时内部EEPROM页地址WRITE 0x02/0x0a 写操作时内部EEPROM页地址程序代码:#i nclude <reg51.h>sbit CS= P2^7;sbit SO= P2^6;sbit SCK= P2^5;sbit SI= P2^4;#define WREN 0x06 //#define WRDI 0x04 //#define RDSR 0x05 //#define WRSR 0x01 //#define READ0 0x03 //#define READ1 0x0b //#define WRITE0 0x02 //#define WRITE1 0x0a //#define uchar unsigned charuchar ReadByte() //read a byte from device{bit bData;uchar ucLoop;uchar ucData;for(ucLoop=0;ucLoop<8;ucLoop++){SCK=1;SCK=0;bData=SO;ucData<<=1;if(bData){ ucData|=0x01; }}return ucData;}void WriteByte(uchar ucData)//write a byte to device {uchar ucLoop;for(ucLoop=0;ucLoop<8;ucLoop++){if((ucData&0x80)==0) //the MSB send first{SI=0;}else{SI=1;}SCK=0;SCK=1;ucData<<=1;}}uchar ReadReg() //read register{uchar ucData;CS=0;WriteByte(RDSR);ucData=ReadByte();CS=1;return ucData;}uchar WriteReg(uchar ucData) //write register{uchar ucTemp;ucTemp=ReadReg();if((ucTemp&0x01)==1) //the device is busyreturn 0;CS=0;WriteByte(WREN);//when write the WREN, the cs must have a high levelCS=1;CS=0;WriteByte(WRSR);WriteByte(ucData);CS=1;return 1;}void WriteEpm(uchar cData,uchar cAddress,bit bRegion) /* 写入一个字节,cData为写入的数,cAddress为写入地址,b Region为页 */{while((ReadReg()&0x01)==1); //the device is busyCS=0;WriteByte(WREN); //when write the wren , the cs must hav e a high levelCS=1;CS=0;if(bRegion==0){ WriteByte(WRITE0);} //write the page addrelse{WriteByte(WRITE1);}WriteByte(cAddress);WriteByte(cData);SCK=0; //CS=1;}uchar ReadEpm(uchar cAddress,bit bRegion)/* 读入一个字节,cAddress为读入地址,bRegion为页 */{uchar cData;while((ReadReg()&0x01)==1);//the device is busyCS=0;if(bRegion==0){WriteByte(READ0); }else{WriteByte(READ1);}WriteByte(cAddress);cData=ReadByte();CS=1;return cData;}main(){WriteReg(0x00);//set the watchdog time as 1.4sCS=1;CS=0; //reset the watchdog}基于X25045的新型看门狗电路图作者:重庆三峡学院应用技术学院谢辉来源:不详点击数:更新时间:2007年02月14日看门狗(watchdog)电路是嵌入式系统需要的抗干扰措施之一。
第20卷第2期 中南民族学院学报(自然科学版) Vol.20No.2 2001年6月 J ournal of South-Central Univer sity for Nationalities(Nat.S ci.) Jun.2001X25045芯片的原理及应用刘立航(中南民族学院电子信息工程学院)摘 要 介绍了具有可编程看门狗、电压监控、串行E2P RO M功能的X25045芯片的工作原理,并给出了与单片机连接的可应用于语音系统的软件编程.关键词 X25045电路;单片机;软件中图分类号 T P333.1 文献标识码 A 文章编号 1005-3018(2001)02-0049-05微机控制系统干扰、电源的波动引起的程序飞车和数据丢失,常造成系统的各种误动作或死机,直接影响着系统的正常运行,设计人员为此倍感头痛.X25045(X25043)芯片将微机测控系统中常用的功能:看门狗定时器、电源电压监控、上电复位、串行E2PROM集成在一片8引脚的芯片内.这种组合大大减少了对电路板的空间要求,简化了硬件设计,降低了成本和功耗,大大提高了系统的可靠性和安全性.1 芯片简介1.1 引脚功能引脚功能见表1.表1 引脚功能引脚号引脚名说明1CS片选输入(低电平有效)2SO串行输出3WP E2PR OM写保护输入4V ss地5SI串行输入6SCK串行时钟输入7RESET复位信号输出8V cc电源电压1.2 看门狗看门狗定时器对微处理器提供了独立的保护系统.它提供了3种定时时间,可用编程选择200ms,600m s和1.4s.当系统故障程序飞车,只要看门狗定时器计时达到其编程的超时极限, RESET引脚立即自身产生高电平复位信号.CS电平变化(上升沿)将复位看门狗定时器.1.3 电压监控当电流电压Vcc降至最小转换点以下,芯片的RESET引脚立即产生复信信号,这样电源接通和关断瞬间电源电压不稳定就不会造成系统死机,数据误写及误动作等故障.收稿日期 2001-02-28作者简介 刘立航(1954~),男,讲师,中南民族学院电子信息工程学院,武汉4300741.4 E 2PROM 存贮器芯片内部的存贮器采用CM OS 工艺的4096位串行E 2PROM .它的内部按512×8组织.每个字节可擦写10万次以上,内部数据可保存100年以上.使用简单的3线总线串行外设接口(SPI),就可对芯片进行读写操作.一次最多写4个字节[1].2 工作原理2.1 指令寄存器X25045内含一个8位的指令寄存器,对芯片的所有操作都需通过对指令寄存器写命令来完成,指令集见表2.所有指令、地址和数据都是以高位(M SB )在前的方式串行传送.读和写指令的第3位包含了高地址位A 8.表2 指令集指令名指令格式操 作W REN00000110设置写使能锁存器允许写WR DI 00000100复位写使能锁存器禁止写RD SR 00000101读状态寄存器W RSR 00000001写状态寄存器R EAD 0000A 8011从所选地址开始的存贮器中读出数据WR IT E0000A 8010把数据写入所选地址开始的存贮器中2.2 状态寄存器在任何情况下都可以通过RDSR 指令读状态寄存器,状态寄存器格式为:D 7D 0XXW D1WD 0BL 1BL 0WELWI P 其中WIP 位表示X 25045是否忙于向E 2PROM 写数据.为0时表示没有写操作在进行,可以向E 2PROM 写数据;为1时,表示正在写操作,此时不能向E 2PROM 写数据.WIP 由WREN 指令设定为1,在下列情况之一可使W IP 复位为0.(1)执行WRDI .(2)上电时.(3)字节、页或状态寄存器写周期完成之后.(4)WP 脚变成低电平.WEL 位表示写使能锁存器的状态,是只读位,在X 25045的写周期内该位为1,写结束后为0.WRSR 指令可以对状态寄存器中非易失性位BL1,BL0,WD1,WD0进行设置.BL1和BL0位确定E 2PROM 的块保护地址范围,它们的关系如表3所示.在块保护地址范围内的数据只能被读出.WD 1、WD 0控制看门狗定时器时状态,超时选择如表4所示.表3 块保护选择状态寄存器BD 1BD 0被保护的阵列地址00无写保护01$180~$1F F 10$100~$1F F表4 看门狗定时选择状态寄存器看门狗超时周期BL 1BL 0(典型值)00 1.4s 01600ms 10200ms 50 中南民族学院学报(自然科学版)第20卷3 读/写操作时序3.1 读时序(1)把CS 拉低以选择芯片;(2)发送8位的读(READ )指令;(3)送8位的字节地址;(4)将所选定地址的存储器中的数据移到期S0线上.继续提供时钟脉冲可连续读出接下的地址空间中的数据.每移出一个字节数据之后,字节地址自动增到下一个较高地址.达到最高地址时,地址计数器翻转至00H ,无限循环下去直到把CS 置为高电平,可以终止操作.图1所示为从EEPROM 阵列中读数据的操作时序.图1 读时序 图2 写时序3.2 口写时序在写时序之前,必须先发出WREN 指令使“写使能”锁存器置位(见图2).具体置位“写使能”锁存器操作为:(1)CS 先被拉到低电平;(2)由时钟同步送入WREN 指令.(3)将CS 变为高电平.写数据到EEPROM 操作为(见图3):(1)拉低CS 并保持在低电平;(2)发送写指令(WRIT E );(3)写数据.可以连续写多达4个字节的数据,但必须是这4个字节驻留在同一页上.图3为写数据到EEPROM 阵列中的操作时序.图3 写数据串 图4 与单片机的接口51第2期 刘立航:X 25045芯片的原理及应用 4 X25045与GM S97L51单片机接口4.1 硬件设计设计的硬件的原理图见图4.4.2 软件设计芯片提供了E2PROM存贮数据及看门狗功能.它必须通过微处理器加以控制方可实现.针对上述硬件,现提供以下调试通过的子模块,这些模块已应用于模拟存贮器的语音系统中,效果良好[2].(1)写8位数据子程序.入口参数:数据:A WRIT E8: M OV R3,#08HWRIT E81:RLC A M OV SI,C CLR SCK SETB SCK DJNZ R3,WRIT E81 CLR SI RET(2)读8位数据子程序.出口参数:数据:A READ8: MOV R3,#08HREAD81:SET B SCKCLR SCKMOV C,SORLC DJNZ R3,READ81RET(3)读状态子程序.出口参数:状态子节:A READ-SR:M OV A,#RDSR;发读命令CLR CSLCALL WRIT E8;写命令LCALL READ8;读状态SET B CSRET(4)写状态子程序.入口参数:DL:状态字出口参数:F0=0,写成功;=1,失败WRIT E-SR:LCALL READ-SRCLR F0JNB ACC.0,WRITE-SR1SET B F0SJM P WRIT E-SR2WRIT E-SR1:CLR CSM OV A,#WREN;写使能允许LCALL WRIT E8SET B CSCLR CSM OV A,#WRSR;写状态命令 LCALL WRITE8 M OV A,DL LCALL WRITE8 CLR SCK SETB CSWRIT E-SR2:RET (5)写一字节子程序.入口参数:25045地址:DPT R数据:DHWRIT E-BYT E:LCALL READ-SR JB ACC.0,WRIT E-BYT E CLR C M OV A,#WREN;写使能 LCALL WRIT E8 SET B CSMOV DPTR,#BYTE-ADDRCLR CSMOV A,#WRIT E;数据写入EEPOM命令MOV B,DPHMOV C,B0HMOV ACC.3,C52 中南民族学院学报(自然科学版)第20卷LCALL WRITE 8MOV A ,DPL ;写地址LCALL WRITE8MOV A,DH ;写数据LCALL WRITE 8CLR SCK SET B CSRET(6)读一字节子程序.入口参数:25045地址:DPT R 出口参数:DLREAD -BYT E :LCALL READ -SRJB ACC.0,READ-BYTE MOV DPT R,#BYTE-ADDRCLR SCK CLR CSMOV A,#READ;读命令M OV B ,DPH M OV C ,B 0H M OV ACC.3,C LCALL WRITE 8M OV A ,DPL LCALL WRITE 8LCALL READ8M OV DL,A CLR SCK SETB CSRET若要连续读2个数据字节,只需在M OV DL,A 后再插入LCALL READ8,M OV DH ,A ,读多字节,依此类推.(7)复位看门狗.RST -WDOG :CLR CSSET B CS RET参 考 文 献[1] 力源电子股份有限公司.X 25043/45数据手册[M ].武汉:力源电子出版公司,1998.[2] 孙育才.M CS-51系列单片微型计算机及其应用[M ].南京:东南大学出版社,1997.34~94.Principle and Application of X 25045CMOS ChipL iu L ihangAbstract T his article introduces the wo rking principle of X25045CMOS chip,w hich hasthe function on the prog rammable watchdog ,voltage mo nitor -contr ol and serial E 2PROM .And it gives a softw are pro gram o n connecting w ith single chip w hich can be used in phonetic sy stem .Keywords X25045circuit;single chip;prog ramLiu Lihang Lect.,Dept o f Electr onic Engineering ,SCU F N ,Wuhan 43007453第2期 刘立航:X 25045芯片的原理及应用 。
SPI接口应用之一---看门狗芯片X25045 SPI接口应用之一---看门狗芯片X25045hadao 发表于 2006-5-8 0:08:41一、引脚定义及通信协议SO:串行数据输出脚,在一个读操作的过程中,数据从SO脚移位输出。
在时钟的下降沿时数据改变。
SI:串行数据输入脚,所有的操作码、字节地址和数据从SI脚写入,在时钟的上升沿时数据被锁定。
SCK:串行时钟,控制总线上数据输入和输出的时序。
/CS :芯片使能信号,当其为高电平时,芯片不被选择,SO脚为高阻态,除非一个内部的写操作正在进行,否则芯片处于待机模式;当引脚为低电平时,芯片处于活动模式,在上电后,在任何操作之前需要CS引脚的一个从高电平到低电平的跳变。
/WP:当WP引脚为低时,芯片禁止写入,但是其他的功能正常。
当WP引脚为高电平时,所有的功能都正常。
当CS为低时,WP变为低可以中断对芯片的写操作。
但是如果内部的写周期已经被初始化后,WP变为低不会对写操作造成影响。
二、硬件连接三、程序设计状态寄存器:7 6 5 4 3 2 1 0X X WD1 WD0 BL1 BL0 WEL WIP WIP:写操作标志位,为1表示内部有一个写操作正在进行,为0则表示空闲,该位为只读。
WEL:写操作允许标志位,为1表示允许写操作,为0表示禁止写,该位为只读。
BL0,BL1:内部保护区间的地址选择。
被保护的区间不能进行看门狗的定时编程。
WD0,WD1:可设定看门狗溢出的时间。
有四种可选择:1.4s,600ms,200ms,无效。
操作码:WREN 0x06 设置写允许位WRDI 0x04 复位写允许位RDSR 0x05 读状态寄存器WRSR 0x01 写状态寄存器READ 0x03/0x0b 读操作时内部EEPROM页地址 WRITE 0x02/0x0a 写操作时内部EEPROM页地址程序代码:#i nclude <reg51.h>sbit CS= P2^7;sbit SO= P2^6;sbit SCK= P2^5;sbit SI= P2^4;#define WREN 0x06 //#define WRDI 0x04 //#define RDSR 0x05 //#define WRSR 0x01 //#define READ0 0x03 //#define READ1 0x0b //#define WRITE0 0x02 //#define WRITE1 0x0a //#define uchar unsigned charuchar ReadByte() //read a byte from device{bit bData;uchar ucLoop;uchar ucData;for(ucLoop=0;ucLoop<8;ucLoop++){SCK=1;SCK=0;bData=SO;ucData<<=1;if(bData){ ucData|=0x01; }}return ucData;}void WriteByte(uchar ucData)//write a byte to device {uchar ucLoop;for(ucLoop=0;ucLoop<8;ucLoop++){if((ucData&0x80)==0) //the MSB send first{SI=0;}else{SI=1;}SCK=0;SCK=1;ucData<<=1;}}uchar ReadReg() //read register{uchar ucData;CS=0;WriteByte(RDSR);ucData=ReadByte();CS=1;return ucData;}uchar WriteReg(uchar ucData) //write register{uchar ucTemp;ucTemp=ReadReg();if((ucTemp&0x01)==1) //the device is busyreturn 0;CS=0;WriteByte(WREN);//when write the WREN, the cs must have a high levelCS=1;CS=0;WriteByte(WRSR);WriteByte(ucData);CS=1;return 1;}void WriteEpm(uchar cData,uchar cAddress,bit bRegion) /* 写入一个字节,cData为写入的数,cAddress为写入地址,b Region为页 */{while((ReadReg()&0x01)==1); //the device is busyCS=0;WriteByte(WREN); //when write the wren , the cs must hav e a high levelCS=1;CS=0;if(bRegion==0){ WriteByte(WRITE0);} //write the page addrelse{WriteByte(WRITE1);}WriteByte(cAddress);WriteByte(cData);SCK=0; //CS=1;}uchar ReadEpm(uchar cAddress,bit bRegion)/* 读入一个字节,cAddress为读入地址,bRegion为页 */ {uchar cData;while((ReadReg()&0x01)==1);//the device is busyCS=0;if(bRegion==0){WriteByte(READ0); }else{WriteByte(READ1);}WriteByte(cAddress);cData=ReadByte();CS=1;return cData;}main(){WriteReg(0x00);//set the watchdog time as 1.4s CS=1;CS=0; //reset the watchdog}基于X25045的新型看门狗电路图作者:重庆三峡学院应用技术学院谢辉来源:不详点击数:更新时间:2007年02月14日看门狗(watchdog)电路是嵌入式系统需要的抗干扰措施之一。
(第二组)题目:25045存储性能测试 (任务五)组长:潘博(自电09-2班)学号: 200911204078 组员:李瑞(自电09-2班)学号: 200911204076 温东旭(自电09-2班)学号: 200911204055徐起阳(自电09-2班)学号: 200911204064 指导教师:刘伟、裴岩、斯日古楞、杨传颖、韩海波、高鹏、郭慧(研)、胡元元(研)设计时间:2012年6月18日~2012年6月29日一、设计目的:通过对X25045简易编程器的设计,完成X25045存储性能的测试。
二、设计任务:任务内容:设计一个简易串行E2PROM编程器,能够将PC机电脑中数据块送给X25045存储器,也能够将X25045存储器中的数据块传给PC电脑。
任务分工:潘博:总体布局。
温东旭:筛选有用资料,编写程序。
徐起阳:搜集资料。
李瑞:绘制编程框图。
三、框图:1.硬件编程框图及相关说明X25045编程器的组成及原理X25045编程器主要由单片机、MAX232、PS7219和LED等组成,如图4所示(虚线框部分)。
其中单片机采用LG公司生产的GMS97C2051,该单片机指令和引脚与MCS-51系列兼容。
MAX232为RS-232接口,用于单片机与PC之间的电平转换。
PS7219为串行输入,可直接驱动8位LED的显示模块主程序框图、子程序框图及相关说明X25045编程器的组成框图2.主程序框图主程序框图①②四、程序清单:1、X25045程序清单;X25045子程序;WATCHDOG_RST 复位看门狗;READ_SR 读状态寄存器;WRITE_SR 写状态寄存器;WRITE_BYTE 写25045 一个字节;READ_BYTE 读25045 一个字节;WRITE8 一个字节写入25045;READ8 一个字节从25045读出WREN EQU 00000110B ;使能写操作WRDI EQU 00000100B ;禁止写操作WRSR EQU 00000001B ;写状态寄存器RDSR EQU 00000101B ;读状态寄存器WRITE0 EQU 00000010B ;写0-FFHWRITE1 EQU 00001010B ;写100-FFHREAD0 EQU 00000011B ;读0-FFH,READ1 EQU 00001011B ;读100-FFHDH DATA 5FHCS EQU P3.4SCK EQU P3.5SI EQU P3.6SO EQU P3.7K1 EQU P1.0K2 EQU P1.1K3 EQU P1.4K4 EQU P1.5COUNT EQU 30HMAIN:MOV DH, #00HSTART: LCALL KEY;LCALL X25045_WRKEY:LCALL KR245 ;键采集LCALL KK ;键识别LCALL KKK ;键处理/*子程序*/KR245: ;键采集MOV P0,#0LCALL SEL8MOV P1,#0FFHMOV A,P1LCALL SEL7;ANL A,#0FHRETSEL7:CLR P2.7SETB P2.6SETB P2.5RETSEL8:SETB P2.7SETB P2.6SETB P2.5RET//键识别KK:REL:CJNE A,#OFFH,REL ;不相等转移LCALL DELAY10MSCJNE A,#OFFH,KEY1RET//键处理KKK:KEY1:JB K1,KEY2 ;bit=1转移,否则顺序执行LCALL X25045_WRITELCALL DELAYSJMP STARTKEY2: JB K2,KR245LCALL X25045_READLCALL DELAYSJMP START/* KEY3: CJNE A,#04H,KEY4CPL L3 ;取反LCALL DELAYSJMP MAINKEY4: CJNE A,#08H,MAINCPL L4 ;取反LCALL DELAYSJMP MAIN */ RETX25045_WRITE:MOV B, #10HMOV DH,#5AHLCALL COUNT_KEYLCALL WRITE_BYTELCALL DISPLAY1/*数码管*/COUNT_KEY:SK3: JB K3,SK4INC COUNT ;自动加1MOV R4,COUNTCJNE R4,#9,NEXT ;不相等转移MOV R4,#0SK4: JB K4,SK3DEC COUNT ;自动减1MOV R4,COUNTCJNE R4,#9,NEXTMOV R4,#0RETDISPLAY1:NEXT: MOV A,R4MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ASETB P2.7 ;DT2选通CLR P2.6CLR P2.5LCALL DELAY10MSCLR P2.7 ;DT2选通SETB P2.6CLR P2.5 ;关DT2RETX25045_READ:MOV B,10HMOV DH,#5AHLCALL READ_BYTELCALL DISPLAY2RETDISPLAY2:MOV A,DHMOV P0,ASETB P2.7 ;DT2选通SETB P2.6CLR P2.5LCALL DELAY10MSCLR P2.7 ;DT2选通CLR P2.6SETB P2.5LCALL DELAY10MS ;关DT2RETTABLE: DB 7EH,06H,0B6H,9EH,0CCH,0DAH,0FAH,0EH,0FEH,0CEH //延时子程序DELAY: MOV R5,#20LOOP2: LCALL DELAY10MSDJNZ R5,LOOP2RETDELAY10MS:MOV R6,#200LP1: MOV R7,#248LP2: DJNZ R7,LP2DJNZ R6,LP1RETEND;---------------------------------------------------------------- ;@读状态寄存器;功能:此段程序是读25045的状态寄存器值;出口:ACC=状态寄存器值;寄存器使用:ACC,R0READ_SR:CLR CS ;片选MOV A,#RDSR ;"读状态寄存器"命令字LCALL WRITE8 ;发送命令LCALL READ8 ;读数据SETB CS ;撤片选RET;---------------------------------------------------------------- ;写状态寄存器;功能:此段程序是写25045的状态寄存器中的WD0,WD1,BP0和BP1状态控制位;入口:DH;出口:F0 0写成功;1,失败WRITE_SR:LCALL READ_SR ;设置写使能CLR F0JNB ACC.0,WRITE_SR1SETB F0 ;撤片选RETWRITE_SR1: CLR CSMOV A,#WRENLCALL WRITE8SETB CSCLR CSMOV A,#WRSRLCALL WRITENMOV A,DHLCALL WRITE8SETB CSWSTCHDOG_RES:CLR CSSETB CSRET;-----------------------------------------;写25045 一个字节;入口参数:地址B,数据DH;占用资源:A,R3WRITE_BYTE:ACALL READ_SRJB ACC.0,WRITE_BYTECLR CSMOV A,#WRENACALL WRITE8SETB CSCLR CSMOV A,#WRITE0ACALL WRITE8MOV A,BACALL WRITE8MOV A,DHACALL WRITE8CLR SCKSETB CSRET;-----------------------------------------;读25045 一个字节;入口参数:地址B,数据DH;占用资源:A,R3READ_BYTE:ACALL READ_SRJB ACC.0,READ_BYTE ;bit=1转移,否则顺序执行CLR CSMOV A,#READ0ACALL WRITE8MOV A,BACALL WRITE8ACALL READ8MOV DH,ASETB CSRET;---------------------------------------------------------------- ;@ 写8位数据子程序;功能:此段程序发送一字节数据到25045中;入口:A=要发送的数据字节;寄存器使用:R3,ACCWRITE8:MOV R3,#08 ;设定位计数器初值RLC A ;带"C"左移MOV SI,C ;发送位数据CLR SCKSETB SCK ;置时钟线DJNZ R3,WRITE81 ;字节结束判断RET;---------------------------------------------------------------- ;@ 读8位数据子程序;功能:此段程序从25045中接收一字节数据;出口:A=接收到的数据字节;寄存器使用:R3,ACCREAD8:MOV R3,#08 ;设定位计数器初值READ81:SETB SCKCLR SCKMOV C,SORLC ADJNZ R3,READ81RETEND2、七段LED显示器自检MAIN: LCALL DT1LCALL DT2LCALL DT3LCALL DT4LCALL DT5LJMP MAINRETDT1: CLR P2.5CLR P2.6CLR P2.7LCALL LEDLCALL BEEPLCALL cc1LCALL BEEPRETDT2: CLR P2.5CLR P2.6SETB P2.7LCALL LEDLCALL BEEPLCALL CC1LCALL BEEPRETDT3: CLR P2.5SETB P2.6CLR P2.7LCALL LEDLCALL BEEPLCALL CC1LCALL BEEPRETDT4: CLR P2.5SETB P2.6SETB P2.7LCALL LEDLCALL BEEPLCALL CC1 LED流程图 LCALL BEEPRET Array DT5: SETB P2.5CLR P2.6CLR P2.7LCALL LEDLCALL BEEPLCALL CC1LCALL BEEPRETcc1: LCALL SEL0LCALL DELAYLCALL SEL1LCALL DELAYLCALL SEL2LCALL DELAYLCALL SEL3LCALL DELAYLCALL SEL4LCALL DELAYLCALL SEL5LCALL DELAYLCALL SEL6LCALL DELAYLCALL SEL7LCALL DELAYLCALL SEL8LCALL DELAYLCALL SEL9LCALL DELAYLCALL SEL10LCALL DELAYRETSEL0: MOV A,#7EHMOV P0,ALCALL DELAYRETSEL1: MOV A,#0CHMOV P0,ALCALL DELAYRETSEL2: MOV A,#0B6H MOV P0,ALCALL DELAYRETSEL3: MOV A,#09EH MOV P0,ALCALL DELAYRETSEL4: MOV A,#0CCH MOV P0,ALCALL DELAYRETSEL5: MOV A,#0DAH MOV P0, A LCALL DELAYRETSEL6: MOV A,#0FAH MOV P0,ALCALL DELAYRETSEL7: MOV A,#0EH MOV P0,ALCALL DELAYRETSEL8: MOV A,#0FEH MOV P0,ALCALL DELAYRETSEL9: MOV A,#0DEH MOV P0,ALCALL DELAYRETSEL10: MOV A,#01H MOV P0,ALCALL DELAYRETDELAY: MOV R1,#0FFH LOOP1: MOV R2,#0FFH LOOP2: DJNZ R2,LOOP2 DJNZ R1,LOOP1 RETBEEP: CLR P2.3ACALL DELAY1 SETB P2.3ACALL DELAY1RETDELAY1: MOV R3,#0FFHLOOP3: MOV R4,#0FFHLOOP4: DJNZ R4,LOOP4DJNZ R3,LOOP3RETLED: MOV A,#02HMOV P0,ALCALL DELAYMOV A,#04HMOV P0,ALCALL DELAYMOV A,#08HMOV P0,ALCALL DELAYMOV A,#10HMOV P0,ALCALL DELAYMOV A,#20HMOV P0,ALCALL DELAYMOV A,#40HMOV P0,ALCALL DELAYMOV A,#80HMOV P0,ALCALL DELAYMOV A,#01HMOV P0,ALCALL DELAYRET3、键盘自检MAIN: LCALL SWITCHANL A,#0FHCJNE A,#0FH,KEYSJMP MAINKEY: LCALL DELAY1LCALL SWITCHANL A,#0FHCJNE A,#0FH,LOOP1 SJMP MAINRETLOOP1: RRC AJC AALCALL BEEPLCALL DT2AA: RRC AJC AA1 键盘自检流程图 LCALL BEEPLCALL DT3AA1: RRC ALCALL BEEPLCALL DT4AA2: RRC AJC MAINLCALL BEEPLCALL DT5LJMP MAINRETSWITCH: MOV P0,#0LCALL SEL8MOVMOV A,P1LCALL SEL7RETBEEP: CLR P2.3LCALL DELAYSETB P2.3LCALL DELAYRETSEL7: SETB P2.5SETB P2.6CLR P2.7RETSEL8: SETB P2.5SETB P2.6SETB P2.7RETDELAY: MOV R2,#0FFHLOOP3: MOV R3,#0FFHLOOP4: DJNZ R3,LOOP4DJNZ R2,LOOP3RETDELAY1: MOV R4,#20LOOP5: MOV R5,#250LOOP6: DJNZ R5,LOOP6DJNZ R4,LOOP5RETDT2: CLR P2.5CLR P2.6SETB P2.7LCALL LED1RETLED1: MOV R6,#0CHMOV P0, R6LCALL DELAYRETDT3: CLR P2.5SETB P2.6CLR P2.7LCALL LED2RETLED2: MOV R6,#0B6HMOV P0,R6LCALL DELAYRETDT4: CLR P2.5SETB P2.6SETB P2.7LCALL LED3RETLED3: MOV R6,#09EHMOV P0,R6LCALL DELAY RETDT5: SETB P2.5CLR P2.6CLR P2.7LCALL LED4RETLED4: MOV R6,#0CCHMOV P0,R6LCALL DELAYRET4、蜂鸣器自检BEEP: MOV R0,#0A0H 蜂鸣器自检MOV R1,#0A0HMOV R2,#0A0H Array LOOP1: SETB P2.3ACALL DELAY1CLR P2.3ACALL DELAY1DJNZ R0,LOOP1LOOP2: SETB P2.3ACALL DELAY2CLR P2.3ACALL DELAY2DJNZ R1,LOOP2LOOP3: SETB P2.3ACALL DELAY3CLR P2.3ACALL DELAY3DJNZ R2, LOOP3SJMP BEEPDELAY1: MOV R6,#02HN1: MOV R7,#0EDHN2: DJNZ R7,N2DJNZ R6,N1RETDELAY2: MOV R4,#02HN3: MOV R5,#0D4HN4: DJNZ R5,N4DJNZ R4,N3RETDELAY3: MOV R3,#02HN5: MOV R4,#0BBHN6: DJNZ R4,N6DJNZ R3,N5RET五、设计体会潘博:通过两周的实训,对单片机的加深了了解。
18科技资讯 SCIENCE & TECHNOLOGY INFORMATION
2009 NO.32
SCIENCE & TECHNOLOGY INFORMATION
信 息 技 术
在单片机系统中,通常需要在外围连接一个看门狗电路,以防止程序走飞;同时,单片机系统也需要监测电源电压的情况,以便系统掉电时能及时复位,从而避免因电源波动影响系统的正常工作;另外,单片机应用时,需要提前设置一些参数,比如时钟初值、控制算法参数等,一旦设置完成后,这些参数往往需要掉电保存。
X25045是美国Xicor 公司出品的新型可编程看门狗监控EEPROM 芯片。
X25045把常用的看门狗定时、电压监控和EEPROM 三种功能组合在单个封装之内,从而降低了系统成本并减少了电路板空间的要求。
我们曾将X25045应用到“步进电机细分驱动器”、“食堂收费终端”中,在实际使用中收到了良好的效果。
1 X25045的结构及特点
1.1引脚功能
X25045是Xicor 公司生产的微处理器监控电路,采用8脚DIP 封装,各引脚见图4,其作用分别是:CS:芯片选择输入引脚;SO:串行输出引脚,在读周期内,数据在此引脚上输出,数据由串行的时钟的下降沿同步输出;WP:写保护输入引脚,当WP 为低电平时,X25045的写操作被禁止;VSS:地引脚;SI:串行输入引脚,所有操作码、字节地址以及写入存储器的数据在此引脚上输入,串行时钟的上升沿锁存SI 数据;SCK:串行时钟引脚,用于数据输入和输出的串行总线定时;RESET:复位输出引脚,高电平有效;VCC:电源电压。
1.2主要特点
(1)可编程的看门狗定时器;(2)低Vcc 检测;(3)512×8位串行E2PROM;(4)低功耗CMOS:10μA 备用电流;3mA 工作电流;(5)电源电压范围宽:2.2V 到5.5V;(6)块锁定:可以保护1/4,1/2或所有EEPROM 阵列;(7)内建写保护:上电/掉电保护电路、写锁存、写保护引脚;(8)高可靠,数据保存期为100年;(9)8引脚小型DIP 封装;(10)X25045为RESET 复位控制。
2 X25045的工作原理
X25045内部寄存器包括了一个指令寄存器、一个写使能锁存器和一个状态寄存器。
(1)指令寄存器。
指令寄存器是一个8位寄存器,它通过SI 口访问(CS 端输入必须是低电平而且WP 输入必须是高电平时有效),是用于读取状态/数据、写入命令/数据和设置/复位的写使能寄存器。
(2)写使能锁存器。
写使能锁存器主要是为了防止偶然的写操作,在写入命令/数据之前必须先设置写使能锁存器,上电时锁存器被复位。
(3)状态寄存器。
状态寄存器任何时刻都能被访问,它共有8位,最高两位未用,最低两位是只读位。
D5、D4:定时器位,表示设置的看门狗的超时段。
它由WRSR 指令来设置,其中:00表示超时时间为1.4秒;01表示超时时间为600毫秒;10表示超时时间为200毫秒;11表示禁止看门狗。
D3、D2:块保
护位,表示所使用的保护范围,在被保护的阵列地址段内用户只能读不能写。
它由WRDI 指令来设置,其中:00表示不保护;01表示保护地址段为180H ~1FFH;10表示保护地址段为100H ~1FFH;11表示保护地址段为000H ~1FFH 。
D1:锁存器状态:1表示置位状态;0表示复位状态。
(4)读时序。
当要从EEPROM 读数据时,首先把CS 拉低,发送8位的读(READ)指令,再发送8位字节地址,然后是所选定地址的存贮器中贮存的数据被移出SO 线上。
在每一个数据字节移出之后,字节地址自动增量至下一个较高的地址。
图1为读EEPROM 阵列操作的时序。
读状态寄存器时,首先要把CS 拉低,然后发送8位的RDSR 指令,接着是状态寄存器的内容被移出至SO 线上。
读状态时序和读EEPROM 阵列时序相似,只是没有地址字节命令码。
(5)写时序。
数据写入X25045之前,必须首先发出WREN 指令,把写使能锁存器置位。
数据写至E E P RO M 时,用户要发出WRITE 指令,然后写地址,接着是要写数据。
在操作期间内,CS 保持为低电平时,主机可以继续写多达4个字节的数据至X25043/45。
其时序如图2所示。
数据写状态寄存器时,首先发出WRSR 指令,然后写数据。
3 电路连接
X25045与8051连接的电路如图3所示。
4 结语
经过实际测试,把X25045应用到MCS-51单片机系列中,具有反映速度快、抗干扰能力强等优点。
由于电路简单,工作稳定可靠,软件编程比较容易,在现场控制中具有较大的推广价值。
可编程看门狗监控EEPROM 芯片X25045及其应用
李海龙1 刘江2
(1.包钢钢联股份有限公司炼铁厂 内蒙古包头 014010; 2.包头职业技术学院 内蒙古包头 014030)
摘 要:本文介绍了可编程看门狗监控芯片X25045,阐述了它的基本工作原理,并给出了X25045与8051单片机的接口电路。
关键词:看门狗 电压监控 PROM 接口中图分类号:TG434.1文献标识码:A 文章编号:1672-3791(2009)11(b)-0018-01
图3
图1
读
EEPROM 阵列时序
图
2
字节写操作时序 。