时钟芯片DS1302可靠起振的方法
- 格式:doc
- 大小:4.84 KB
- 文档页数:2
时钟芯片DS1302可靠起振方法
罗政球
【期刊名称】《电子制作》
【年(卷),期】2009(000)006
【摘要】DS1302是DALLAS公司生产的一种实时时钟芯片,它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、润年天数自动进行调整,它还拥有用于主电源和备份电源的双电源引脚。
在主电源关闭的情况下,也能保持时钟的连续运行,另外,它还能提供31字节的用于高速数据暂存的RAM。
鉴于上述特点,DS1302正在许多单片机系统中得到应用,为系统提供所需的实时时钟信息。
【总页数】2页(P23-24)
【作者】罗政球
【作者单位】湖南省浏阳市职业中专
【正文语种】中文
【中图分类】TP368.1
【相关文献】
1.基于STC89C52单片机DS1302时钟芯片定时开关的设计与仿真 [J], 张宁丹;金桂
2.TMS320F28335与时钟芯片DS1302的串行通信 [J], 赵振东;李彦斌;董晓龙;姬占涛
3.利用DS1302时钟芯片实现“时间锁”的方法 [J], 陶海敏
4.时钟芯片DS1302可靠起振的方法 [J], 屠运武;谷松;王甬生;钟英华
5.实时时钟芯片DS1302在教学中的研究与应用 [J], 张继峰
因版权原因,仅展示原文概要,查看原文内容请购买。
关于时钟芯片DS1302的问题数采仪上一直使用的是pcf8563。
但是在雨情主板(msp430)上却出现了问题:问题1,延迟要特别长(甚至500ms)才能读出正确的数值。
问题2,IIC的sda线上会出现半个电平(不是低电平,也不是高电平,而是介于两者之间)的情况。
问题3,使用msp430 149时正常,但是使用msp430 1611时却读取不到时间。
这些问题无法解决,因此决定试用开发板上使用的时钟芯片DS1302。
该芯片很好用,用简单的飞线方式连接到msp430 1611主板上后,程序就可以跑起来,并可以正常读取和设置时间。
但是新的问题出现了:前1天跑的好好的主板,把纽扣电池卸掉后,时间不走了。
也怀疑是软件的问题,但是想不明白,在软件没有任何变化的情况下,为何结果会不一样,因此怀疑是DS1302芯片的问题,感觉是假的DS1302在跑了几天后就不能用了,硬件工程师也很确定的说,DS1302假货特别多,网上的查询结果也验证了这种说法,还有人说2元左右的DS1302都是假货,问过采购,我们的DS1302正是2元。
把开发板上的DS1302换到新板子上,新板子可以正常跑起来,把新板子上认为有问题的DS1302换到开发板上,开发板跑不起来。
于是更加坚定了批次性DS1302 有问题的想法。
可以这批DS1302是以前采油上用过的,用了几十片都是好的。
真的让人很迷惑。
怀疑是晶振坏了,也怀疑是匹配电容不对,还怀疑DS1302芯片是假货,总之大家忙活了1天,从硬件上去找问题。
不断的测试,终于发现了1个规律:用开发板的程序在新板子上跑一次,时钟正常,不断电,再用雨情的程序在新板子上跑则时钟正常。
终于确定是软件的问题。
同时也发现换到开发板上的那个DS1302,晶振虚焊着(郁闷死了,问题测试一定要细心,否则会害死人的),重新焊好后,开发板正常。
回想为何把开发板上的DS1302换到新板子上,新板子可以正常跑起来,原因可能是先运行了开发板程序,再运行了雨情程序,当然能跑起来了。
ds1302的工作原理
DS1302是一款实时时钟芯片,它的工作原理基于振荡器和分频器的结合。
DS1302内置有一个32.768kHz的振荡器,它通过晶体的振荡来提供一个稳定的频率信号。
该频率信号被分频器分频为1Hz 的时间基准脉冲。
在工作时,DS1302通过上电复位电路初始化其内部寄存器。
然后,DS1302使用锁存器将振荡器输出的1Hz脉冲锁存到内部计数寄存器中。
计数寄存器以BCD(二进制编码十进制)的形式存储当前时间,包括年、月、日、小时、分钟和秒。
DS1302还具有一个写保护功能,可通过设置相应的控制寄存器位来使其处于只读模式,防止误操作或恶意更改。
为了确保数据的可靠性,DS1302将计数寄存器中的数据存储在内部的SRAM(静态随机存取存储器)中,并在断电时自动切换到备用电池供电模式,以保持数据的持久存储。
当外部电源重新接入时,DS1302会从SRAM中恢复数据,并通过锁存器将其重新加载到计数寄存器中。
除了主要的时钟功能外,DS1302还提供了定时器功能,可以设置定时器的触发时间和触发动作。
总的来说,DS1302的工作原理是通过内置的振荡器和分频器产生稳定的时钟脉冲,将时间数据以BCD格式存储在计数寄
存器中,并通过写保护和备用电池供电功能确保数据的可靠性和持久性。
DS1302时序All data transfers are initiated by driving the RST input high. The RST input serves two functions. First, RST turns on the control logic which allows access to the shift register for the address/command sequence. Second, the RST signal provides a method of terminating either single byte or multiple byte data transfer.所有的数据传输在RST置一时进行。
RST输入信号有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。
A clock cycle is a sequence of a falling edge followed by a rising edge. For data inputs, data must be valid during the rising edge of the clock and data bits are output on the falling edge of clock. If the RST input is low all data transfer terminates and the I/O pin goes to a high impedance state.(如果RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
)At power–up, RST must be a logic 0 until VCC > 2.0 volts. Also SCLK must be at a logic 0when RST is driven to a logic 1 state.只有在SCLK为低电平时,才能将RST置为高电平。
那检查一下您的PCB扳布局,建议晶振离单片机距离要近,最好能贴上引脚,晶振最好与附近的pcb隔离。
DS1302要给命令才能起振的Ds1302的起振问题DS1302内部拥有部分振荡电路,有时钟发生电路,时钟寄存器,用户模式的R AM等资源。
其与微控制器的接口也非常简单:只需要SCLK,IO,CE与三个单片机的IO相连接即可。
正因为其硬件连接上的简单,使得程序的编制也显得更加复杂。
其中时钟电路的起振问题便是首先需要解决的问题:在使用某些8051单片机的时候,通常在XTAL1、XTAL2 加晶振和一定的匹配电容即可在XTAL1、XTAL2 上看到正弦波。
由于习惯思维,也必然以为在DS 1302的X1、X2 引脚加入晶振即能看到相应的正弦波,那就太想当然了。
其实由于DS1302内部结构的原因,它的时钟振荡电路是受指令控制的。
所以即使加入晶振而没有启动振荡电路,其引脚上是没有出现正常的正弦波的。
具体的操作就是在初始化的时候应该在0x81的MSB写入0。
简介在DS1302的实际使用中,采用辅助电容法,可以解决DS1302在应用中由于晶振的负载电容不匹配而引起的停振问题。
关键词时钟负载电容匹配概述DS1302是Dallas公司生产的一种实时时钟芯片。
它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。
另外,它还能提供31字节的用于高速数据暂存的RAM。
鉴于上述特点,DS1302已在许多单片机系统中得到应用,为系统提供所需的实时时钟信息。
一、 DS1302的主要特性1. 引脚排列图1 DS1302引脚排列图DS1302的引脚排列如图1所示,各引脚的功能如下:X1,X2——32768Hz晶振引脚端;RST——复位端;I/O——数据输入/输出端;SCLK——串行时钟端;GND——地;VCC2,VCC1——主电源与后备电源引脚端。
实时时钟电路DS1302芯片的原理及应用DS1302是一种实时时钟(RTC)电路芯片,由Dallas Semiconductor (现被Maxim Integrated收购)设计和制造。
它提供了一个准确的时间和日期计时功能,适用于许多应用,例如电子设备、仪器仪表、通讯设备和计算机系统等。
DS1302芯片的原理如下:1.时钟发生器:DS1302芯片内部集成了一个时钟发生器电路,它使用外部XTAL晶体和一个频率分频器来产生准确的时钟信号。
晶体的频率通常为32.768kHz,这是由于此频率具有较好的稳定性。
2.电源管理:DS1302芯片可以使用3V到5.5V的电源供电。
它内部具有电源管理电路,可以自动切换到低功耗模式以延长电池寿命。
3.时间计数器:DS1302芯片内部包含一个时间计数器,用于计算并保存当前时间、日期和星期。
它采用24小时制,并提供了BCD编码的小时、分钟、秒、日、月和年信息。
4.控制和数据接口:DS1302芯片使用串行接口与外部器件进行通信,如微控制器或外部检测电路。
控制和数据信息通过三根线SCLK(串行时钟)、I/O(串行数据输入/输出)和CE(片选)进行传输。
5.电源备份:为了确保即使在电源中断的情况下仍能保持时间数据,DS1302芯片通过附带的外部电池来提供电源备份功能。
当主电源中断时,芯片会自动切换到电池供电模式,并将时间数据存储在内部RAM中。
DS1302芯片的应用包括但不限于以下几个方面:1.时钟和日历显示:DS1302芯片可以直接连接到LCD显示屏、LED显示器或数码管等设备,用于显示当前时间和日期。
2.定时控制:DS1302芯片可以用作定时器或闹钟,在特定的时间触发一些事件。
例如,可以使用它作为控制家庭设备的定时开关。
3.数据记录:由于DS1302芯片具有时间计数功能,它可以用于记录事件的时间戳,如数据采集、操作记录或系统状态记录。
4.电源失效保护:DS1302芯片的电源备份功能可确保即使在电源中断的情况下,时间数据也能被保存,以避免系统重新启动后时间重置的问题。
ds1302工作原理DS1302是一款常用的实时时钟芯片,它具有精准的时间计数和存储功能,广泛应用于各种电子设备中。
本文将介绍DS1302的工作原理,帮助大家更好地理解这款芯片的工作方式。
DS1302芯片主要由时钟计数部分、RAM部分、控制逻辑部分和串行接口部分组成。
它采用了静态存储器和CMOS技术,具有低功耗、高稳定性和高精度的特点。
在DS1302中,时钟计数部分用于实时计数和存储时间,RAM部分用于存储控制寄存器和时钟/日历信息,控制逻辑部分用于控制整个芯片的工作,串行接口部分用于与微处理器进行通信。
DS1302的工作原理主要分为时钟计数和数据存储两个部分。
在时钟计数部分,DS1302通过外接的晶体振荡器产生稳定的时钟信号,并通过分频器将时钟信号分频为1Hz的脉冲信号,然后将脉冲信号送入计数器进行计数。
计数器将计数结果存储在时钟/日历寄存器中,以实现对时间的精准计数。
在数据存储部分,DS1302将时钟/日历信息存储在RAM中,并通过控制逻辑部分实现对RAM的读写操作,从而实现对时间和日期信息的存储和更新。
在实际应用中,DS1302通常与微处理器或单片机相结合,通过串行接口进行通信。
微处理器可以通过串行接口向DS1302发送读写命令和数据,从而实现对DS1302的配置和控制。
DS1302可以通过串行接口向微处理器发送当前的时间和日期信息,从而实现对时间的显示和记录。
总的来说,DS1302的工作原理是通过时钟计数和数据存储实现对时间和日期的精准计数和存储。
它具有精准、稳定、低功耗的特点,广泛应用于各种电子设备中。
通过了解DS1302的工作原理,可以更好地应用和设计相关的电子设备,从而提高设备的性能和稳定性。
希望本文能够帮助大家更好地理解DS1302的工作原理,为相关电子设备的设计和应用提供参考和帮助。
感谢大家的阅读!。
实时时钟电路DS1302芯片的原理及应用DS1302芯片是一种低功耗的实时时钟(RTC)电路。
它包含了一个真正的时钟/日历芯片和31个静态RAM存储单元,用于存储时钟和日期信息。
DS1302芯片的工作电压范围为2.0V至5.5V,并且具有极低的功耗,非常适合于移动电子设备和电池供电的应用。
DS1302芯片的原理如下:1.时钟发生器:DS1302芯片内部具有一个实时时钟发生器,它通过晶振和电容电路生成稳定的振荡信号,用于计时。
2.时钟/计时电路:DS1302芯片内部的时钟/计时电路可以精确地计算并保持当前的时间和日期。
它具有秒、分钟、小时、日期、月份、星期和年份等不同的计时单元。
3.RAM存储单元:DS1302芯片包含31个静态RAM存储单元,用于存储时钟和日期信息。
这些存储单元可以通过SPI接口进行读写操作,并且在断电情况下也能够保持数据。
4.控制接口:DS1302芯片通过3线接口与微控制器通信,包括一个时钟线、一个数据线和一个使能线。
这种接口使得与微控制器的通信非常简单,并且能够高效地读写时钟和日期信息以及控制芯片的其他功能。
DS1302芯片的应用如下:1.实时时钟:DS1302芯片可以用作电子设备中的实时时钟。
例如,它可以用于计算机、嵌入式系统、电子游戏等设备中,以提供准确的时间和日期信息。
2.定时器:DS1302芯片的计时功能可以用于设计各种定时器应用。
例如,它可以用于计时器、倒计时器、定时开关等应用中,以实现定时功能。
3.时钟显示:DS1302芯片可以与显示模块结合使用,用于显示当前的时间和日期。
例如,它可以用于数字钟、计时器、时钟频率计等应用中。
4.能量管理:由于DS1302芯片具有低功耗特性,因此它可以用于电池供电的设备中,以实现节能的能量管理策略。
例如,它可以用于手持设备、无线传感器网络等应用中,以延长电池寿命。
综上所述,DS1302芯片是一种低功耗的实时时钟电路,具有精确计时、可靠存储和简单接口等优点,适用于计时、显示和能量管理等各种应用中。
分享一下调试DS1302时钟芯片的经验这几天,着手把以前用DS12C887 时钟芯片做的万年历,改成用DS1302 来做,以前写DS12C887 的代码时感觉蛮轻松,但是写DS1302 感觉有些棘手,在调试的过程中更是不顺的种种。
开始写代码,一开始用开发板做实验,用LCD1602 做显示,这个还是很轻松就搞定了(一天过去了)。
然后自己用DS1302 芯片焊了块板子,然后用杜邦线连接到开发板上面进行测试,不过LCD1602 什么都没有显示,(以为程序有问题不停改来改去花了很多时间,然后才确定肯定是硬件问题而不是软件问题,以为数据都没有写进DS1302 中),经过分析可能是开发板上面的某些芯片可能会对SPI 的数据传输造成一些影响(一天过去了)自己又焊了一块单片机的板子,把LCD1602 给放上去然后连接好DS1302,一上电时钟开始走了,顿时感觉轻松了,结果仔细一看,时间全部都是乱的,我又开始怀疑是程序问题,我开始修改程序,但是怎么样都没有结果(感觉很久没有写程序,放这10 多天的假已经没有感觉,感觉无从下手,很是郁闷),找不到问题只能又把LCD1602 放到开发板上面去做测试,一试还是可以在开发板上面正常工作,难道是芯片的问题,或者是和晶振没有接电容的关系,马上开始查资料,换芯片,结果还是一样,于是乎真的就傻眼了(一天过去了)第二天一开始就先在百度上面搜原因和解决方法,最后也没有收到一个解决的方法,我准备在进行一次测试,把LCD1602 从开发板上门取下来,然后放到自己做的单片机板子上面,一上电,上面都没有LCD1602 亮的不亮,一看引脚,原来插错了,于是就重新插,结果只有背光亮,屏幕没有反应了,试了几次看样子的果断被烧坏了(感觉太背时了)。
一想就气愤,调了这么久没有结果还把东西烧了,觉得不爽还想继续,。
DS1302 芯片的使用
引脚功能及结构
DS1302 的引脚排列,其中Vcc1 为后备电源,VCC2 为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302 由Vcc1 或Vcc2 两者中的
较大者供电。
当Vcc2 大于Vcc1+0.2V 时,Vcc2 给DS1302 供电。
当Vcc2 小于Vcc1 时,DS1302 由Vcc1 供电。
X1 和X2 是振荡源,外接32.768kHz 晶振。
RST 是复位/片选线,通过把RST 输入驱动置高电平来启动所有的数据
传送。
RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。
当RST 为高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。
如果在传送过程中RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高
阻态。
上电运行时,在Vcc>2.0V 之前,RST 必须保持低电平。
只有在SCLK 为低电平时,才能将RST 置为高电平。
I/O 为串行数据输入输出端(双向),后面有详细说明。
SCLK 为时钟输入端。
DS1302 的控制字节
DS1302 的控制字如图2 所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302 中,位6 如果为0,则表示存取
日历时钟数据,为1 表示存取RAM 数据;位5 至位1 指示操作单元的地址;最低有效位(位0)如为0 表示要进行写操作,为1 表示进行读操作,控制字节总是从最低位开始输出。
时钟芯片DS1302可靠起振的方法
简介在DS1302的实际使用中,采用辅助电容法,可以解决DS1302在应用中由于晶振的负载电容不匹配而引起的停振问题。
关键词时钟负载电容匹配
概述
DS1302是Dallas公司生产的一种实时时钟芯片。
它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。
另外,它还能提供31字节的用于高速数据暂存的RAM。
鉴于上述特点,DS1302已在许多单片机系统中得到应用,为系统提供所需的实时时钟信息。
一、 DS1302的主要特性
1. 引脚排列
图1 DS1302引脚排列图
DS1302的引脚排列,各引脚的功能如下:
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的工作电路进行了分析,其与单片机系统的连接。
从图中可以看出,DS1302的外部电路十分简单,惟一外接的元件是32768Hz 的晶振。
通过实验我们发现:当外接晶振电路振荡时,DS1302计时正确;当外接晶振电路停振时,DS1302计时停止。
因此,我们认为32768Hz晶振是造成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 CS连接电路图
(2)在使用前对晶体的负载电容并不知道的情况下,通过测定晶体振荡频率的方法可以确定该晶体的负载电容。
对于晶体振荡器来说,其振荡频率与负载电容之间的关系是确定的。
以本文讨论的DS1302使用的32768Hz晶振为例:当它工作于所要求的负载电容时,能较准确地产生 32768Hz 的频率;当它的负载电容小于6pF时,其振荡频率会正向偏移;当它的负载电容大于6pF时,其振荡频率就会负向偏移。
因此,对于未知负载电容的晶体应首先采用实验的方法,在其两端加入辅助电容使晶体起振,然后用频率计测出振荡频率。
若测得频率大于32768Hz,说明负载电容偏小;若测得频率小于32768Hz,说明负载电容偏大。
对辅助电容逐步调整,最终使振荡频率尽可能接近32768Hz,则此时晶体端所接负载电容的总和就是适合该晶体的负载电容。
结论
以上方法经我们在实际工作中多次使用,证明确实有效。
它放宽了DS1302在使用中对晶振的条件要求,增强了DS1302在工作中的稳定性,对DS1302更广泛地应用具有积极的意义。