Nordic 的RTC(Real-time counter)的介绍

目录

概述

[1 RTC(Real-time counter)介绍](#1 RTC(Real-time counter)介绍)

[1.1 框架结构](#1.1 框架结构)

[1.2 时钟源](#1.2 时钟源)

[1.3 分辨率与溢出和precaler](#1.3 分辨率与溢出和precaler)

[2 寄存器功能介绍](#2 寄存器功能介绍)

[2.1 计数寄存器](#2.1 计数寄存器)

[2.2 事件控制功能](#2.2 事件控制功能)

[2.3 比较功能](#2.3 比较功能)

[2.4 读取COUNTER寄存器](#2.4 读取COUNTER寄存器)


概述

本文主要介绍Nordic 的RTC(Real-time counter),实时计数器(RTC)模块是一种低功耗定时器,运行在低频时钟源(LFCLK)上,具有24位计数器、12位预分频器、捕获/比较寄存器和tick事件生成器。RTC的分辨率为30.517µs,能够在高频时钟(HFCLK)关闭时运行,且在使用前需显式启动LFCLK。RTC的时钟源包括多种内部和外部振荡器,时钟分布自动化以降低功耗。RTC的计数寄存器在预分频器为0时递增,支持TICK事件和溢出事件,默认情况下这些事件是关闭的。事件控制功能允许单独禁用事件以优化功耗,比较功能通过比较寄存器实现,读取计数器寄存器时需暂停CPU以确保安全采样。RTC模块支持低功耗"无TICK"RTOS实现,允许在CPU关闭电源时仍保持调度活动。

1 RTC(Real-time counter)介绍

1.1 框架结构

实时计数器(RTC)模块在低频时钟源 (LFCLK)上提供一个通用的低功耗定时器。

RTC模块具有一个24位COUNTER,一个12位(1/X)预分频器,捕获/比较寄存器和一个tick 事件生成器,用于低功耗,无tick RTOS实现。

1.2 时钟源

RTC将从LFCLK运行。因此COUNTER分辨率为30.517µs。根据源,RTC能够运行,而 HFCLK是关闭的,PCLK16M不可用。软件必须在使用RTC之前显式启动LFCLK.

MCU的时钟控制:

时钟控制系统可以从一系列内部或外部高、低 频率振荡器中获取系统时钟,并根据模块的个别要求将其分配给模块。时钟 分布是自动化的,并按模块独立分组,以限制时钟树中未使用的 分支的当前消耗。

下面列出了CLOCK的主要特性:

1) 64MHz 片上振荡器

2) 64MHz晶体振荡器,使用外部32MHz晶体

3) 32.768 kHz +/-250 ppm RC振荡器

4) 32.768 kHz晶体振荡器,采用外部32.768 kHz晶体

5) 64MHz振荡器合成的32.768 kHz振荡器

6)固件(FW)覆盖振荡器活动控制低延迟启动

7) 自动振荡器和时钟控制,超低功耗分配

1.3 分辨率与溢出和precaler

计数器增量频率:

当RTC停止时,PRESCALER寄存器被读/写。一旦RTC启动,PRESCALER寄存器是只读的 。RTC启动时写入precaler寄存器没有效果。在START, CLEAR和TRIGOVRFLW上重新启动precaler,也就是说,在这些任务上,precaler的值被锁存到一个内部寄存器(<<PRESC>>)。

示例:

1) 期望计数器频率100hz (10ms计数器周期)

10009.576µs计数器周期

2) 期望计数器频率8hz (125 ms计数器周期)

RTC分辨率与溢出:

2 寄存器功能介绍

2.1 计数寄存器

当内部precaler寄存器(<<PRESC>>)为0x00时,LFCLK上的COUNTER递增。<<PRESC>>从PRESCALER寄存器中重新加载。如果启用,TICK事件发生在COUNTER的每个 增量上。默认情况下,TICK事件是关闭的。

时序图- COUNTER_PRESCALER_0

时序图- COUNTER_PRESCALER_1

Overflow 特性

TRIGOVRFLW任务将COUNTER值设置为0xFFFFF0,以允许SW测试溢出条件。当COUNTER从0xFFFFFF溢出到0时发生OVRFLW。

**重要:**默认情况下,OVRFLW事件是关闭的

TICK事件

TICK事件支持低功耗"无TICK"RTOS实现,因为它可选地为RTOS提供常规 中断源,而无需使用ARM®SysTick功能。

使用RTC TICK事件而不是SysTick允许CPU在关闭电源的同时仍然保持 RTOS调度活动。

**重要:**默认情况下,TICK事件是禁用的。

2.2 事件控制功能

为了优化RTC功耗,可以单独禁用RTC中的事件,以防止在触发这些事件时请求PCLK16M 和HFCLK。这是使用EVTEN寄存器进行管理的。

例如,如果应用程序不需要TICK事件,则应该禁用此事件,因为它 频繁发生,并且如果HFCLK可能长时间断电 ,则可能会增加功耗。

2.3 比较功能

1)寄存器列表

CC[0]

CC[1]

CC[2]

CC[3]

2)时序图

当设置比较寄存器时,应该注意RTC比较事件的以下行为:

-- 2-1) 如果在设置CLEAR任务时CC寄存器值为0,则不会触发COMPARE事件。

-- 2-2) 如果设置START任务时CC寄存器为N且COUNTER值为N,则不会触发

比较事件。

-- 2.3)当CC寄存器为N且COUNTER值从N-1转换为N时,会发生COMPARE

2.4 读取COUNTER寄存器

为了读取COUNTER寄存器,对内部的<<COUNTER>>值进行采样。

为了确保<<COUNTER>>被安全采样(考虑到在 a读取期间可能发生LFCLK转换),CPU和核心内存总线通过降低核心ready信号暂停三个周期。读取占用CPU 2个周期,导致COUNTER寄存器读取占用固定的5个 PCLK16M时钟周期。

时序图- COUNTER_READ:

相关推荐
TSINGSEE2 小时前
国标GB28181视频质量诊断:EasyGBS服务插件EasyVQD快速识别花屏、蓝屏、画面冻结抖动
人工智能·音视频·实时音视频·视频编解码·视频质量诊断·花屏检测·画面抖动
柒.梧.2 小时前
理解WebRTC:浏览器原生实时音视频通信
webrtc·实时音视频
REDcker21 小时前
RTSP 直播技术详解
linux·服务器·网络·音视频·实时音视频·直播·rtsp
shansz20203 天前
暂时无法解决的关于STM32F103的RTC日期更新问题
stm32·嵌入式硬件·实时音视频
ZEGO即构开发者4 天前
如何用一句话让AI集成 ZEGO 产品
ai·实时互动·实时音视频·rtc
视频技术分享7 天前
2026年实时音视频服务选型深度解析
音视频·实时音视频·视频
摸摸电7 天前
RTC电路电池寿命计算?
实时音视频
深圳市友昊天创科技有限公司11 天前
友昊天创推出8K ,4K 120Hz 100米延长器方案
音视频·实时音视频·视频编解码
视频技术分享11 天前
国产化视频会议安全加密技术行业应用案例集
音视频·实时音视频
深圳市友昊天创科技有限公司11 天前
ASM4242 雷电扩展坞 CV4242 PCIE扩展坞
音视频·实时音视频·视频编解码