摘要:介绍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 | - | CNTR | 24/12 |
TPS——TPOUT输出时钟选择位,1输出1024Hz,0输出1/10Hz;
CNTR——时钟寄存器清零标志;
24/12——1为24小时制,0为12小时制。
控制寄存器2:
BUSY | PONC | - | - |
BUSY——有进位溢出;
PONC——初始上电检测,为1表示刚上电需校时。
控制寄存器3:
- | - | MS1 | MS0 |
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 ;结束,关芯片