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