摘要:介绍EPSON公司最新推出的高精度时钟芯片RTC-4553的功能与特点。包括内部结构及引脚、功能控制和单字节的读程序。 关键词:单片机 时钟芯片 RTC-4553 现在流行的串行时钟芯片很多,如DS1302、DS1307、PCF8485等。这些芯片接口简单、价格低廉、使用方便,被广泛地采用,但这些芯片都存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。本文介绍一种EPSON公司最新推出的RTC-4553时钟芯片。该芯片采用内置晶振和独特的数据方法,大大提高了时钟精度和可靠性。RTC-4553配有串行通信接口,另有30×4bit SRAM,有2000~2099的百年日历,采用14脚SOP封装,电池耗电2μA,时钟误差<3 min/年且无需调整,是仪器仪表高精度时钟的理想芯片。 screen.width-460)this.width=screen.width-460" vspace=10 border=0> 1 内部结构及引脚 串行时钟芯片的内部结构如图1所示。它包含I/O控制器、移位寄存器、命令及逻辑控制器,表态RAM、实时时钟、计数器、晶振等部分。 图2为RTC-4553的引脚图。CS0为片选脚,低电平选中;WR为读写使能口,高为读,低为写;L1~L5为工厂出厂调整精度和测试用,使用中悬空;CS1为芯片掉电检查口,可直接与系统电源连接,芯片测到该口为低时,自动进入低功耗状态;SCK为时钟口,SIN为数据输入口,SOUT为数据输出口。另外,芯片还有1个时钟信号输出口TPOUT,该口可输出1024Hz或1/10Hz的信号,以供检测芯片的时钟精度所用。 2 功能及控制 2.1 寄存器 RTC-4553共有46×4bit寄存器。这些寄存器分3页,第1页共16个,分别为时钟寄存器和控制寄存器,如表1所列,用来存放秒、分、时、日、月、年、星期和3个特殊寄存器;第2页、第3页各有15个,共30个SRAM寄存器,页面的选择通过操作控制寄存器3的MS1、MS0位来实现。
表1 第0页 | 第1页 | 第2页 | 地址A3A2A1A0 | 功能说明 | 地址A3A2A1A0 | 功能说明 | 地址A3A2A1A0 | | 0 1 2 3 4 5 6 7 8 9 0A 0B 0C 0D 0E 0F | 个位秒 十位秒 个位分 十位分 个位时 十位时 星期 个位天 十位天 个位月 十位月 个位年 十位年 控制寄存器1 控制寄存器2 控制寄存器3 | 0 1 2 3 4 5 6 7 8 9 0A 0B 0C 0D 0E |
静
态
RAM
区
| 0 1 2 3 4 5 6 7 8 9 0A 0B 0C 0D 0E | 静
态
RAM
区 | 控制寄存器1:CNT1 TPS——TPOUT输出时钟选择位,1输出1024Hz,0输出1/10Hz; CNTR——时钟寄存器清零标志; 24/12——1为24小时制,0为12小时制。 控制寄存器2: BUSY——有进位溢出; PONC——初始上电检测,为1表示刚上电需校时。 控制寄存器3: MS1、MS0——页面选择位,00和01指向0页,10指向1页,11指向2页。 2.2 数据读出 在片选择中芯片,WR置高时,芯片处于读出状态,随着SCK脚上的时钟变化,内部寄存器的数据将出现在SOUT脚上。输入需要8个时钟,4个用来输入地址;输出数据也需要8个时钟,包括4个地址位4个数据位。数据在SCK上升沿输入,在下降沿输出。寄存器的地址由SIN脚输入,页面由MS0、MS1决定。图3为读时序图。 screen.width-460)this.width=screen.width-460" vspace=10 border=0> 2.3 数据写入 RTC-4553采用特殊的写指令,对第0页的0D~0FH及第1页、第2页的寄存器的操作采用常规写法,地址后面的数据将原样写入寄存器中,而对时间寄存器写操作指令只能将内部的内容加1,并自动完成转换。图4为时间寄存器写时序。芯片这种独特的设计,防止了时钟区数据被意外干扰出现非法数据的可能,这正是该芯片高可靠性的原因所在。 screen.width-460)this.width=screen.width-460" vspace=10 border=0> 3 应用 RTC-4553采用串行通信,与单片机接口简单,在设计中RAM区可放置少量的停电后系统需要保存的数据。CS1也可与单片机的掉电检测口相连,以便能迅速进入低功耗状态。图5以PIC单片机为例,给出连接图。 按图5给出单字节的读程序: 入口:FDE的低4位存放读地址,W的低4位存放读地址 BSF RA,WR ;读状态 BCF RA,CS0 ;选芯片 MOVLW 8 MOVWF Count ;准备发8位 LOOP:BCF RA,SCK ;SCK低电平 BCF RA,SIN BTFSS FDE,0 ;FDE的0位为1 ;则SIN口为1 GOTO LLL ;否则SIN口输出0 BSF RA,SIN LLL: RRF FDE,1 ;FDE右移,准备发下一位 BSF RA,SCK ;SCK高电平 DECFS2 Count GOTO LOOP ;读指令发完 MOVLW 8 ;准备接收数据 MOVWF Count LOOP1: BCF RA,SCK NOP BSF RA,SCK RRF W,0 BCF W,0 BTFSS RA,Sout ;读判断 GOTO LLL1 BSF W,0 LLL1: DECFS2 Count GOTO LOOP1 BCF RA,CS0 ;结束,关芯片
|