2025年12月25日 10:14:54 来源:深圳市晶诺威科技有限公司 >> 进入该公司展台 阅读量:1
NRF52832协议栈必须外接晶振32.768KHz吗?
答:使用片内RC振荡比外加晶振要节省空间,但却比外部晶振精度差很多。如:前者精度为百分之五( ±5%),而后者为百万分之二十(±20ppm)。
在NRF52832协议栈初始化的过程中,我们必须为其配置低频的时钟。而低频时钟来源有2种:
(1) 片内32.768KHz的RC振荡源
(2)片外32.768KHz的晶振

片内RC内部时钟和由晶振提供的外部时钟各有优势,使用片内RC振荡比外加晶振要节省空间,但却比外部晶振精度差很多。如前者为5%,而后者为百万分之20。在实际的应用中,我们根据自己开发需求以及PCB设计的大小,可能会舍弃外部低频晶振,所以我们需要修改配置,从而让芯片正常工作。
低频时钟的配置是在nrf_sdh_enable_request()函数中配置,我们进入函数内部可以看到一个关于时钟配置的结构体clock_lf_cfg:

其中source是时钟源,rc_ctiv是校准定时器间隔,rc_temp_ctiv是恒温下的软装置校准计时器间隔,accuracy是外部时钟的精度。
与四个结构体成员相关的宏定义在sdk_config.h文件下,修改相关的宏就可以设置低频时钟的来源。
1).source的宏:NRF_SDH_CLOCK_LF_SRC,置0选择NRF_CLOCK_LF_SRC_RC—-内部RC振荡,置1选择NRF_CLOCK_LF_SRC_XTAL —-外部晶振。
2).rc_ctiv的宏:NRF_SDH_CLOCK_LF_RC_CTIV,选择内部RC时值为16,选择外部晶体时值为0.

3).rc_temp_ctiv:NRF_SDH_CLOCK_LF_RC_TEMP_CTIV,选择内部RC时值为2,选择外部晶体时值为0.
4).accuracy:NRF_SDH_CLOCK_LF_ACCURACY,内部RC时置选择NRF_CLOCK_LF_ACCURACY_500_PPM,选择外部晶体时根据实际参考精度设置,如 ±20ppm。
关于NRF 52832配置低频时钟来源—外部晶振电气参数:
