STM32系列里RTC的亚秒特性及功能(上)

发布时间:2023-09-20  

绝大多数STM32系列里的RTC都具有亚秒【或称子秒】计数单元。为了了解亚秒特性及功能,不妨先看RTC的功能框图。本文中的有关截图若无特别说明均来自STM32L4系列参考手册。

图片

图片

RTC的时钟源【RTCCLK】可以是LSE、LSI或者HSE/32,由RTCCLK最终变成日历的秒脉冲驱动信号经过了2次分频。先经过上图中A处的异步分频单元,默认分频系数是128,形成ck_apre时钟,默认情况下该时钟频率为256Hz;然后该时钟脉冲来到图中B处的同步分频单元,默认分频系数为256,最终形成1Hz的秒脉冲【ck_spre】到日历单元。关于两分频单元分频系数的配置,通过对RTC_PRER寄存器的相关位编程实现。

图片

其中异步分频系数配置位【PREDIV_A】有7位,同步分频系数【PREDIV_S】有15位。另外,同步分频单元还包括采用向下计数方式的亚秒计数器,它基于异步分频后的时钟ck_apre进行计数,溢出时的重装值等于PREDIV_S。一般来讲,它的一个计数周期就是1s,其计数分辨率或精度为【1/(PREDIV_S+1)】秒。与之配套的亚秒寄存器,实时记录亚秒计数器的计数值,有效数据位乃16位,比PREDIV_S多1位,多出的1位另有它用,此处不表。

图片

显然,当有了这个亚秒计数器后,我们就可以获得少于1秒的时间,或说秒的小数部分---亚秒,其精度由同步分频系数PREDIV_S决定,某时刻的亚秒数通过亚秒寄存器获取,对应的亚秒时间可以通过上图中第2个红色方框内的算式求得【提醒:亚秒计数器采用向下计数方式】。

关于RTC的亚秒概念及基本特性就介绍到这里。稍微小结下:

1、亚秒是对少于1秒的时间称谓,范围在0到1秒,并非固定的值;

2、亚秒精度【分辨率】可调,由PREDIV_S参数决定,即【1/(PREDIV_S+1)】秒;

3、亚秒寄存器【RTC_SSR】实时记录亚秒计数器的值,具体由 SS [15:0]体现;

4、亚秒时间通过算式(PREDIV_S- SS ) / (PREDIV_S+1)求得;

我们知道RTC除了提供基本的日历功能外,还有很好的低功耗特性,常用于低功耗的唤醒。有些低功耗应用场合,虽然系统需要周期性的唤醒,但对唤醒周期的一致性要求往往并不严格、很多时候的周期值往往远达不到秒级,比方在10个毫秒上下、几十个毫秒左右、100毫秒量级不等。像这种场合,我们可以考虑使用RTC的亚秒特性和ALARM功能实现周期性唤醒。

假设某STM32用户有这样的需求,他的系统涉及低功耗,需要周期性地做休眠与唤醒的切换。他希望系统进入休眠后每隔50±20ms的时间范围内被唤醒,唤醒后做些基本的检测处理后又进入休眠。要实现这个需求,对于很多带LPTIM的STM32系列也很方便实现。

不过,今天主要想聊聊如何通过RTC来实现该需求。了解STM32的RTC的人可能知道,RTC模块往往还自带一个专门的16位向下计数的唤醒定时器,即下面RTC局部框图中红框所在单元。我这里要分享的也不是这个专用唤醒定时器,而是想基于ALARM事件和亚秒特性来实现上面需求。

图片

对于RTC的ALARM功能我们都不陌生,即先预设需要ALARM的时间点,当日历时间跟设定的ALARM时间匹配时就可以触发ALARM事件及中断。对于ALARM时间点的报警条件可以有很多灵活的组合配置,比方我们可以设置在某月某日某时某分某秒ALARM,也可以设置在某分某秒ALARM,其它不关心,或者仅设置在某个亚秒时刻ALARM,其它不关心。

图片

上图中四种ALARM设置,灰色部分表示不关心项,即不参与日历值与ALARM设定值相关项的比较。这里分别表示的警情时刻是:

第一种,只要日历中跟ALARM设置的时、分、秒匹配时报警,其它不关心;

第二种,只要日历中跟ALARM设置的分值、秒值匹配时报警,其它不关心;

第三种,只要日历中跟ALARM设置的秒值和亚秒低3位值匹配时报警,其它不关心;

第四种,只要日历中跟ALARM设置的亚秒的低4位值匹配时报警,其它不关心;


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>