DS1302模块整合贴

新入了个DS1302实时时钟模块。搜索了论坛里的相关资源,帖子各有千秋。下面我将内容整合一下,并作出自己的一些修改和补充。



**************************************概述****************************************<br />
DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES 复位(2)I/O 数据线(3)SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW

DS1302 是由DS1202 改进而来增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1 为可编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域下面。将主要的性能指标作一综合:

★ 实时时钟具有能计算2100 年之前的秒、分、时、日、星期、月、年的能力,还有闰年调整的能力

★ 31 8 位暂存数据存储RAM

★ 串行 I/O 口方式使得管脚数量最少

★ 宽范围工作电压2.0 5.5V

★ 工作电流 2.0V 时,小于300nA

★ 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式

★ 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配

★ 简单 3 线接口

★ 与 TTL 兼容Vcc=5V

★ 可选工业级温度范围-40 +85

★ 双电源管用于主电源和备份电源供应

以上是DS1302的一些全面的预览,以下为DS1302管脚图:

DS1302模块.jpg

2013-6-2 21:17 上传
(50.06 KB)



我们看到:

1、 VCC为主电源接5V,C1为滤波电容。C11和C13为芯片内置电容。

2、 X1、X2外接32.768K的晶振

3、 5、6、7脚分别与控制器相联,注意外部4.7K上拉电阻

4、 备用电源脚,注意是3.3V,DS1302要求备用电源电压稍微低于主用电源

  1. RST/CE: RST是CE的旧称,在有些芯片上可能会看到。



    ***********************************设置与操作**************************************<br />
    操作DS1302的大致过程,就是将各种数据写入DS1302的寄存器,以设置它当前的时间已经格式。然后使DS1302开始运作,DS1302时钟会按照设置情况运转,再用单片机将其寄存器内的数据读出。再用液晶显示,就是我们常说的简易电子钟。

    所以总的来说DS1302的操作分2步(显示部分属于液晶显示的内容,不属于DS1302本身的内容)但是在讲述操作时序之前,我们要先看看寄存器:

地址示意.jpg

2013-6-2 21:23 上传
(22.68 KB)



上图是DS1302的寄存器样式,我们看到:

1、 第7位永远都是1

2、 第6位,1表示RAM,寻址内部存储器地址;0表示CK,寻址内部寄存器;

第5到第1位,为RAM或者寄存器的地址;最低位,高电平表示RD:即下一步操作将要“读”;低电平表示W:即下一步操作将要“写”。(与AT24C02寄存器类似,这点要理解好)。下面是DS1302的内部寄存器和RAM:

内部寄存器.jpg

2013-6-2 21:24 上传
(53.79 KB)



上图左边为寄存器和RAM的地址,右边为具体内容。各个寄存器的最高位都是1,最低位都是“RD/W”,比如要读秒寄存器则命令为1000 0101,反之写为1000 0100,要注意其含义。(图片不是很清楚,看不清楚的朋友用软件放大)我们一个一个看:

SEC:秒寄存器,注意具体右边内容:低四位为SEC,高的次三位为10SEC。最高位CH为DS1302的运行标志,当CH=0时,DS1302内部时钟运行,反之CH=1时停止;

MIN:分寄存器;

HR:时寄存器,最高位为12/24小时的格式选择位,该位为1时表示12小时格式。当设置为12小时显示格式时,第5位的高电平表示下午(PM);而当设置为24小时格式时,第5位位具体的时间数据。

DATE:日寄存器;

MONTH:月寄存器;

DAY:周寄存器,注意一周只有7天,所以该寄存器只有低三位有效;

YEAR:年寄存器;

CONTROL:写保护寄存器,当该寄存器最高位WP为1时,DS1302只读不写,所以要在往DS1302写数据之前确保WP为0;

TRICKLE CHARGE REGISTER:涓细电流充电设置寄存器,我们知道,当DS1302掉电时,可以马上调用外部电源保护时间数据。该寄存器就是配置备用电源的充电选项的。其中高四位(4个TCS)只有在1010的情况下才能使用充电选项;低四位的情况,与DS1302内部电路有关,有点意思,下文详细讲述。

CLOCK BURST:批量读写操作设置寄存器,设置该寄存器后,可以对DS1302的各个寄存器进行连续写入。DS1302的另外一种读写方式。笔者还没用过,感兴趣的朋友可以尝试。

最后还有一点,前文说过,DS1302有31个字节的存储空间,但是大家要看到的是,这31个存储空间,最后一个是RAM BURST的寄存器,设置该寄存器可以达到对RAM连续读写的作用。所以DS1302的可用存储空间实际上为30个字节。



************************************涓流充电**************************************<br />
TCS意为涓流充电选择。DS1302上电时,TCS默认为禁用。为了防止意外产生,只当TCS位(四位)为1010时涓细电流充电功能才会生效”所以刚才提到“其中高四位(4个TCS)只有在1010的情况下才能使用充电选项。DS和RS位分别表示串在主电源和备用电源之间的二极管个数和电阻阻值,具体定义如下。

DS位的值
via - 极客工坊

标签: Arduino教程