时钟芯片DS1302应用于晶振的负载电容可靠起振的方法

发布者:sjjawx831最新更新时间:2018-03-24 来源: eefocus关键字:时钟芯片  DS1302  负载电容  可靠起振 手机看文章 扫描二维码
随时随地手机看文章

    在 DS1302的实际使用中,采用辅助电容法,可以解决 DS1302 在应用中由于 晶振的负载电容不匹配而引起的停振问题。

    概述

 

    DS1302 是 Dallas 公司生产的一种实时时钟芯片。它通过串行方式与单片机 进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时 间信息,并可对月末日期、 闰年天数自动进行调整;它还拥有用于主电源和备份电 源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还 能提供 31 字节的用于高速数据暂存的 RAM. 鉴于上述特点,DS1302 已在许多单片 机系统中得到应用,为系统提供所需的实时时钟信息。

    一、 DS1302 的主要特性

    1. 引脚排列

图 1 DS1302 引脚排列图

图 1 DS1302 引脚排列图

  DS1302 的引脚排列如图 1 所示,各引脚的功能如下:

  X1,X2--32768Hz 晶振引脚端;

  RST--复位端;

  I/O--数据输入/输出端;

  SCLK--串行时钟端;

  GND--地; VCC2,VCC1--主电源与后备电源引脚端。

  2. 主要功能

  DS1302 时钟芯片内主要包括移位寄存器、控制逻辑电路振荡器、实时时钟电路以及用于高速暂存的 31 字节 RAM.DS1302 与单片机系统的数据传送依靠 RST,I/O,SCLK 三根端线即可完成。其工作过程可概括为:首先系统 RST 引脚驱 动至高电平,然后在作用于 SCLK 时钟脉冲的作用下,通过 I/O 引脚向 DS1302 输入 地址/命令字节,随后再在 SCLK 时钟脉冲的配合下,从 I/O 引脚写入或读出相应的 数据字节。因此,其与单片机之间的数据传送是十分容易实现的。

  二、 时钟的产生及存在的问题

  (1) 在实际使用中,我们发现 DS1302 的工作情况不够稳定,主要表现在实时 时间的传送有时会出现误差,有时甚至整个芯片停止工作。 我们对 DS1302 的工作 电路进行了分析,其与单片机系统的连接如图 2 所示。从图中可以看出,DS1302 的外部电路十分简单,惟一外接的元件是 32768Hz 的晶振。通过实验我们发现: 当外接晶振电路振荡时,DS1302 计时正确;当外接晶振电路停振时,DS1302 计时 停止。因此,我们认为 32768Hz 晶振是造成 DS1302 工作不稳定的主要原因。

图 2 DS1302 与单片机系统的连接图

图 2 DS1302 与单片机系统的连接图

  (2) DS1302 时钟的产生基于外接的晶体振荡器,振荡器的频率为 32768Hz.该晶 振通过引脚 X1、X2 直接连接至 DS1302,即 DS1302 是依靠外部晶振与其内部的电 容配合来产生时钟脉冲的。 由于 DS1302 在芯片本身已经集成了 6pF 的电容,所以, 为了获得稳定可靠的时钟,必须选用具有 6pF 负载电容的晶振。 然而,许多人在选用晶振时仅仅注意了晶振的额定频率值,而忽视了晶振的 负载电容大小,甚至连许多经销商也不能提供所售

  晶振的负载电容。所以即使在 使用中选用了符合 32768Hz 的晶振,但如果该晶振的负载电容与 DS1302 提供的 6pF 不一致时,就会影响晶振的起振或导致振荡频率的偏移,出现上述在应用中 的问题。

  三、 利用辅助电容实现负载匹配

  (1) 当所选的晶振负载电容不是 6pF 时,可以采用增加辅助电容的方法提 高或降低 DS1302 振荡器的电容性负载,使之与晶体所需的电容值匹配。

  如果已知 晶体的负载电容为 CI,若 CI<6pF,则可以增加一个并联电容 CS 以产生所需的总负 载电容 CI,即 CI=6pF+CS;若 CI>6pF,则可以在晶体的一端增加一个串联电容 CS, 以产生所需的负载电容 CI,即 1/CI=1/6pF+1/CS,通过计算即可得出应增加的辅助电容大小。辅助电容的接法如图 3 所示。

图 3 CS 连接电路图

图 3 CS 连接电路图

  (2) 在使用前对晶体的负载电容并不知道的情况下,通过测定晶体振荡频率的 方法可以确定该晶体的负载电容。

  对于晶体振荡器来说,其振荡频率与负载电容之间的关系是确定的。以本文讨论的 DS1302 使用的 32768Hz 晶振为例: 当它工作于所要求的负载电容时,能较 准确地产生 32768Hz 的频率;当它的负载电容小于 6pF 时,其振荡频率会正向偏 移;当它的负载电容大于 6pF 时,其振荡频率就会负向偏移。因此,对于未知负载 电容的晶体应首先采用实验的方法,在其两端加入辅助电容使晶体起振,然后用 频率计测出振荡频率。若测得频率大于 32768Hz,说明负载电容偏小;若测得频率 小于 32768Hz,说明负载电容偏大。对辅助电容逐步调整,最终使振荡频率尽可能 接近 32768Hz,则此时晶体端所接负载电容的总和就是适合该晶体的负载电容。

  结论

  以上方法经我们在实际工作中多次使用,证明确实有效。它放宽了 DS1302 在使用中对晶振的条件要求,增强了 DS1302 在工作中的稳定性,对 DS1302 更广泛 地应用具有积极的意义。


关键字:时钟芯片  DS1302  负载电容  可靠起振 引用地址:时钟芯片DS1302应用于晶振的负载电容可靠起振的方法

上一篇:基于SOPC的步进电机多轴控制器应用
下一篇:基于PMC75F2413A和SPCE061A的直流变频洗衣机的控制系统设计

推荐阅读最新更新时间:2024-03-16 15:58

PCF8563 时钟芯片驱动程序 (STM8S/STM8L)
模拟I2C读取时钟芯片PCF8563中的日期时间 #define SCLK_Clr() GPIO_ResetBits(GPIOD, GPIO_PIN_1)//SDA IIC接口的时钟信号 #define SCLK_Set() GPIO_SetBits(GPIOD, GPIO_PIN_1) #define SDIN_Clr() GPIO_ResetBits(GPIOD, GPIO_PIN_2)//SCL IIC接口的数据信号 #define SDIN_Set() GPIO_SetBits(GPIOD, GPIO_PIN_2) u8 buf ; void SDA_IN(u8 in) { if(in) GPIO_I
[单片机]
AT89C2051+LCD1602+DS1302实时时钟设计(c51)
#include at892051.h #include intrins.h #define uchar unsigned char sbit rs=P3^0;//LCD1602控制脚 sbit rw=P3^1; sbit e=P3^2; sbit io=P3^4;//DS1302 PCI总线引脚 sbit rst=P3^5; sbit sclk=P3^3; uchar hour,minute,second,year,months,date,day;//显示时间寄存器 uchar whour,wminute,wsecond,wyear,wmonths,wdate,wday;//设制初始时间寄存器 uchar code tab
[单片机]
PIC按键LCD+DS1302+AD程序(C程序)
//;******************************************* #include pic.h #include string.h #define uchar unsigned char #define uint unsigned int static volatile unsigned char acc @ 0x20; static volatile bit acc0 @ (unsigned)&acc*8+0; static volatile bit acc7 @ (unsigned)&acc*8+7; #define PORTAIT(add,bit) ((unsigned)(&
[单片机]
PIC按键LCD+<font color='red'>DS1302</font>+AD程序(C程序)
高集成度、低功耗时钟芯片简化严苛的10/25/100G时钟设计
  Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)日前推出全新的高性能时钟发生器系列产品,特别针对10/25/100G应用提供业界最高集成度的时钟解决方案。下面就随模拟电子小编一起来了解一下相关内容吧。 新型 Si5332 时钟系列产品利用Silicon Labs经过验证的MultiSynth小数时钟合成技术,提供具有一流频率灵活性和230fs rms抖动性能的时钟解决方案。多种覆盖6、8和12个时钟输出的 Si5332 选项,可为要求严苛的应用实现时钟树整合。这些应用包括超大型数据中心交换机、服务器、存储、网络、小型蜂窝网络、宽带、广播视频、多功能打印机和工业应用等。   复杂设备──例如以太网交换机
[模拟电子]
高集成度、低功耗<font color='red'>时钟芯片</font>简化严苛的10/25/100G时钟设计
关于STM32驱动DS1302实时时钟的一点思考
之前用51驱动过DS1302,没用多久就输出了正确的时间。当时以为这块芯片其实没啥,很简单。但是现在用STM32做项目,用到同样的芯片,以为这有何难,只要把那个程序拿过来复制黏贴改一下IO设置不就行了?但是事情远没有想想的那么简单。 经过3天的挣扎,现在才知道当时自己是多么天真。 关于DS1302的基本操作可以看这里:http://www.cnblogs.com/qsyll0916/p/7712695.html 好了,废话少说了,进入正题。 首先DS1302读写方式属于3线SPI。CE、SCK、IO。其中IO口属于双向IO口,我们读写都要经过这个IO口。在用51开发的时候,因外他是准双向IO,不需要我
[单片机]
AVR DS1302源程序
//mega16 7.3728MHz石英晶体 iccavr6.31a //相关定义: #define uint unsigned int #define uchar unsigned char #define DS1302_RST 0 //pc0 #define DS1302_SDA 1 //pc1 #define DS1302_SCLK 6 //pc6 //ds1302相关 //DS1302_RST=1 #define Set_DS1302_RST() PORTC|=1 DS1302_RST //DS1302_RST=0 #define Clr_DS1302_RST() PORTC&=~(1 DS1302_RS
[单片机]
ATmega128(DS1302
//ATmega128的DS1302实时时钟芯片驱动程序 //编译环境 AVR Studio 4.17/AVR GCC //系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms //作者:张奇 zhangqi123zq@126.com //日期:2010.02.20 //*********************************************************************** // 包含文件 //*********************************************************************** #include str
[单片机]
基于IIC1.0的时钟芯片应用程序设计
    摘要: 在对串行实时时钟芯片X1203内部结构和工作特性作基本介绍的基础上,设计出用单片机的通用I/O口线虚拟I2C总线来实现与时钟芯片的串行接口电路以及利用虚拟I2C总线软件包VIIC设计时钟芯片1203的应用程序。     关键词: 单片机 实时时钟 虚拟I2C总线 实时时钟是微机测控系统中的一个重要组成部分。美国Xicor公司推出的串行接口实时时钟芯片X1203提供备用电源输入引脚,使器件能用非可重新充电电池任务用电源。该芯片以其体积小、功耗低、使用简单、接口容易、与单片机连线少为主要特点,同时具有较高的精度,能很好满足微机测控系统的求。下面具体介绍该芯片的内部结构、工作特性、与51系列单片机接
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved