nRF54L15的外设GRTC介绍

Nordic Semiconductor 的 nRF54L15 芯片通过其创新的全球实时计数器外设(Global Real-Time Counter, GRTC)为这一挑战提供了卓越的解决方案。本文将深入解析 GRTC 的技术特性及其在低功耗应用中的独特优势。
一、GRTC 的核心技术特性
全功耗模式支持
GRTC 的最大亮点在于其跨电源模式的持续可用性。无论是系统处于全速运行状态(使用 16MHz 高频时钟),还是进入低功耗休眠甚至完全关机模式(自动切换至 32.768kHz 时钟),GRTC 都能保持计时功能。这种无缝切换机制确保了系统在各种工作状态下都能维持精确的时间基准。
超高精度与超长计时范围
凭借 52 位的计数器宽度和 1 微秒的分辨率,GRTC 创造了令人惊叹的计时能力。理论上,它可以连续运行 142 年才会发生计数器溢出,这一特性使其特别适合需要长期数据记录或事件追踪的应用场景。
功耗优化设计
在低功耗模式下使用 32.768kHz 时钟不仅保证了计时的基本精度,还显著降低了能耗。这种双时钟源的智能切换机制,完美平衡了高精度计时与超低功耗的需求,为电池供电的物联网设备提供了理想的时间管理解决方案

二、GRTC 的应用场景
工业物联网(IIoT)
在工业环境中,设备需要长时间不间断运行并精确记录事件时间戳。GRTC 的超长计时范围和全模式可用性,使其成为工业传感器节点、远程监控设备的理想选择。
医疗设备
对于可穿戴医疗设备或植入式健康监测系统,精确计时和低功耗是关键需求。GRTC 能够在不频繁更换电池的情况下,持续记录生理数据的时间序列,为医疗诊断提供可靠依据

三、开发实践中的 GRTC
对于开发者而言,GRTC 的 API 设计简洁明了,支持多种中断触发模式。通过配置不同的时钟源和分频系数,可以灵活调整计时精度与功耗的平衡点。此外,GRTC 还提供了时间戳捕获功能,能够精确记录外部事件发生的时间点,为事件驱动的应用开发提供了强大支持

四、获取GRTC计数器tick的代码

prj.conf添加宏

CONFIG_POWEROFF=y

初始化函数:

uint64_t user_get_grtc_count()
{
uint32_t syscounterl_value, syscounterh_value, syscounterh;
uint64_t syscounter;
uint8_t m = 1;
do
{
syscounterl_value = NRF_GRTC- >SYSCOUNTER[m].SYSCOUNTERL;
syscounterh = NRF_GRTC- >SYSCOUNTER[m].SYSCOUNTERH;

	syscounterh_value = ((syscounterh & GRTC_SYSCOUNTER_SYSCOUNTERH_VALUE_Msk) > > GRTC_SYSCOUNTER_SYSCOUNTERH_VALUE_Pos);

	if (((syscounterh & GRTC_SYSCOUNTER_SYSCOUNTERH_OVERFLOW_Msk) > > GRTC_SYSCOUNTER_SYSCOUNTERH_OVERFLOW_Pos) == GRTC_SYSCOUNTER_SYSCOUNTERH_OVERFLOW_Overflow)
	{
		syscounterh = syscounterh_value - 1;
	}

} while (((syscounterh & GRTC_SYSCOUNTER_SYSCOUNTERH_BUSY_Msk) > > GRTC_SYSCOUNTER_SYSCOUNTERH_BUSY_Pos) != GRTC_SYSCOUNTER_SYSCOUNTERH_BUSY_Ready);

	return syscounter = (syscounterh_value < < 32) + syscounterl_value;

}
//30s 定时休眠
void test(void)
{

int systemoff_count = 0;

for (;;) {
	dk_set_led(RUN_STATUS_LED, (++blink_status) % 2);
	k_sleep(K_MSEC(RUN_LED_BLINK_INTERVAL));
	printk("time us = %lld \r\n",app_syscounter = user_get_grtc_count());
	systemoff_count++;
	printf("systemoff_count = %d\r\n",systemoff_count);
	if(systemoff_count == 30)
	{
			enter_system_off();
	}
}

}

posted @ 2025-06-27 16:38  TedLee  阅读(214)  评论(0)    收藏  举报