二十七、 RTC 实时时钟介绍
27.1. RTC 介绍
RTC 是实时时钟(Real-Time Clock)的缩写。它是一种硬件模块或芯片,用于提供准确的日期和时间信息。它具有独立于其他系统组件的时钟电源,因此即使计算机或设备被关闭或断电,它仍能保持准确的时间。
RTC 通常由一个晶体振荡器和一个计数器组成。晶体振荡器产生一个固定频率的振荡信号,计数器通过对振荡信号的计数来测量时间。计数器可以存储日期、小时、分钟和秒数等时间信息,可以根据需要进行读取和更新。RTC 本质上就是一个 1 秒计数器,通过秒来换算出时间。提供一个 1HZ 频率的时钟就可以实现一秒一次的调动。
RTC 不仅提供准确的时间信息,还可以提供闹钟、定时器和日历功能。它通常与操作系统或应用程序进行交互,以获取当前时间和日期,并将其用于各种用途,如日志记录、文件时间戳和任务调度等。
27.2. RTC 外设介绍
GD32F470 上就有 RTC 的外设,提供了精确的时间跟踪和测量功能。下面是 GD32F470 上 RTC 外设的一些重要特性和功能:
- 时钟源选择: GD32F470 的 RTC 外设可以使用内部或外部时钟源作为时基。内部时钟源由内部 IRC32K 低速时钟提供,而外部时钟源则可以使用外部低速时钟 32.768K 或外部高速时钟 2~31MHz 提供。
- 时间和日期表示: RTC 外设支持以二进制编码的 BCD(二进制码十进制)格式表示时间和日期。它可以存储和跟踪年、月、日、周、小时、分钟和秒等时间信息。
- 闹钟功能: RTC 外设具有闹钟功能,可以设置时间和日期来触发闹钟中断。闹钟功能可用于定时提醒或系统唤醒等应用场景。
- 定时器功能: RTC 外设还具有定时器功能,可以实现周期性的定时触发。它可以配置为以秒、分钟、小时或日期为单位的定时器,支持周期性中断和自动重新加载。
- 外部中断触发: RTC 外设可以通过外部中断输入来触发中断事件。这使得外部事件(如闹钟触发、时间戳等)可以用于唤醒处理器或执行特定的中断处理程序。
- 备份寄存器: GD32F470 的 RTC 外设还提供了多个备份寄存器,用于存储低功耗时钟(LSE)校正值、标志位或其他用户自定义数据。这些备份寄存器在低功耗状态下也是可保持的。
27.3. RTC 外设电源
RTC 的核心部分位于备份域中,而备份域分有两个电源,VDD 和 VBAT。这表明只要 VBAT 有电,那么系统复位或者系统从待机模式唤醒时,RTC 的设置和时间都保持不变。RTC 还有另一部分位于 VDD 电源域中,该部分只包括 APB 接口以及一组控制寄存器,不涉及到 RTC 的计数部分。
需要注意的是,RTC 外设电源通常是通过备用电池接入 VBAT 引脚来提供的,以确保即使主电源断电,RTC 仍然可以保持运行并保持时间的准确性。这种备用电池通常是一块小型的锂电池,例如 CR2032。除了电池供电,RTC 外设电源也可以通过口从主系统获取电源供应,以方便在主系统工作时充电或维持电池电量。这样可以避免电池耗尽而导致时间丢失或不准确的情况发生。