S42WD42功能简介
---- 上电复位:S42WD42可以提供130~270ms的上电复位脉冲,同时提供高电平复位和低电平复位引脚。复位电压转折点有三种供选择:2.55V、4.25V、4.5V。
---- 看门狗定时时间长度为1.6s(标称值)。
---- EEPROM为512字节×8bit,可以写一个字节,也可写一页(16字节/页)。每个单元可反复写入1百万次。无论写入字节或页,写入时间都是不超过10ms。
---- 第二电源电压监测:S42WD42除了主电源电压之外,还提供一个单独的引脚监测其电压,并输出状态。
S42WD42引脚排列(如所示) |
---- /Vlow:当Vsense < 1.24V时,/Vlow输出低电平。注意此脚是漏极开路输出,需外加上拉电阻。
---- Vsense:第二监测电压输入。
---- SDA:I2C总线数据输入/输出。
---- SCK:I2C总线时钟输入。
---- /RESET:低电平复位输入/漏极开路输出。该脚可手动复位输入一个低电平,对应第7脚RESET输出高电平复位信号。
---- RESET:高电平复位输入/漏极开路输出。该脚可手动复位输入一个高电平,对应第2脚/RESET输出低电平复位信号。
---- Vcc:有两个版本芯片,工作电压2.7~5.5V
--------- 或4.5V~5.5V。
软件命令
---- S42WD42支持五种软件命令:写入一个字节;写入一页(16个字节);从当前地址读一个字节;从任意地址随机读一个字节;顺序读若干字节。
---- 命令编码为:1010xxA8R/W A7A6A5A4A3A2A1A0。个字节位R/W为1,就是READ;R/W为0,就是WRITE。
---- 如果软件在1.6s以内没有对S42WD42进行任何读写操作,看门狗就会复位芯片,输出复位脉冲。
S42WD42与8031接口电路如所示。 |
软件源代码:
; 8031 external crystal is 11.0592 MHz SCK BIT P1.0 SDA BIT P1.1READ: LCALL START MOV A,DP ; DPTR包含读单元地址(9位) ANL A,#1 RL A ORL A,#10100000B ; R/W=0 LCALL SHIFTOUT LCALL POLLACK MOV A,DPL LCALL SHIFTOUT LCALL POLLACK LCALL START ; START again MOV A,#10100001B ; R/W=1 LCALL SHIFTOUT LCALL POLLACK MOV A,@R0 DEC A MOV R7,A ; read up to 256 bytes sequentially INC R0 ; input bufferRDNXT: LCALL SHIFTIN LCALL ACK ; CPU send out ACK to S42WD42 MOV @R0,A INC R0 DJNZ R7,RDNXT LCALL SHIFTIN LCALL UNACK MOV @R0,A LCALL STOP CLR C RETWRITE: LCALL START MOV A,DPH ; DPTR包含写入单元地址(9位) ANL A,#1 RL A ORL A,#10100000B ; R/W=0 LCALL SHIFTOUT LCALL POLLACK MOV A,DPL LCALL SHIFTOUT LCALL POLLACK MOV A,@R0 DEC A ANL A,#0FH ; write data length varies from 1 to 16 INC A MOV R7,A INC R0 ; point to beginning of output bufferWRNXT: MOV A,@R0 LCALL SHIFTOUT LCALL POLLACK INC R0 DJNZ R7,WRNXT LCALL STOP CLR C RETSTART: SETB C SETB SCL JNB SCL,BUSY SETB SDA JNB SDA,BUSY CLR SDA CLR SCL CLR CBUSY: RET ; C=1 if I2C BUS is busy STOP: CLR SCL NOP CLR SDA SETB SCL SETB SDA RETSHIFTOUT:MOV B,#8OUTNXT: CLR SCL RLC A MOV SDA,C SETB SCL DJNZ B,OUTNXT CLR SCL RETSHIFTIN: MOV B,#8 CLR SCL SETB SDA ; SDA pin as inputINNXT CLR SCL NOP NOP SETB SCL MOV C,SDA RLC A DJNZ B,INNXT CLR SCL RETACK: CLR SCL NOP CLR SDA ; ACK=0 SETB SCL CLR SCL RETUNACK: CLR SCL NOP SETB SDA ; ACK=1 SETB SCL CLR SCL RETPOLLACK: CLR SCL NOP SETB SDA ; ready to input SETB SCL MOV C,SDA ; slave respond with ACK if C=0 CLR SCL JNC ACKED LCALL STOP ; C=1 if no ACK from S42WD42ACKED: RET END
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。