DW1000芯片的RF测试与校准:晶振校准
说明
在之前的那篇频偏校准的博客中,我已经介绍过一次如何校准晶振了。那篇博客中的晶振校准使用API进行操作,方法简单方便,实用性高。本篇仅作做补充,将寄存器设置具体步骤做下说明,本质上和用API库的方法一样。
校准原理
校准原理比较简单,芯片晶振部分电路内置了两个可以软件调整大小的电容。通过软件设置相关修调寄存器值,便可轻松调整38M晶振电路参数,使其频偏最小。
频偏观察方法
38.4 MHz晶体的振荡频率不能直接观测到,因为直接使用仪器探头探测XTAL1和XTAL2会引入干扰。因此合适的方法是通过使用频谱分析仪或频率计数器观察发射器的输出来推断晶体振荡频率。具体为设置发射机发射载波信号,通过观察载波信号的频谱来对晶振的频谱做修调。相关方法在前面博客中已经介绍过多次,不再赘述
载波信号建议配置为信道5(即6489.6MHz)频率越高,就越容易观察到输出中的阶跃变化。
具体流程
-
复位
校准前应先复位芯片,保证状态清空 -
发射机配置流程:
按照以下步骤配置发射器,然后在频谱分析仪或频率计数器上监控射频输出。
-
Sub-Register 0x28:00 – RF_CONF
-
写 0x00000000 到Sub-Register 0x36:04 – PMSC_CTRL1
-
根据选择的信道写对应的值到Sub-Register 0x28:0C– RF_TXCTRL,例如信道五写 0x1E3FE0
-
同样根据所选信道写合适的值到Register file: 0x1E – Transmit Power Control
-
也是根据所选信道写合适的值到 Sub-Register 0x2B:07 – FS_PLLCFG,例如信道五写0x0800041D
-
还是根据所选信道写合适的值到Sub-Register 0x2B:0B – FS_PLLTUNE,例如信道五写 0xBE
-
将0x22写入PMSC_CTRL0以启用适当的时钟源
-
写入0x000000000到预留寄存器 Sub-Register 0x36:26 – PMSC_TXFSEQ
-
Sub-Register 0x28:00 – RF_CONF
有设置不清楚的,可以在看看文档中对应寄存器的说明
- 使能载波模式
设置Sub-Register 0x2A:0C – TC_PGTEST 为0x13来使能载波模式
- 将修剪寄存器设置为中间值,例如0x0F。同时寄存器其他与校准晶振无关的设置为保持不变,具体请参考Sub-Register 0x2B:0E – FS_XTALT在文档中的说明
即设置寄存器为0x6f
- 调整校准值
在仪器上观察频偏,随后调整寄存器值,直到获取所需的频率。一般来讲,修调制和频偏为线性关系(如下图)
trim code 为修调寄存器值十进制形式,一般初始频偏偏高,则需要将寄存器值调高。反正亦然
- 保存修调值
在得到合适的修调值后,可以将其保存到OTP区域中,操作方法参考另外一篇博客。另外用户每次上电后都应该从OTP读出修调值并加载到修调寄存器,保证收发机每次工作都处于最佳状态。另外修调寄存器的值每次休眠时都应保存到AON域中,唤醒后重新加载。