DS1302学习小结

DS1302实时时钟

1.BCD码的概念

BCD码亦称二进码十进制数或二-十进制代码。用4位二进制数表示一位十进制数中09折10个数字。表示了从0b00000b1001,不存在0b1010、0b1011、0b1100、0b1101、0b1110、0b1111这6个数字。分为压缩性 和非压缩型两种。

2.SPI时序

SPI是串行外围设备接口。是一种高速的、全双工的、同步通信总线。标准的SPI也仅仅使用4个引脚,分别是SSEL(片选,也写作SCS)、SCLK(时钟,也写作SCK)、MOSI(主机输出从机输入)、MISO(主机输入从机输出)。

  • SSEL:从设备片选是能信号。如果从设备是低电平使能,拉低这个引脚,从设备就会被选中。
  • SCLK:时钟信号。由主机发出。
  • MOSI:主机给从机发送指令或数据的通道。
  • MISO:主机读取从机的状态或数据的通道。

SPI通信的主机也就是单片机,在读写数据时序的过程中,有四种模式,要了解这四种模式,首先要学习两个名词。

CPOL:就是时钟极性。

通信的整个过程分为空闲时刻和通信时刻,如果SCLK在数据发送之前和之后的空闲状态都是高电平,那么就是CPOL=1,如果空闲状态SCLK是低电平,那么就是CPOL=0引用块内容

CPHA:就是时钟的相位。

同步通信的一个特点就是所有数据的变化和采样都是伴随着时钟沿进行的,也就是说数据总是在时钟的边沿附近变化或被采样。
而一个时钟周期必定包含了一个上升沿和一个下降沿,这是周期的定义所决定的,只是这两个沿的先后并无规定。又因为数据从产生的时刻到它的稳定是需要一定时间的,那么,如果主机在上升沿输出数据到 MOSI 上,从机就只能在下降沿去采样这个数据了。反之如果一方在下降沿输出数据,那么另一方就必须在上升沿采样这个数据。

  1. CPHA=1表示数据的输出是在一个时钟周期的第一个沿上,且CPOL=1是下降沿,反之是上升沿。那么数据的采样自然就在第二个沿上了。
  2. CPHA=0表示数据的采集是在一个周期的第一个沿上,同样它是什么沿由CPOL决定。那么数据的输出自然就在第二个沿上了。

以CPOL=1/CPHA=1为例,画出时序图。
图 2-1  SPI通信时序图
在上图中,当数据未发送时及发送完毕后,SCK都是高电平,因此CPOL=1。可以看出在SCK第一个沿的时候,MOSI和MISO会发生变化,同时SCK第二个沿的时候,数据是稳定的,此时采样数据组最合适,即CPHA=1。注意最后隐藏的SSEL片选,这个引脚决定是哪个从机和主机通信。

下边放其他三种情况的时序图。
这里写图片描述

3.实时时钟芯片DS1302

1. DS1302引脚图:

这里写图片描述

1 脚 VCC2 是主电源正极的引脚,接+5V,2 脚 X1 和 3 脚 X2 是晶振输入和输出引脚,4 脚 GND是负极,5 脚 CE 是使能引脚,接单片机的 IO 口,6 脚 I/O 是数据传输引脚,接单片机的 IO口,7 脚 SCLK 是通信时钟引脚,接单片机的 IO口,8 脚 VCC1 是备用电源引脚。

2.引脚功能表

这里写图片描述

3.备用电源

关于备用电源的问题,可以接3V左右的电源。也可以接一个10uF的电容,这个电容就相当于一个电量很小的电池,断电后可维持DS1302g工作1分钟左右,如果想运行时间更长,可以加大点容量。如果掉点后不需要它在维持运行,可以直接悬空。

DS1302用电容作备用电源电路图如下。

这里写图片描述

4.DS1302寄存器

DS1302一条指令一个字节共8位,其中第7位(最高位)固定为1。第6位是选择RAM还是CLOCK,这里主要用时钟的功能,故为0。第5位到第1位,决定了寄存器的5位地址。第0位是读写位,写为0、读为1。
这里写图片描述
DS1302时钟的寄存器中,其中8位和时钟有关,5位地址分别为0b000000b00111,即0x800x91。

具体寄存器功能如下:
这里写图片描述

寄存器 0:最高位 CH 是一个时钟停止标志位。如果时钟电路有备用电源,上电后,我们要先检测一下这一位,如果这一位是0,那说明时钟芯片在系统掉电后,由于备用电源的供给,时钟是持续正常运行的;如果这一位是 1,那么说明时钟芯片在系统掉电后,时钟部分不工作了。剩下的7 位高 3 位是秒的十位,低 4 位是秒的个位。

寄存器 1:最高位未使用(0),剩下的 7 位中高 3 位是分钟的十位,低 4 位是分钟的个位。

寄存器 2:bit7 是 1 的话代表是 12 小时制,0 代表是 24 小时制;bit6 固定是 0,bit5 在12 小时制下 0 代表的是上午,1 代表的是下午,在 24 小时制下和 bit4 一起代表了小时的十位,低 4 位代表的是小时的个位。

寄存器 3:高 2 位固定是 0,bit5 和 bit4 是日期的十位,低 4 位是日期的个位。

寄存器 4:高 3 位固定是 0,bit4 是月的十位,低 4 位是月的个位。

寄存器 5:高 5 位固定是 0,低 3 位代表了星期。

寄存器 6:高 4 位代表了年的十位,低 4 位代表了年的个位。请特别注意,这里的 00~99 指的是 2000 年~2099 年。

寄存器 7:最高位一个写保护位,如果这一位是 1,那么是禁止给任何其它寄存器或者那 31 个字节的 RAM 写数据的。因此在写数据之前,这一位必须先写成 0。

5.DS1302的变异SPI通信方式

DS1302单字写入操作:
这里写图片描述
这里写图片描述
与CPOL=0/CPHA=0情况下的SPI操作时序对比,其中CE和SSEL的使能控制是相反的。对于SPI通信写数据都是在SCK的上升沿从机进行

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花里梦雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值