关于nrf52832配置低频时钟来源

本文介绍了nrf52832芯片在配置BLE协议栈时如何选择低频时钟来源,包括片内32.768KHz RC振荡器和片外32.768KHz晶振的优缺点。通过修改nrf_sdh_enable_request()函数中的clock_lf_cfg结构体,以及调整sdk_config.h文件中的相关宏,可以设定时钟源,确保芯片正常工作。

配置BLE蓝牙协议栈的低频时钟来源

在BLE协议栈初始化的过程中,我们必须为其配置低频的时钟。而低频时钟来源有2种:

(1)片内32.768KHz的RC振荡源
(2)片外32.768KHz的晶振

他们各有优势,使用片内RC振荡比外加晶振要节省空间,但却比外部晶振精度稍差。
在实际的应用中,我们根据自己开发需求以及PCB设计的大小,可能会舍弃外部低频晶振,所以我们需要修改配置,从而让芯片正常工作。

低频时钟的配置是在nrf_sdh_enable_request()函数中配置,我们进入函数内部可以看到一个关于时钟配置的结构体clock_lf_cfg:

    nrf_clock_lf_cfg_t const clock_lf_cfg =
    {
        .source       = NRF_SDH_CLOCK_LF_SRC,						
        .rc_ctiv      = NRF_SDH_CLOCK_LF_RC_CTIV,				
        .rc_temp_ctiv = NRF_SDH_CLOCK_LF_RC_TEMP_CTIV,
        .accuracy     = NRF_SDH_CLOCK_LF_ACCURACY				
    };

其中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 ----外部32.768KHz的晶振。
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,选择外部晶体时根据实际参考精度设置。

我们也可以点开sdk_config.h文件选择向导模式Configuration Wizard,来配置低频时钟来源,如下:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值