打造一个通用性MCU架构,支持CX32/AT32/NRF51/NRF52等。 OS支持RTX4/RTX5/FreeRtos。 采用VsCode+GCC组合,VsCode+KEIL5,超强开发方式。 QQ群:524408033

LiSun

打造一个通用性MCU架构,支持CX32/AT32/NRF51/NRF52等。 OS支持RTX4/RTX5/FreeRtos。 采用VsCode+GCC组合,VsCode+KEIL5,超强开发方式。 QQ群:524408033

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
// see nrf_sdm.h for more details
nrf_clock_lf_cfg_t clock_lf_cfg = 
{
    .source = NRF_CLOCK_LF_SRC_RC,
    .rc_ctiv = 16, // Interval in 0.25 s, 16 * 0.25 = 4 sec
    .rc_temp_ctiv = 2, // Check temperature every .rc_ctiv, but calibrate every .rc_temp_ctiv 
    .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_250_PPM,
};

内部RC振荡器:芯片有一个内部RC振荡器,校准时精度为250ppm。 您唯一可以为RC通过这个枚举选择的是校准间隔。 正如nRF51822 PS所给出的,精度是在温度相对稳定时指定的,它每4秒校准一次,所以这是应该用于大多数(所有?)应用程序的校准间隔。  

当RC被校准时,16mhz时钟必须在校准过程中运行,这将导致6-7 μ A的平均电流消耗以4秒的间隔增加。 RC也比晶体使用更多的电流,所以与20 ppm的晶体相比,总增加可能是8-10µa。  

此模式使用的枚举:NRF_CLOCK_LFCLKSRC_RC_250_PPM_xMS_CALIBRATION,其中x是所需的校准间隔,通常为4000毫秒。  

在最近的SDK中,已经添加了相对于温度变化的校准选项,它有enum nrf_clock_lfclksrc_rc_250_ppm_temp_xms_校准。 这将有比nrf_clock_lfclksrc_rc_250_ppm_xms_校准选项更低的电流消耗,因为RC只在有0.5℃或更多的温度变化时进行校准。 RC的频率漂移实际上是温度变化的结果。 nRF51的内部温度外设用于进行温度测量。 如果自上次校准以来有0.5℃或更高的温度变化,则重新校准nRF51。 如果温度变化是<0.5℃,那么RC是没有校准的。 RC的校准需要17ms,但测量温度只需要35us,这就解释了为什么测量温度比校准时消耗更少的电流。 如果有频繁的温度变化,与20ppm晶体相比,电流消耗增加将是最坏的情况8-10 uA。 如果温度变化不频繁,那么与20ppm晶体相比,电流消耗增加约为~2uA。  

一个合成的32.768 kHz时钟:这告诉软设备使用16 MHz时钟合成一个低频时钟。 由于低频时钟被用于睡眠期间,例如连接事件之间,这意味着16mhz必须始终运行,这大大增加了电流消耗(最有可能的是mA平均电流消耗,而不是µa)。  

一般来说,应该没有理由使用这个时钟源,你应该总是能够使用RC振荡器而不是合成时钟。  

此模式使用的枚举:NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM,不应该使用。  

nrf52的时钟配置位置如下

 

posted on 2022-08-13 11:00  xuejianqiang  阅读(79)  评论(0编辑  收藏  举报
打造一个通用性MCU架构,支持CX32/AT32/NRF51/NRF52等。 OS支持RTX4/RTX5/FreeRtos。 采用VsCode+GCC组合,VsCode+KEIL5,超强开发方式。 QQ群:524408033