一、DS1302介绍
- DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。
- RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片(DS1302就是其中一种,还有DS3231,精度很高,更加集成化;DS12C887,自带电池)
- 左图1是时钟芯片,左图2是一个最小时钟模块,右图1是一个时钟
- 对比
单片机计时时钟:精度不高,会占用单片机CPU,不能掉电继续运行(最重要)
二、芯片功能设计思路
1.根据功能找到对应的芯片
2.阅读这个芯片的数据手册,学习下面所提到的内容(这里相当于带着学)
三、硬件知识
1.引脚定义和应用电路
直插封装(上)和贴片封装(下)我们所用的是贴片封装
- 当VCC有电时,会对备用电池充电;当VCC断开,备用电池就会供电,能耗很低
注意,我们的开发板上没有接备用电池,所以不能掉电继续走时
- 一般情况下,有关时钟的晶振都是32.768KHz,精度较高,提供一个稳定的脉冲,经过内部电路的处理会输出一个标准的1hz频率
2.内部结构框图
这部分跟上面介绍的有关联
3.寄存器定义
这个寄存器只会关于时钟的寄存器,内部有更多的寄存器,要去数据手册阅读,本节课不使用所以不介绍
每个寄存器都有一个地址,每个地址下就是一个数据,数据是以一个字节一个字节的存储,一个字节有八位
其中地址0所存储的内容就是秒寄存器,地址1是分寄存器,下一个是小时,以此类推,日,月,周,年
WP是协保护,相当于使能标志位,置1的话写入无效但可以读出
TCS是存储涓流充电的
命令字
命令字是一个字节,总共有八位
最高位7固定为1
第6位,如果操作RAM就给1,操作CK(clock)就给0
第5位到第1位就是地址
最后一位就是读写,给1就是RD(read),给0就是WR(write)
举例:如果我们要写秒寄存器,就是0x80(1000 0000)如果要读秒寄存器,就是0x81(1000 0001)
4.时序定义
这节讲解命令字和数据是怎么对应起来
CE是操作使能,CE在操作过程要保持高电平,操作完成再置0
SCLK是一个固定的时钟,规定在时钟的上升沿,IO口的电平会被写入,即我向时钟芯片写入数据;在时钟的下降沿,DS1302就会把数据输出,即时钟芯片向我写入数据,我读出时钟芯片的数据
IO的右边是数据
这个定义跟通信接口SPI很像