晶体振荡器频率取决于晶体的电容负载值。一般晶振手册上都会列出该晶振的最佳负载电容--- CL,该总CL通常包括外接负载电容以及布局和封装产生的寄生电容。使用外部电容获得正确的频率意味着必须将内部电容设置为最小值。 打个比方,一个应用可以使用大约2 pF的最小片上电容和7 pF的片外电容器来获得总负载电容9 pF。 CC13XX/CC26XX有内部配置的capacitance array,通常情况下不需要外部负载,直接调整内部的就够了。
下面以CC2640R2F为例来详细说明一下晶振选择及cap array的调整。
1、 晶振选择
芯片对于晶振的要求一般在芯片的数据手册上给出,在CC2640R2F的datasheet里就有如下要求:
24M晶振的负载电容范围是5~9pF。
我们的参考设计---CC2640R2F Launchpad reference design里24M晶振选择的是TSX-3225 24.0000MF15X-AC3【大家自己设计的时候可以选别的,我们有一个针对晶振选择的文档建议参考:https://www.ti.com.cn/cn/lit/pdf/swra495】。看一下这颗晶振的负载电容要求:
9pF,满足数据手册上5~9pF的范围。那再看一下是不是需要调整cap array
2、 Capacitance array的调整
Capacitance array的调整我们也提供了文档:https://www.ti.com.cn/cn/lit/pdf/swra640 部分用户觉得还是不够清晰,因此这里我们详细说明一下。
按照上述文档里table 7 列出来的delta值【篇幅有限,只截取一部分】:
CC2640R2F Launchpad上的芯片是7*7封装,也就是QFN,对应参照的是第一列的数值【芯片的各种封装及具体的引脚定义请查看各自的datasheet及user guide】。查表可得,当delta为0时,内部负载电容正好是9pf,也就是不用调整delta【所以程序里默认是关闭的】。假如所选晶振要求是10pf,那么delta的值可以选择5,程序里面也要进行相应的修改【ccfg.c文件】:
#define SET_CCFG_MODE_CONF_XOSC_CAP_MOD 0x0 // Apply cap-array delta
#define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA 5
还有一种方法是通过smartrf studio调整:
3、 频谱仪调整
上面这个估算出来的值只是理论值,实际应用的时候要通过频谱仪细调。可以用SmartRF studio 的continuous TX功能输出CW波,然后用频谱仪看频偏并进行调整。