实时时钟RTC

合集下载

XMC4000中文参考手册-第10章 实时时钟(RTC)

XMC4000中文参考手册-第10章 实时时钟(RTC)

RTC 生成唤醒触发的条件: 周期定时器事件 配置报警条件
ห้องสมุดไป่ตู้
定时器事件可以在休眠域中作为从休眠模式唤醒触发被处理,在休眠域的 HCU 模块(更多细节请 参考 SCU 章中对休眠控制的描述)。 10.5.1 周期性唤醒触发生成
只要定时器的非屏蔽字段得到更新,周期性的定时器唤醒触发就会被生成。周期性唤醒触发的 生成可以被 CTR 寄存器启用/禁止。 10.5.2 定时器警报唤醒触发生成
只要 TIM0 和 TIM1 的所有位段值与 ATIM0、ATIM1 寄存器对应的位字段值匹配,警报唤醒触 发就会被生成。定时器报警唤醒触发的生成可以被 CTR 寄存器启用/禁止。
参考手册 RTC, V2.4
10-4
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
参考手册 RTC, V2.4
10-7
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
时钟(RTC)
10.9
寄存器
寄存器概述 绝对的寄存器地址通过下式算出: 模块基址+偏移地址 表 10-2 模块 RTC 表 10-3 缩写 寄存器地址空间 基址 5000 4A00H 寄存器概述 寄存器全称 偏移地址 访问方式 读 RTC 核心寄存器 ID CTR RAWSTAT STSSR MSKSR CLRSR ATIM0 ATIM1 TIM0 TIM1 10.9.1 ID RTC 模块中的只读 ID 寄存器包含唯一的 RTC 模块身份代码。 ID 寄存器 控制寄存器 原始服务请求寄存器 状态服务请求寄存器 屏蔽服务请求寄存器 清除服务请求寄存器 报警定时寄存器 0 报警定时寄存器 1 定时寄存器 0 定时寄存器 1 寄存器描述 0000H 0004H 0008H 000CH 0010H 0014H 0018H 001CH 0020H 0024H U,PV U,PV U,PV U,PV U,PV BE U,PV U,PV U,PV U,PV BE PV BE BE PV PV PV PV PV PV 10-8 页 10-9 页 10-11 页 10-12 页 10-13 页 10-14 页 10-15 页 10-16 页 10-17 页 10-19 页 写 描述 结束地址 5000 4BFFH 注释 通过镜像寄存器访问

STM32系列MCU硬件实时时钟(RTC)应用笔记说明书

STM32系列MCU硬件实时时钟(RTC)应用笔记说明书

2017年6月Doc ID 018624 Rev 1 [English Rev 5]1/45AN3371应用笔记在 STM32 F0、F2、F3、F4 和 L1 系列MCU 中使用硬件实时时钟(RTC )前言实时时钟 (RTC) 是记录当前时间的计算机时钟。

RTC 不仅应用于个人计算机、服务器和嵌入式系统,几乎所有需要准确计时的电子设备也都会使用。

支持 RTC 的微控制器可用于精密计时器、闹钟、手表、小型电子记事薄以及其它多种设备。

本应用笔记介绍超低功耗中等容量、超低功耗大容量、F0、F2和 F4 系列器件微控制器中嵌入式实时时钟 (RTC) 控制器的特性,以及将 RTC 用于日历、闹钟、定时唤醒单元、入侵检测、时间戳和校准应用时所需的配置步骤。

本应用笔记提供了含有配置信息的示例,有助于您快速准确地针对日历、闹钟、定时唤醒单元、入侵检测、时间戳和校准应用配置 RTC 。

注:所有示例和说明均基于 STM32L1xx 、STM32F0xx 、STM32F2xx 、STM32F4xx 和STM32F3xx 固件库,以及 STM32L1xx (RM0038)、STM32F0xx (RM0091)、STM32F2xx (RM0033)、STM32F4xx (RM0090)、STM32F37x (RM0313) 和 STM32F30x(RM0316) 的参考手册。

本文提到的STM32 指超低功耗中等容量、超低功耗大容量、F0、F2 和 F4 系列器件。

超低功耗中等 (ULPM) 容量器件包括 STM32L151xx 和 STM32L152xx 微控制器,Flash 容量在 64 KB 到 128 KB 之间。

超低功耗大 (ULPH) 容量器件包括 STM32L151xx 、STM32L152xx 和 STM32L162xx 微控制器,Flash 容量为 384 KB 。

F2 系列器件包括 STM32F205xx 、STM32F207xx 、STM32F215xx 和 STM32F217xx 微控制器。

rtc是什么意思

rtc是什么意思

rtc是什么意思标题:RTC是什么意思摘要:RTC,即实时时钟,是一种能够提供准确时间和日期信息的计算机硬件设备。

它在各个领域都得到广泛应用,包括计算机系统、嵌入式系统、通信设备等。

本文将介绍RTC的基本原理、功能及应用领域,以及其在现代科技发展中的重要性和未来的发展趋势。

一、引言实时时钟(RTC)是计算机系统和嵌入式系统中一个不可或缺的组成部分。

它能够提供准确可靠的时间和日期信息,对于许多应用场景都至关重要。

本文将对RTC进行详细的解析,包括其基本原理、功能及应用领域。

二、RTC的基本原理和功能1. RTC的基本原理RTC是一种通过晶振来生成稳定的时钟信号的硬件设备。

它通常包括一个晶振、计数器以及相关的电路和接口组件。

晶振作为RTC的“心脏”,振荡产生稳定频率的脉冲信号,该信号经过计数器进行计数,从而实现对时间的精确测量。

2. RTC的主要功能RTC的主要功能是提供准确的时间和日期信息。

它能够跟踪时间的变化,并在需要时提供精确的时间戳。

此外,RTC还可以用于实现定时和闹铃功能,用于定时操作或提醒用户特定的事件发生。

三、RTC的应用领域1. 计算机系统在计算机系统中,RTC被广泛应用于操作系统、文件系统和日志记录等方面。

它可以确保计算机系统拥有准确的系统时间,从而保证各种任务和事件的顺利执行。

2. 嵌入式系统在嵌入式系统中,RTC通常用于记录系统启动和停止时间,以及记录系统故障或异常情况。

它对于嵌入式设备的运行和状态监测具有重要意义。

3. 通信设备在通信设备中,RTC被广泛用于数据传输的时间同步和时间戳记录。

它确保各个设备之间的数据传输具有一致的时间参考,从而提高通信的稳定性和可靠性。

4. 其他领域除了计算机系统、嵌入式系统和通信设备,RTC还应用于航空航天、智能家居、工业自动化等众多领域。

它为这些领域提供了精确的时间基准,对于系统的正常运行和各种功能的实现都起着至关重要的作用。

四、RTC的重要性和未来发展趋势RTC在现代科技发展中具有重要的地位和作用。

STM32-RTC实时时钟-毫秒计时实现

STM32-RTC实时时钟-毫秒计时实现

STM32-RTC实时时钟-毫秒计时实现OS:Windows 64Development kit:MDK5.14IDE:UV4MCU:STM32F103C8T61、RTC时钟简介 STM32 的实时时钟(RTC)是⼀个独⽴的定时器,在相应软件配置下,可提供时钟⽇历的功能。

详细资料请参考ALIENTEK的官⽅⽂档——《STM32F1开发指南(精英版-库函数版)》,以下为博主摘录要点:RTC 模块和时钟配置系统(RCC_BDCR 寄存器)在后备区域,系统复位后,会⾃动禁⽌访问后备寄存器和 RTC ,所以在要设置时间之前,先要取消备份区域(BKP)的写保护RTC 内核完全独⽴于 RTC APB1 接⼝,⽽软件是通过 APB1 接⼝访问 RTC 的预分频值、计数器值和闹钟值,因此需要等待时钟同步,寄存器同步标志位(RSF)会硬件置1RTC相关寄存器包括:控制寄存器(CRH、CRL)、预分频装载寄存器(PRLH、PRLL)、预分频器余数寄存器(DIVH、DIVL)、计数寄存器(CNTH、CNTL)、闹钟寄存器(ALRH、ALRL)STM32备份寄存器,存RTC校验值和⼀些重要参数,最⼤字节84,可由VBAT供电计数器时钟频率:RTCCLK频率/(预分频装载寄存器值+1)2、软硬件设计 由于RTC是STM32芯⽚⾃带的时钟资源,所以⾃主开发的时候只需要在设计时加上晶振电路和纽扣电池即可。

编程时在HARDWARE⽂件夹新建 rtc.c、rtc.h ⽂件。

3、时钟配置与函数编写 为了使⽤RTC时钟,需要进⾏配置和时间获取,基本上按照例程来写就可以了。

为避免零散,我将附上完整代码。

函数说明如下:rtc.c中需要编写的函数列表RTC_Init(void)配置时钟RTC_NVIC_Config(void)中断分组RTC_IRQHandler(void)秒中断处理RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)设置时间RTC_Alarm_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8sec)闹钟设置RTC_Get(void)获取时钟RTC_Get_Week(u16 year,u8 month,u8 day)星期计算Is_Leap_Year(u16 year)闰年判断 事实上,以上函数并不都要,闹钟没有⽤到的话就不要,秒中断也可以不作处理,看项⽬需求。

stm32 rtc实时时钟

stm32 rtc实时时钟

stm32 rtc实时时钟STM32 RTC实时时钟一、介绍STM32是意法半导体公司(STMicroelectronics)推出的一系列32位ARM Cortex-M微控制器。

其中,RTC(Real-Time Clock)是STM32微控制器中的一个重要组件,用于实时时钟和日历功能。

本文将详细介绍STM32 RTC的实时时钟功能及其应用。

二、RTC概述RTC模块是一种独立的硬件模块,可以在微控制器断电时继续运行。

它提供了一个与时间和日期相关的计数器,通过时钟信号源来驱动计数器,从而实现实时时钟的功能。

RTC模块通常由一个独立的低功耗振荡器来提供时钟源。

STM32微控制器中的RTC模块支持多种工作模式,如年历模式、单位数字模式和二进制模式等。

三、RTC的主要功能1. 实时时钟:RTC模块可以提供精确的实时时钟,可以记录时间、日期和星期等信息。

2. 闹钟功能:RTC可以设置多个闹钟时间,并在闹钟时间到达时触发中断或其他操作。

3. 倒计时功能:RTC模块可以进行倒计时操作,并在倒计时结束时触发中断。

4. 调度功能:RTC可以设置预定的时间点,并在该时间点触发中断。

5. 报警功能:RTC可以设置报警功能,当发生特定事件时触发中断或其他操作。

四、配置RTC模块在使用STM32微控制器的RTC功能之前,需要进行一些配置。

首先,需要选择合适的时钟源。

通常,RTC模块使用低功耗振荡器作为时钟源。

其次,需要配置RTC的预分频器和计数器,以实现所需的时间精度。

还需配置中断和/或事件触发条件,以便在特定事件发生时触发中断或其他操作。

五、RTC的中断与事件RTC模块可以生成多个中断和事件,以满足应用的需求。

常见的中断和事件有:1. 秒中断:每当计数器的秒字段更新时触发中断。

2. 分钟中断:每当计数器的分钟字段更新时触发中断。

3. 小时中断:每当计数器的小时字段更新时触发中断。

4. 日期中断:每当计数器的日期字段更新时触发中断。

rtc的工作原理

rtc的工作原理

rtc的工作原理
RTC(Real-TimeClock)是指实时时钟,它是一种能够自主保存时间信息并在需要时提供时间信息的设备。

RTC工作的原理是基于石英晶体振荡器的运作来实现的。

在RTC中,石英晶体振荡器会产生一个恒定的频率电信号,这个电信号会被用于计时。

RTC接收到这个电信号后,就会开始计时,并将时间信息保存在RTC芯片内部的寄存器中。

当需要获取时间信息时,RTC会将保存在寄存器中的时间信息通过外部接口传递给需要的设备。

同时,RTC还可以通过外部接口接收校准信号来调整自身时间的准确度。

需要注意的是,RTC在工作过程中需要一个稳定的电源供应,否则就会失去计时能力。

因此,一些RTC设备还会配备备用电源,以确保即使主电源中断,RTC仍能正常工作。

总之,RTC是一种能够实现时间信息的保存和传递的设备,其工作原理是基于石英晶体振荡器的运作来实现的。

- 1 -。

RTC—实时时钟

RTC—实时时钟

RTC—实时时钟1 RTC 简介RTC—real time clock,实时时钟,主要包含⽇历、闹钟和⾃动唤醒这三部分的功能,其中的⽇历功能我们使⽤的最多。

⽇历包含两个 32bit 的时间寄存器,可直接输出时分秒,星期、⽉、⽇、年。

⽐起 F103 系列的 RTC只能输出秒中断,剩下的其他时间需要软件来实现,429 的 RTC可谓是脱胎换⾻,让我们在软件编程时⼤⼤降低了难度。

2 RTC 功能框图解析1. 时钟源RTC 时钟源 —RTCCLK 可以从 LSE、LSI和 HSE_RTC 这三者中得到。

其中使⽤最多的是 LSE,LSE 由⼀个外部的32.768KHZ(6PF 负载)的晶振提供,精度⾼,稳定,RTC⾸选。

LSI是芯⽚内部的 30KHZ晶体,精度较低,会有温漂,⼀般不建议使⽤。

HSE_RTC由 HSE 分频得到,最⾼是 4M,使⽤的也较少。

2. 预分频器预分频器 PRER 由 7 位的异步预分频器 APRE 和 15位的同步预分频器 SPRE组成。

异步预分频器时钟 CK_APRE ⽤于为⼆进制 RTC_SSR 亚秒递减计数器提供时钟,同步预分频器时钟 CK_SPRE ⽤于更新⽇历。

异步预分频器时钟 f CK_APRE =f RTC_CLK /(PREDIV_A+1),同步预分频器时钟 f CK_SPRE =f RTC_CLK /(PREDIV_S+1),)。

使⽤两个预分频器时,推荐将异步预分频器配置为较⾼的值,以最⼤程度降低功耗。

⼀般我们会使⽤ LSE ⽣成 1HZ的同步预分频器时钟通常的情况下,我们会选择 LSE 作为 RTC 的时钟源,即 f RTCCLK =f LSE =32.768KHZ。

然后经过预分频器 PRER 分频⽣成 1HZ 的时钟⽤于更新⽇历。

使⽤两个预分频器分频的时候,为了最⼤程度的降低功耗,我们⼀般把同步预分频器设置成较⼤的值,为了⽣成1HZ 的同步预分频器时钟 CK_SPRE,最常⽤的配置是 PREDIV_A=127,PREDIV_S=255。

RTC实时时钟驱动

RTC实时时钟驱动

RTC实时时钟驱动RTC(Real-Time Clock)实时时钟为操作系统提供了⼀个可靠的时间,并且在断电的情况下,RTC实时时钟也可以通过电池供电,⼀直运⾏下去。

RTC通过STRB/LDRB这两个ARM指令向CPU传送8位数据(BCD码)。

数据包括秒,分,⼩时,⽇期,天,⽉和年。

RTC实时时钟依靠⼀个外部的32.768Khz的⽯英晶体,产⽣周期性的脉冲信号。

每⼀个信号到来时,计数器就加1,通过这种⽅式,完成计时功能。

RTC实时时钟有如下⼀些特性:1,BCD数据:这些数据包括秒、分、⼩时、⽇期、、星期⼏、⽉和年。

2,闰年产⽣器3,报警功能:报警中断或者从掉电模式唤醒5,独⽴电源引脚RTCVDD6,⽀持ms中断作为RTOS内核时钟7,循环复位(round reset)功能如图,RTC实时时钟的框架图,XTIrtc和XTOrtc产⽣脉冲信号,即外部晶振。

传给2^15的⼀个时钟分频器,得到⼀个128Hz的频率,这个频率⽤来产⽣滴答计数。

当时钟计数为0时,产⽣⼀个TIME TICK中断信号。

时钟控制器⽤来控制RTC实时时钟的功能。

复位寄存器⽤来重置SEC和MIN寄存器。

闰年发⽣器⽤来产⽣闰年逻辑。

报警发⽣器⽤来控制是否产⽣报警信号。

1,闰年产⽣器: 闰年产⽣器可以基于BCDDATE,BCDMON,BCDYEAR决定每⽉最后⼀天的⽇期是28、29、30、31.⼀个8位计数器只能表⽰两位BCD码,每⼀位BCD码由4位表⽰。

因此不能⽀持。

因此不能决定00年是否为闰年,例如不能区别1900和2000年。

RTC模块通过硬件逻辑⽀持2000年为闰年。

因此这两位00指的是2000,⽽不是19002,后备电池: 即使系统电源关闭,RTC模块可以由后备电池通过RTCVDD引脚供电。

当系统电源关闭时,CPU和RTC的接⼝应该被阻塞,后备电池应该只驱动晶振电路和BCD计数器,以消耗最少的电池。

3,报警功能: 在正常模式和掉电模式下,RTC在指定的时刻会产⽣⼀个报警信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即使系统供电消失,只要备 份域供电还在RTC仍可工作
两个可编程分频器
7位的PREDIV_A
默认因子 = 128,不能为0
LSI HSE (max= 1MHz)
通过HSE_RTC分频调节 /2 ~ /31
13位的PREDIV_S
默认因子= 256
@RCC_BDCR
Day/date/month/year HH:mm:ss (12/24 format)
=
Alarm B Flag
Alarm B
Synchronous 13bit Prescaler
PREDIV_S [12:0]
ss, mm, HH/date
Wake-Up
Asynchrone 4bit Prescaler
培训内容
RTC系统框图和组件
时钟源和分频器 硬件日历和警报 自动唤醒定时器
特色功能
数字粗略校准 参考时钟
外部引脚上的导出和导入功能
输出:警报、定时信号、校准时钟 输入:入侵检测
低功耗特性 STM32F2和STM32F1的RTC比较
3
RTC框图
AFI_TAMPER AFI_TIMESTAMP RTC Reference Clock RTCSEL [1:0]
6
配置时间格式(12/24小时)
置位或复位 FMT@RTC_CR
清零INIT@RTC_ISR 往RTC_WPR写入0xFF
7 8
退出初始化模式 使能RTC寄存器写保护
14
闹钟的设置非常灵活
Step 1 What to do 关闭RTC寄存器的写保护 How to do it 先后往RTC_WRP写入 0xCA和0x53 Comments RTC寄存器可以被修改了
实时时钟 RTC
1
培训内容
RTC系统框图和组件
时钟源和分频器 硬件日历和警报 自动唤醒定时器
特色功能
数字粗略校准 参考时钟
外部引脚上的导出和导入功能
输出:警报、定时信号、校准时钟 输入:入侵检测
低功耗特性 STM32F2和STM32F1的RTC比较
2
HSE (1 MHz) LSE LSI
RTCCLK
ss, mm, HH/date
Asynchronous 7bit Prescaler
=
Alarm A Flag
Calendar
RTC_CR_OSEL[1:0]
PREDIV_A [6:0] AFO_ALARM
Calibration
Day/date/month/year HH:mm:ss (12/24 format)
=
Alarm B Flag
Alarm B
Synchronous 13bit Prescaler
PREDIV_S [12:0]
ss, mm, HH/date
Wake-Up
Asynchrone 4bit Prescaler
WUCKSEL [2:0]
16bit autoreload Timer
Periodic wake up Flag
Tamper Flag
TimeStamp Registers
TimeStamp Flag 512 Hz clock output Alarm A AFO_CALIB
HSE (1 MHz) LSE LSI
RTCCLK
ss, mm, HH/date
Asynchronous 7bit Prescaler
=
1秒 RTCCLK
time 1 COPY COPY time 1 COPY time 1 COPY time 1 time 2 COPY time 1 COPY time 1
Real registert
Shadow register
time 1
RSF
RSF在影子寄存器被更新后由硬件置位; RSF可通过软件复位,也可在初始化模式时 被硬件复位
15
AFI_TAMPER AFI_TIMESTAMP RTC Reference Clock RTCSEL [1:0]
Backup Registers and RTC Tamper Control registers
Tamper Flag
TimeStamp Registers
TimeStamp Flag 512 Hz clock output Alarm A AFO_CALIB
注意:LSI精度不适用于日历应用
8
AFI_TAMPER AFI_TIMESTAMP RTC Reference Clock RTCSEL [1:0]
Backup Registers and RTC Tamper Control registers
Tamper Flag
TimeStamp Registers
举例1:每个周一的23:15:07产生闹钟 >> WDSEL = 1 >> MSKx = 0000b >> s = 7 (ST=0b,SU=0111b) >> mm = 15 (MT=01b,MU=0101b) >> hh = 23 (HT=10b,HU=11b) >> AM/PM = 0 (24小时制) >> D = 1 举例2:每个月1号的23:15:07产生闹钟 >> WDSEL = 0 >> 其余设置都一样
12
特殊情况下读取影子寄存器的特殊操作
从低功耗模式唤醒后,软件要读取日历信息
因为:低功耗模式下不更新影子寄存器 所以:先复位RSF标志,因为:系统复位信号会复位影子寄存器 所以:先复位RSF标志,再等待RSF置位
日历模块初始化后,软件要读取日历信息:
2
3 4 5 6
关闭警报A
等待访问允许的确认 设置闹钟 重新使能警报A 使能RTC寄存器写保护
复位ALRAE@RTC_CR
查询ALRAWF@RTC_ISR 直到它置位 设置RTC_ALRMAR 置位ALRAE@RTC_CR 往RTC_WPR写入0xFF RTC寄存器不能被修改 FMT格式要和日历一致
Backup Registers and RTC Tamper Control registers
Tamper Flag
TimeStamp Registers
TimeStamp Flag 512 Hz clock output Alarm A AFO_CALIB
HSE (1 MHz) LSE LSI
置位INIT@RTC_ISR
查询INITF@RTC_ISR直到 它置位
日历计数器停止以便于修 改
4
5
对预分频因子编程
装载时间和日期值
编程寄存器RTC_PRER: RTCCLK=32.768 KHz时, 先写同步分频因子,再写异 预分频因子默认产生1Hz 步因子 时钟 编程RTC_TR和RTC_DR FMT=0:24小时制 FMT=1:AM/PM制 自动载入当前日历计数器 值,4个RTCCLK后开始计 数 RTC寄存器不能被修改
RTCCLK
ss, mm, HH/date
Asynchronous 7bit Prescaler
=
Alarm A Flag
Calendar
RTC_CR_OSEL[1:0]
PREDIV_A [6:0] AFO_ALARM
Calibration
Day/date/month/year HH:mm:ss (12/24 format)
PREDIV_S [12:0]
ss, mm, HH/date
Wake-Up
Asynchrone 4bit Prescaler
WUCKSEL [2:0]
16bit autoreload Timer
Periodic wake up Flag
6 6
时钟源和分频器
RTC时钟源:RTCCLK
LSE (属于备份域)
Tamper Flag
TimeStamp Registers
TimeStamp Flag AFO_CALIB
RTCCLK
ss, mm, HH/date
=
Alarm A Flag
Calendar
RTC_CR_OSEL[1:0]
PREDIV_A [6:0] AFO_ALARM
Calibration RTC 数字校准
PREDIV_A [6:0] AFO_ALARM
Calibration
Day/date/month/year HH:mm:ss (12/24 format)
=
Alarm B Flag
Alarm B
Synchronous 13bit Prescaler
PREDIV_S [12:0]
ss, mm, HH/date
10
日历和闹钟寄存器
礼拜
月 年 日

12/24小时制
时 秒
日 礼拜
12/24小时制 时 秒 分
11
日历模块的时钟同步
用户以APB1的时钟读取日历寄存器
读取RTC_TR时硬件会锁定RTC_DR 先读取RTC_TR,再读取RTC_DR,保证时间连续性
要保证fPCLK1 ≥4*fRTCCLK
WUCKSEL [2:0]
16bit autoreload Timer
Periodic wake up Flag
5 5
AFI_TAMPER AFI_TIMESTAMP RTC Reference Clock RTCSEL [1:0]
Backup Registers and RTC Tamper Control registers
相关文档
最新文档