nRF5340开发——晶振篇
众所周知,Nordic Semiconductor nRF52系列的外部32MHZ高频晶振和32KHZ低频晶振,都需要加匹配电容来保证时钟晶体的精度。这样做的弊端是增加了BOM成本,更重要的是增加了开发和测试的复杂性,客户往往不知道自己选用的晶振,应该匹配多少pf的电容,尤其是32MHZ晶振,为了确保有很好的射频特性,需要尽可能的减少频偏,此时需要用频谱仪测量射频的频偏,再根据测试结果调整匹配的电容,非常耗费时间。
到了nRF5340,我们在参考电路设计上直接省掉了这四个外部电容,采用芯片内置电容的方式,外部晶振直接接芯片的引脚,这样做减少了BOM成本和开发测试的复杂度,客户不需要考虑如何调试匹配电容。
但是,使用nRF5340芯片的内置电容,也有一些需要注意的地方。
1.选用的外部高频晶振和低频晶振的负载电容CL需要满足nRF5340芯片手册中规定的范围:
2.nRF5340芯片的出厂默认使用的是内部电容(由芯片内部相关寄存器的缺省值决定),NCS中默认的配置为CONFIG_SOC_HFXO_CAP_DEFAULT=y,由此Kconfig的注释中可以得知,NCS中采用的是芯片出厂时寄存器中的值:
在芯片手册中可以查到,高频晶振的内部匹配电容的计算公式如下:
CAPVALUE = (((FICR->XOSC32MTRIM.SLOPE+56)*(CAPACITANCE*2-14)) + ((FICR->XOSC32MTRIM.OFFSET-8)<<4)+32)>>6
上面的公式中,CAPACITANCE为寄存器XOSC32MCAPS.CAPVALUE的值,FICR->XOSC32MTRIM.SLOPE和FICR->XOSC32MTRIM.OFFSET为寄存器XOSC32MTRIM中的值。CAPVALUE 的取值范围,即内部两个电容每一个电容值的取值范围是7pf到20pf,精度为0.5pf。
我们可以通过读取相关的寄存器值,来获得公式中变量的值
PS C:UsersstliDesktop> nrfjprog --memrd 0xff0c20
0x00FF0C20: FFFFFE01
可得到:
FICR->XOSC32MTRIM.SLOP=1
FICR->XOSC32MTRIM.OFFSET=16
PS C:UsersstliDesktop> nrfjprog --memrd 0x500045c4
0x500045C4: 0000010C
可得到:
XOSC32MCAPS.ENABLE=1,代表使用了内部电容。
CAPACITANCE=12
带入公式可以得到:
CAPVALUE=10pf
通过以上验证,我们知道芯片出厂时,高频晶振内部电容是使能的,且每一个电容的容值是10pf。
3.如何去修改高频晶振内部匹配电容值?
NCS提供了两个Kconfig,同时配置以下两个宏即可:
CONFIG_SOC_HFXO_CAP_INTERNAL=y
CONFIG_SOC_HFXO_CAP_INT_VALUE_X2=14
CONFIG_SOC_HFXO_CAP_INT_VALUE_X2指的是内部两个电容加起来的值,即如果它的值为14那么每一个电容的值为7pf,如果它的值为15那么每一个电容值为7.5pf。
4.如果一定要外挂两个高频晶振的外部电容,也是有方法的:
CONFIG_SOC_HFXO_CAP_EXTERNAL=y
这样就可以把内部电容断开,改为使用外部电容。不过一般情况下不建议使用外部电容,内部电容省时省力何乐而不为呢?
5.如何调试更改低频晶振的内部电容。
通过寄存器XOSC32KI.INTCAP更改:
NCS中对应的Kconfig:
6.如果需要更进一步节省BOM成本,同时不在乎略微的功耗提升,甚至可以把外部的低频晶振也省略掉,具体配置方法如下:
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=y
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击