4.1 DS1302时钟芯片
4.1.1 DS1302简介
DS1302是美国DALLAS公司推出的一种串行接口实时时钟芯片。芯片内部具有可编程日历时钟和31个字节的静态RAM,日历芯片可自动进行闰年补偿,并可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,提供了对备份电源进行绢流充电的能力。它的主要特点为采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能,通常采用普通32.768kHz晶振。
DS1302采用八脚的DIP封装,其引脚排列如图4.3所示:
Vcc1,Vcc2: 电源输入,其中Vcc1为后备电源,
Vcc2为主电源。
GND: 接地端 RST 复位端
X1,X2: 外接32.768KHz石英晶振输入 I/0: 数据输入/输出端 SCLK 串行时钟输入
图4.3 DS1302引脚图
在DS1302的引脚排列, Vcc1和Vcc2为电源引脚,其中,单电源供电时接Vcc1引脚,双电源供电时,主电源接接Vcc2,从电源接Vcc1,如果采用可充电的镉镍电池,可启用内部涓流充电器在主电压正常时间向电池充电,以延长电池的使用时间。备份电池也可用1微法以上的超容量电池代替,但得注意备份电池的电压应略低于主电源的工作电压。X1和X2是振荡源,外接32.768kHz的石英晶振。RST是通信允许信号,当RST=0时,允许通信,当RST=0时,禁止通信。I/O引脚为双向串行数据传送信号,SCK引脚为串行数据的位同步信号。
DS1302的内部结构如图4.4所示。
7
X1 X2Vcc1Vcc2GNDPOWER CONTROLREAL TIMECLOCKOSCILICATORAND DIVIDEDSCLKI/OINPUT SHIFTREGISTERCOMMAND ANDCONTROL LOGIC31X8RAM
图4.4 DS1302内部结构图 DS1302的典型应用如图4.5所示。
4.1.2 DS1302的控制字节
DS1302 的控制字如图4.6所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中。位6(RAM/CK)位为DS1302片内RAM/时钟选择位,如果为0,则表示存取日历时钟数据,为1表示存取RAM数据。位5至位1(A4至A0)用来选择日历时钟寄存器或RAM的地址选择位。最低有效位位0(RD/WR)为读写控制位,如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
图4.5 DS1302的典型应用
图4.6 DS1302的控制字节
8
4.1.3 数据的输出
I/O引脚在写入控制指令字后的下一个SCLK时钟的下降沿时,传送一个字 节的数据,数据输入从低位即位0开始。注意在数据传送时,RST引脚需保持高电位。如4.7所示
4.1.4 数据的输入
I/O引脚在写入控制指令字后的下一个SCLK时钟的上升沿时,数据被写入到内部寄存器,DS1302,数据输入从低位开始,一直到高八位。注意在数据传输时,RST引脚需保持为高电位,如图4.8所示。
图4.7 数据的输出
图4.8 数据的输入
4.1.5 DS1302的寄存器
DS1302有12个寄存器,其中前7个寄存器分别存放着秒,分,时,日,月,星期和年等信息,存放的数据位为BCD码形式。此外,DS1302 还有控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。寄存器及其控制字如表4.1所示。
秒寄存器的最高位为时钟暂停控制位,当CH=0时,时钟振荡器暂停,DS1302进入低功耗状态,当CH=1时启动时钟。
写保护寄存器的最高位WP=1时,才能对日历时钟或RAM的内容进行写操作,WP=0,禁止写操作。
9
表4.1 DS1302的寄存器
时钟多字节寄存器为多字节突发方式控制寄存器,通过对该寄存器的寻址,可以将对日历时钟或RAM的读写操作规范为多字节方式。在此方式下写时钟寄存器时,必须按数据传送的次序写入最先的8个寄存器;而以多字节方式写RAM时,为了传送数据不必写入所有的31个RAM字节。时钟多字节寄存器读写控制字如图4.9所示。
图4.9 时钟多字节读写方式
绢细电流充电控制寄存器如下图4.10所示。
图4.10 绢细电流充电控制寄存器
TCS:绢细充电选择
TCS=1010 使能绢流充电
10
TCS=其它 禁止绢流充电 DS:二极管选择位
DS=01 选择一个二极管 DS=10 选择二个二极管
DS=00或11 即使TCS=1010,充电功能也被禁止 RS的选择如表4.2所示.
表4.2 RS选择
31*8 RAM寄存区如下图4.11所示。
图4.11 RAM寄存区
4.1.6 DS1302的读写方式
DS1302与8051之间通过IO线传送同步串行数据,SCLK为串行通信时位同步时钟,一个SCLK脉冲传送一位数据。每个数据传送时都以字节为单位,低位在前,高位在后,传送一个字节需要8个SCLK脉冲。数据传送可以分为单字节传送方式和多字节突发方式传送。
单字节传送方式如图4.12所示,在RST=1 期间,8051单片机先向DS1302发送一个字节的命令字,紧接着发送一个字节的数据,DS1302在接受到命令字节后自动将数据写入到指定的片内地址或从该地址读取数据。
数据多字节突发方式的传送时序如图4.13示,RST=1期间,若8051单片机向DS1302发送的命令字节中A4 — A1全为1,则DS1302在接受到这个字节命令后可以一次进行8个字节日历时钟数据或是31个片内RAM单元数据的读写工作。
11