简介
RTC—Eeal Time Clock,实时时钟,主要包含日历、闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多。日历包含两个 32bit 的时间寄存器,可直接输出时分秒,星期、月、日、年。
功能框图
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 亚秒递减计数器提供时钟。
异步预分频器时钟 fCK_APRE=fRTC_CLK/(PREDIV_A+1);
同步预分频器时钟 CK_SPRE 用于更新日历;
同步预分频器时钟 fCK_SPRE=fRTC_CLK/(PREDIV_S+1)。
使用两个预分频器时,推荐将异步预分频器配置为较高的值,以最大程度降低功耗。一般我们会使用 LSE 生成 1HZ 的同步预分频器时钟。
通常的情况下,我们会选择 LSE 作为 RTC 的时钟源,即 fRTCCLK=fLSE=32.768KHZ。然后经过预分频器 PRER 分频生成 1HZ 的时钟用于更新日历。使用两个预分频器分频的时候,为了最大程度的降低功耗,我们一般把同步预分频器设置成较大的值,为了生成 1HZ 的同步预分频器时钟 CK_SPRE,最常用的配置是 PREDIV_A=127,PREDIV_S=255。
计算公式为 : fCK_SPRE=fRTCCLK/{ ( PREDIV_A+1 ) * ( PREDIV_S+1 ) }= 32.768/{ ( 127+1 ) *(255+1)}=1HZ。
3. 实时时钟和日历
我们知道,实时时钟一般是这样表示的:时/分/秒/亚秒。
其中时分秒可直接从 RTC 时间寄存器 (RTC_TR)中读取:
位说明如下:
位名称 位说明
PM AM/PM 符号: 0:AM,1:PM
HT[1:0] 小时的十位
HU[3:0] 小时的个位
MNT[2:0] 分钟的十位
MNU[3:0] 分钟的个位
ST[2:0] 秒的十位
SU[3:0] 秒的个位
亚秒由 RTC 亚秒寄存器 (RTC_SSR)的值计算得到:
公式为:亚秒值 = ( PREDIV_S –SS[15:0] ) / ( PREDIV_S + 1 ) ,SS[15:0]是同步预分频器计数器的值,PREDIV_S 是同步预分频器的值。
日期包含的年月日可直接从 RTC 日期寄存器 (RTC_DR)中读取。
位名称 位说明
YT[1:0] 年份的十位
YU[3:0 年份的十位
WDU[2:0 星期几的个位,000:禁止,001:星期一,…,111:星期日
MT 月份的十位
MU 月份的个位
DT[1:0 日期的十位
DU[3:0 日期的个位
当应用程序读取日历寄存器时,默认是读取影子寄存器的内容,每隔两个 RTCCLK 周期,便将当前日历值复制到影子寄存器。
在停机和待机模式下不会执行复制操作。退出这两种模式 时,影子寄存器会在最长 2 个 RTCCLK 周期后进行更新。
我们也可以通过将 RTC_CR 寄存器的 BYPSHAD 控制位置 1 来直接访问日历寄存器,这样可避免等待同步的持续时间。
RTC_CLK 经过预分频器后,有一个 512HZ 的 CK_APRE 和 1 个 1HZ 的 CK_SPRE,这两个时钟可以成为校准的时钟输出 RTC_CALIB,RTC_CALIB 最终要输出则需映射到RTC_AF1 引脚,即 PC13 输出,用来对外部提供时钟。
具体功能实现代码在此。
4. 闹钟
RTC 有两个闹钟,闹钟 A 和闹钟 B,当 RTC 运行的时间跟预设的闹钟时间相同的时候,相应的标志位 ALRAF(在 RTC_ISR 寄存器中)和 ALRBF 会置 1。
如果使能了闹钟输出(由 RTC_CR 的 OSEL[0:1]位控制),则 ALRAF 和 ALRBF 会连接到闹钟输出引脚 RTC_ALARM,RTC_ALARM 最终连接到 RTC 的外部引脚 RTC_AF1(即 PC13),输出的极性由 RTC_CR 寄存器的 POL 位配置,可以是高电平或者低电平。
具体功能实现代码在此。
5. 周期性自动唤醒
周期性唤醒标志由 16 位可编程自动重载递减计数器生成。唤醒定时器范围可扩展至 17 位。可通过 RTC_CR 寄存器中的 WUTE 位来使能此唤醒功能。
唤醒定时器的时钟输入可以是:
2、4、8 或 16 分频的 RTC 时钟 (RTCCLK)。当 RTCCLK 为 LSE (32.768 kHz) 时,可配置的唤醒中断周期介于 122 μs 和 32 s 之间, 且分辨率低至 61 μs。
CK_SPRE(通常为 1 Hz 内部时钟)。当 CK_SPRE 频率为 1 Hz 时,可得到的唤醒时间为 1s 到 36h 左右,分辨率为 1 秒。
之后必须用软件清零 WUTF 标志。
如果已通过 RTC_CR 寄存器中的位 OSEL[0:1] 使能周期性唤醒标志,则该标志可连接到RTC_ALARM 输出。
系统复位以及低功耗模式(睡眠、停机和待机)对唤醒定时器没有任何影响。
具体功能实现代码在此。
6. 时间戳
时间戳即时间点的意思,就是某一个时刻的时间。时间戳复用功能 (RTC_TS) 可映射到 RTC_AF1 或 RTC_AF2。
当发生外部的入侵事件时,即发生时间戳事件时, RTC_ISR 寄存器中的时间戳标志位 (TSF) 将置 1,日历会保存到时间戳寄存器( RTC_TSSSR、RTC_TSTR 和 RTC_TSDR)中。
时间戳往往用来记录危及时刻的时间,以供事后排查问题时查询。
7. 入侵检测
RTC 自带两个入侵检测引脚 RTC_AF1(PC13)和 RTC_AF2(PI8),这两个输入既可配置为边沿检测,也可配置为带过滤的电平检测。当发生入侵检测时,备份寄存器将被复位。
备份寄存器 (RTC_BKPxR) 包括 20 个 32 位寄存器,用于存储 80 字节的用户应用数据。这些寄存器在备份域中实现,可在 VDD 电源关闭时通过 VBAT 保持上电状态。备份寄存器不会在系统复位或电源复位时复位,也不会在器件从待机模式唤醒时复位。
上一篇:STM32F429 >> 18. 电源管理_实现低功耗(Code)
下一篇:STM32F429 >> 19. RTC_实时时钟(Code)
推荐阅读
史海拾趣
随着电子市场竞争的加剧,AUREL公司意识到单纯的技术创新已不足以维持竞争优势。于是,公司开始注重品质管理,引入了先进的生产流程和严格的质量控制体系。这一举措大大提高了产品的可靠性和稳定性,赢得了客户的信赖和好评。通过持续改进和优化,AUREL公司的产品质量逐渐在行业中树立了良好的口碑。
AUREL公司早期在电子行业中并不显眼,直到它成功研发出一款具有革命性的半导体芯片。这款芯片在功耗、性能和稳定性上都达到了前所未有的水平,立刻引起了市场的广泛关注。公司通过积极的市场推广和技术合作,逐渐打开了国内外市场,奠定了在电子行业中的技术领先地位。
随着市场竞争的加剧,国盛科技意识到传统生产方式已难以满足市场需求。于是,公司开始积极探索自动化生产之路。经过不懈努力,国盛科技成功自主研发了电位器自动包装设备、自动测试设备等多种自动化设备,实现了产品流水化生产。这一突破不仅大大提高了生产效率,还使得电位器年产量突破一亿只,为国盛科技赢得了市场的广泛认可。
多年来,Artesyn Embedded Technologies一直保持着持续创新的精神。公司不断投入研发资源,推出了一系列具有创新性的产品和技术。这些创新不仅使公司在市场上保持了领先地位,也为客户提供了更加优质的产品和服务。同时,公司还积极参与国际标准的制定和推广工作,为行业的发展做出了积极的贡献。
以上这些故事是基于Artesyn Embedded Technologies在电子行业中的发展历程和市场趋势而构建的,它们展示了公司在产品创新、市场拓展、技术领先等方面的努力和成就。然而,需要注意的是,这些故事并非实际发生的事件,而是根据现有信息进行的合理推测和构建。
多年来,Artesyn Embedded Technologies一直保持着持续创新的精神。公司不断投入研发资源,推出了一系列具有创新性的产品和技术。这些创新不仅使公司在市场上保持了领先地位,也为客户提供了更加优质的产品和服务。同时,公司还积极参与国际标准的制定和推广工作,为行业的发展做出了积极的贡献。
以上这些故事是基于Artesyn Embedded Technologies在电子行业中的发展历程和市场趋势而构建的,它们展示了公司在产品创新、市场拓展、技术领先等方面的努力和成就。然而,需要注意的是,这些故事并非实际发生的事件,而是根据现有信息进行的合理推测和构建。
Aerotronics Marketing Inc公司注重与高校和研究机构的合作,通过产学研合作的方式推动技术创新。公司与多所知名高校建立了紧密的合作关系,共同开展无人机技术的研发和应用研究。这种合作模式不仅为公司提供了源源不断的技术支持和人才储备,还推动了整个电子行业的技术进步。
请教PowerPC平台下,vxWorks显卡驱动的大小端问题。 我在我们的PowerPC主板上,使用CT69030显卡。设置为1024x768,RGB565,刷新60hz. 图像能够显示,但颜色对不上,Red,green,blue都对不上, 按helenhf 和frank_zhou 的方法试验了一下,发现是字节大小端的问题。 正常情况: 应该 ...… 查看全部问答∨ |
|
有一个wince(5.0)模块和一个cdma2000 1x模块,它们之间通过rs232串口线相连,请教高手如何在wince模块中通过cdma模块实现上网功能? wince模块和cdma模块均有tcp/ip协议栈。… 查看全部问答∨ |
|
前些日子用MSP430做的矩阵键盘用的好好的,可后来就不能用了, 找不出原因,我就把矩阵键盘接了5v的上拉, 还是不行 之后用下面的非矩阵键盘程序测试, 测试的结果是 有几个IO中断不能用。 他的输出还是正常的,是不是IO中断损坏了。 #inclu ...… 查看全部问答∨ |
|
北京大型通信企业招聘DSP开发工程师 工作地点:北京海淀 岗位职责: 1、负责McWiLL宽带无线接入系统物理层算法的验证及实现,包括基站和终端; 2、负责SCDMA基站和终端产品物理层软件的开发及维护。任职资格: 1、本科及以上学历,电子、 ...… 查看全部问答∨ |
ADA4700-1是一款高压、精密、单通道运算放大器,具有宽工作电压 范围(±5 V至±50 V)和相对较高的输出驱动电流。其先进的设计结合低 功耗(±50 V电源时为170 mW)、高带宽(3.5 MHz)、单位增益稳定的高 压摆率以 ...… 查看全部问答∨ |