新型高精度时钟芯片RTL-4553_单片机论文
关键词:单片机 时钟芯片 rtc-4553
现在流行的串行时钟芯片很多,如ds1302、ds1307、pcf8485等。这些芯片接口简单、价格低廉、使用方便,被广泛地采用,但这些芯片都存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。本文介绍一种epson公司最新推出的rtc-4553时钟芯片。该芯片采用内置晶振和独特的数据方法,大大提高了时钟精度和可靠性。rtc-4553配有串行通信接口,另有30×4bit sram,有2000~2099的百年日历,采用14脚sop封装,电池耗电2μa,时钟误差<3 min/年且无需调整,是仪器仪表高精度时钟的理想芯片。
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为读时序图。
2.3 数据写入
rtc-4553采用特殊的写指令,对第0页的0d~0fh及第1页、第2页的寄存器的操作采用常规写法,地址后面的数据将原样写入寄存器中,而对时间寄存器写操作指令只能将内部的内容加1,并自动完成转换。图4为时间寄存器写时序。芯片这种独特的设计,防止了时钟区数据被意外干扰出现非法数据的可能,这正是该芯片高可靠性的原因所在。
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 ;结束,关芯片