260 likes | 430 Views
时钟芯片DS1302及其应用. 内容提要. DS1302 简介 DS1302 引脚 DS1302 功能 DS1302 存储器 DS1302 时序图 DS1302 初始化 DS1302 示例. DS1302 简介. � 时钟计数功能,可以对秒、分钟、小时、月、星期、年的计数。年计数可达到 2100 年。 � 有 31*8 位的额外数据暂存寄存器 � 最少 I/O 引脚传输,通过三引脚控制 � 工作电压: 2.0-5.5V � 工作电流小于 320 纳安( 2.0V )
E N D
内容提要 • DS1302简介 • DS1302引脚 • DS1302功能 • DS1302存储器 • DS1302时序图 • DS1302初始化 • DS1302示例
DS1302简介 �时钟计数功能,可以对秒、分钟、小时、月、星期、年的计数。年计数可达到2100 年。 � 有31*8 位的额外数据暂存寄存器 � 最少I/O 引脚传输,通过三引脚控制 � 工作电压:2.0-5.5V � 工作电流小于320 纳安(2.0V) � 读写时钟寄存器或内部RAM(31*8 位的额外数据暂存寄存)可以采用单字节模式和突发模式 � 8-pin DIP封装或8-pin SOICs � 兼容TTL(5.0V) � 可选的工业级别,工作温度-40 – 85 摄氏度
DS1302简介 � 兼容DS1202, 较DS1202 增加的功能: 1. 可通过Vcc1 进行涓流充电 2. 双重电源补给 3. 备用电源可采用电池或者超级电容(0.1F以上),可以用老式电脑主板上的3.6V 充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 μF 就可以保证1小时的正常走时。DS1302 在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。
DS1302引脚 • 晶体振荡器的选择:一个32.768KHz的晶振可以直接接在DS1302的2、3管脚之间,可以设定规定载荷电容位6pf。 • 电源控制:Vcc1可提供单电源控制也可以用来作为备用电源,Vcc2为主电源。在主电源关闭的情况下,也可以保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电;当Vcc2小与Vcc1时,DS1302由Vcc1供电。
DS1302功能 • DS1302包括时钟/日历寄存器和31字节(8 位)的数据暂存寄存器,数据通信仅通过一条串行输入输出口。实时时钟/日历提供包括秒、分、时、日期、月份、年份和星期几的信息。闰年可自行调整,可选择12小时制和24小时制,可以设置AM、PM。 • 只通过三根线(SPI总线)进行数据的控制和传递:RST、I/O、SCLK
SPI总线 • (serial peripheral interface)串行外围设备接口SPI总线技术是Motorola公司推出的一种同步串行接口。SPI用于CPU与各种外围器件进行全双工、同步串行通讯。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线CS。
内部存储空间 • DS1302的所有功能都是通过对其内部地址进行操作实现的。其内部存储空间分为2部分:80H~91H为功能控制单元,C0H~FDH为普通存储单元;所有单元地址中最低位为0表示将对其进行写数据操作,最低位为1表示将对其进行读数据操作。 • 普通存储单元是提供给用户的存储空间,而特殊存储单元存放DS1302的时间相关的数据,用户不能用来存放自己的数据。
内部存储空间 注意: 1、秒寄存器的CH位:置1,时钟停振,进入低功耗态;置0,时钟工作。 2、小时寄存器的D7位:置1,12小时制(D5置1表示上午,置0表示下午); 置0,24小时制(此时D5、D4组成小时的十位)。
注意: 1、WP:写保护位:置为1时,写保护;置为0时,未写保护。 2、TCS:1010时慢充电;DS为01,选一个二极管,为10,选2个二极管;11或00,禁止充电。 3、RS:与二极管串联电阻选择。00,不充电;01,2KΩ电阻;10,4KΩ电阻;11,8KΩ电阻。
内部存储空间 注意: 1、TCS:1010时慢充电;其他时禁止充电。 2、DS为01,选一个二极管;为10,选2个二极管;11或00,禁止充电。 3、RS:与二极管串联电阻选择。00,不充电;01,2KΩ电阻;10,4KΩ电阻;11,8KΩ电阻。
特殊存储空间 • 在突发模式下,通过连续的脉冲一次性读写完8个字节的时钟/日历寄存器(8个寄存器要全部读写完:时、分、秒、日、月、年、星期、写保护寄存器,充电寄存器在突发模式下不能操作)
普通存储空间 • 在突发模式下,通过连续的脉冲一次性读写完1-31个字节的RAM数据(可按实际情况读写一定数量的字节,可以不必一次全部读写完)
单字节读操作 片选端CE必须为高电平,才能对芯片进行操作
单字节写操作 • CE必须在高电平时,才能对DS1302读/写操作 • 低位在前,高位在后,一个SCLK周期传递一位 • 上升沿输入,下降沿输出 • 先写地址(RW=0,允许写数据的单元地址),然后写数据 • 先写地址(RW=1,允许读数据的单元地址),然后读数据
DS1302时序图 R/W:1——可以读;0——可以写 R/C:1——普通存储器;0——特殊寄存器
地址(命令)字节格式 R/W:1——可以读;0——可以写 R/C:1——普通存储器;0——特殊寄存器 不管是单字节的读写还是突发模式的读写,首先传递的是地址(命令)字节,然后才是数据字节,每个时钟周期上升或下降沿发送1位,低位在前,高位在后。
R/W:1——可以读;0——可以写 R/C:1——普通存储器;0——特殊寄存器
R/W:1——可以读;0——可以写 R/C:1——普通存储器;0——特殊寄存器
R/W:1——可以读;0——可以写 R/C:1——普通存储器;0——特殊寄存器
DS1302初始化 一般程序设计流程: 1、注意对DS1302的读写操作必须在RST为1时才允许操作; 2、确认对DS1302是读操作还是写操作:写操作时必须关闭写保护寄存器的写保护位(0x00);读操作时跟此寄存器无关; 3、确认是否需要对备用电池充电操作; 4、确定采用单字节操作还是突发模式操作;(SPI串口通信:RST、SCLK、I/O) 单字节读写操作: 写操作:先写地址(RW=0,允许写数据的单元地址),然后写数据 读操作:先写地址(RW=1,允许读数据的单元地址),然后读数据 突发模式读写操作: 时间/日历特殊寄存器必须一次读写8个寄存器 RAM普通寄存器可一次读写1—31个寄存器 写操作:先写地址(0xBE(特殊)/0xFE(普通)),然后写多个数据(8个(特殊)/1—31(普通)) 读操作:先写地址(0xBF(特殊)/0xFF(普通)),然后读多个数据(8个(特殊)/1—31(普通)) 5、读写操作完毕(写操作完成后必须打开写保护寄存器的写保护位(0x80))。
DS1302示例 • 所有的数据传输必须在RST为高电平时进行(如果在传输过程中RST置低电平,则会终止此次数据传送,IO引脚变为高阻态) • 上电运行时,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。 • 写操作前,关闭写保护;写操作完成后,要打开写保护 • DS1302的仿真模型在Microprocessor ICs里面 • 充电电池BATTERY在Miscellaneous里面,但是没有仿真模型
DS1302示例 • 在每个SCLK上升沿时数据被输入,下降沿时数据被输出,一次只能读写一位;通过8个脉冲便可读取一个字节从而实现串行输入输出
注意: 1、WP:写保护位:置为1时,写保护;置为0时,未写保护。 2、TCS:1010时慢充电;DS为01,选一个二极管,为10,选2个二极管;11或00,禁止充电。 3、RS:与二极管串联电阻选择。00,不充电;01,2KΩ电阻;10,4KΩ电阻;11,8KΩ电阻。