嵌入式 RTC 实战指南:DS1302 芯片特性、寄存器、时序与 PCB 布线详解

DS1302 是一种广泛使用的实时时钟(RTC)芯片,它可以跟踪时间(秒、分钟、小时、天、日期、月份和年份),并且具有闰年补偿功能,直到 2100 年。它通常用于需要精准时间记录的电子项目中,如数据记录器、时钟、定时器和自动化系统等。

1.PNG

主要特性如下:

  • 低功耗​:在备用模式下,DS1302 的电流消耗非常低,适合电池供电的应用
  • 串行接口​:使用简单的三线串行接口进行数据通信,这减少了引脚的使用量
  • RAM​:内部有 31 字节的 RAM,可以用来存储用户数据
  • 双电源设计​:支持主电源和备用电源,确保在主电源断开时,时钟仍能继续运行
  • 温度补偿​:通过外部晶体振荡器,DS1302 可以实现较高的时间精度,典型的精度为 ±1 秒/天
  • ​日历功能:​可对秒,分,时,日,周,月以及带闰年补偿的年进行计数,时钟可以采用 24 小时格式或带 AM(上午)/PM(下午)的 12 小时格式
  • ​宽工作电源电压范围:​2.0V~5.5V

DS1302 通过 3 条线(I/O 数据线、SCLK 时钟线、RST 复位线)与微控制器进行通信,典型的应用示例图如下所示:

2.PNG

这里,我们通常将 DS1302 的 VCC2 接到一个 CR2032 纽扣电池上,用于在主电源失效时维持时钟运行;同时,DS1302 需要外部晶振(通常为 32.768 kHz 的无源晶振)来提供稳定的时钟信号。

3.PNG

以上为 DS1302 芯片内部单元框图,DS1302 的核心工作部分是其多个计数器,在分频器单元输入的时钟信号下能够跟踪秒、分钟、小时、日期、月份和年,同时 DS1302 内置 RAM 可用于存储一些非易失性数据,便于在系统重启后保持状态。

DS1302 芯片引脚和典型应用电路原理图如下所示:

4.PNG

各个引脚名称和作用如下所示:

5.png

DS1302 芯片使用命令字节来控制数据的读取和写入,命令字节的格式和功能如下:

6.png

7.png

当我们通过通信接口与 DS1306 芯片通信时,首先需要将 RST 信号线置高,移位寄存器在每个 SCLK 脉冲的控制下,串行接收 8 位命令字节,数据从 I/O 引脚传入,同时接收到的命令字节在移位寄存器中进行串并转换;移位寄存器将转换后的命令字节送至 ROM 指令译码单元,ROM 对命令字节进行解析,确定需要访问的内部寄存器地址及读写状态。

8.png

在微控制器输入命令字节的 8 个 SCLK 周期后,接下来的 8 个 SCLK 周期 DS1302 芯片输出 8 个数据位:

9.png

其中,当 CE 引脚为高时,启动所有数据传输,它同时控制访问移位寄存器和终止数据传输,输入数据必须在时钟的上升沿有效,输出数据在下降沿输出,上电时,CE 引脚需要为低电平,同时当驱动 CE 引脚为高电平时,SCLK 引脚必须为低电平。

通过连续的 SCLK 脉冲,系统可以一次性读写多个数据字节(最多可达 248 字节),例如日历、时钟寄存器或 RAM 单元,通过设置地址位 1 至 5 为高电平,可以启动多字节读写模式,在此模式下,位 6 用于指定操作类型(时钟/日历或 RAM),位 0 则指定读写方向(读或写):

  • 写入时钟寄存器​:在多字节写入中,必须按照顺序写入前 8 个寄存器(地址 0 到 7)。这是因为时钟寄存器的数据结构是连续的,若未写入完整的 8 个寄存器,可能导致时间数据不一致
  • 写入 RAM 寄存器​:对于 RAM 寄存器,用户不必写入所有 31 个字节。只要写入需要更新的字节

DS1302 芯片内部寄存器定义和地址如下:

10.png

可以分为以下几个部分:

  • ​时钟/日历寄存器:​用于存储时间和日期信息,寄存器的地址从 81h 到 8Dh,包含秒、分钟、小时、日期、月份、星期和年份等字段,并且这里每个字段分为十位数字段和个位数字段,例如对于秒字段来说,分为 10 Seconds 十位数字段和 Seconds 个位数字段,这里,DS1302 使用二进制—十进制 BCD 码来表示时间和日期信息,假设当前时间是“12:34:56”,在 DS1302 的寄存器中:秒数(56)为 01010110,分钟(34)为 00110100,小时(12)为 00010010
    • 秒寄存器字段: 第 7 位定义为时钟暂停位,当此位设置为逻辑 1 时,时钟振荡器停止,DS1302 被置入低功率的备份方式,其电源消耗小于 100 纳安;当把此位写成逻辑 0 时,时钟将启动。
    • ​小时寄存器字段:​DS1302 芯片可以在 12 小时或 24 小时模式下运行,其模式选择由小时寄存器字段的第 7 位控制,每当切换 12 小时和 24 小时模式时,都必须重新初始化小时数据:
      • 当设置为逻辑高(1)时,选择 12 小时模式,在 12 小时模式下,位 5 表示 AM/PM 状态
      • 当设置为逻辑低(0)时,选择 24 小时模式,位 5 用作第二个十小时位,表示小时范围 20 至 23
  • ​控制寄存器:​控制寄存器(8Fh)用于配置芯片的写保护功能,位 7 为写保护位,设置为 1 时禁止写入,设置为 0 时允许写入,这确保了在必要时可以保护存储在芯片中的数据;需要注意的是,在尝试写入设备之前,应该清除 WP 位
  • ​充电寄存器:​慢速充电寄存器(91h)控制 DS1302 的慢速充电特性,只有 1010 模式才能使慢速充电器工作,所有其它的模式将禁止慢速充电器;该寄存器主要是确保在设备的供电中断时,电池能以安全和有效的方式充电,并不常用,这里暂且不讲
  • ​内置 RAM:​DS1302 提供了 31 个字节的 RAM 寄存器,地址范围从 C0hFDh,用户可以使用这些寄存器存储任意数据,每个 RAM 寄存器的值可以在 00 到 FFh 之间变化
  • ​时钟/日历多字节(Burst)寄存器:​时钟/日历的多字节工作方式允许用户连续读写多个寄存器,简化数据传输,此模式下,用户可以从地址 0 的第 0 位开始,依次读取或写入最前面的 8 个时钟/日历寄存器
  • ​RAM 多字节(Burst)寄存器:​RAM 的多字节工作方式允许用户顺序读取或写入最多 31 个字节的 RAM 寄存器,在此模式下,数据从地址 0 的第 0 位开始连续传输,用户无需逐个访问各个寄存器

这里,寄存器地址对应命令字节中第 7 位到第 1 位,如下图所示:

11.png

这里,我们在给 DS1302 芯片配置外部晶振时,在 PCB 布线时要注意包地处理:将晶振的信号线(如 X1 和 X2 引脚)尽量包围在接地区域内,这样可以形成“地环”,帮助抑制电磁干扰,如下图所示:

12.png

posted @ 2026-09-02 16:03  FreakStudio  阅读(13)  评论(0)    收藏  举报