引言
本应用笔记描述了如何使用 STM32WB 和 STM32WL 系列微控制器(以下简称 STM32 无线MCU),对用于 RF 应用的 HSE 进行调谐。此类产品提供了一种具有成本效益的高效解决方案,其中通过使用其内部负载电容来控制振荡器精度,从而节省了外部电容的成本并减少了晶振限制。
STM32 无线 MCU 采用外部振荡器高速时钟源作为 RF 时钟生成的基础。HSE 精度对于 RF 系统性能至关重要,因此对外部振荡器进行精细调谐来实现最高时钟精度。
本文档的第一部分介绍了晶体振荡器解决方案。第二部分介绍并比较了三种 HSE 频率调谐方法,即手动调谐方法、自动调谐方法和基于 STM32CubeMonitor-RF 的调谐方法(仅适用于 STM32WB系列)。以下各节描述了这些方法在 STM32WB 和 STM32WL Nucleo 板上的应用,提供了采用STM32Cube 扩展包 X-CUBE-CLKTRIM 的固件和脚本样例。
其中一节专门描述了如何配置 HSE,使其启动阶段稳定可靠并针对 STM32WB 系列微控制器得到优化。
HSE 振荡器
RF 系统需要高频精度才能实现最佳性能。任何时钟偏差都可能导致系统故障和/或性能下降。
在基于 Arm® (a) Cortex®内核的 STM32 无线 MCU 中,RF 时钟由高频 VCO 提供,该 VCO 将使用外部晶体的嵌入式振荡器产生的信号作为参考。
该晶体是 RF 合成器和微控制器的 HSE(高速外部)时钟源。其标称频率可能会有所不同,具体取决于工艺变化、使用的晶体和 PCB 设计等因素。HSE 错误会直接传输到 RF 时钟,因此必须通过调整晶体端子处的负载电容进行精细调谐。
STM32 无线 MCU 具有采用内部负载电容的高效架构,使用户可对晶体频率进行微调,而无需额外的外部电容成本。
振荡器启动阶段的可靠性取决于其实际实现(相关晶体、外部组件、环境)。对于 STM32WB 系列,提出了一种调整其内部操作的方法,以便对这一阶段进行优化和巩固。较长的启动时间可提高可靠性,但会增加功耗。
STM32 无线 MCU 架构
这些 MCU 嵌入了一个具有成本效益的高效晶体振荡器系统,具有用于微调的内部电容。用于负载
电容调谐的内部机制具有双重优势:
减少了对外部晶体的精度限制
减少了 PCB 的全局 BOM(和封装)。
晶体振荡器系统由两个焊盘(OSC_IN 和 OSC_OUT)及其各自的电容组,以及放大器级组成。对于 STM32WB 系列,输入组和输出组的电容值相同。该值与振荡器增益和检测(用于优化启动阶段的参数)一起由寄存器驱动,并对系统行为进行控制。
对于 STM32WL 系列,输入组和输出组的电容值是独立的。这两个值由两个 sub-GHz 射频寄存器驱动,并对系统行为进行控制。
HSE 配置参数-STM32WL 系列
对于 STM32WL 系列,可以设置两个参数来控制振荡器模块。它们可在 SUBGHZ_HSEINTRIMR和 SUBGHZ_HSEOUTTRIMR sub-GHz 射频寄存器中访问,这些寄存器分别包含输入组和输出组的电容值。相关值由其六个较低位表示(这些寄存器的其余位必须保持在其复位值)。
对于两个寄存器:
0x00 对应于最小电容(~11.3 pF)
0x2F 对应于最大电容(~33.4 pF)
值不得超过 0x2F,并且微调步长为~0.47 pF
复位值为 0x12,对应于~20.3 pF。
如前所述,SUBGHZ_HSEINTRIMR 和 SUBGHZ_HSEOUTTRIMR 是 sub-GHz 射频的一部分,而不是系统 CPU 的一部分。要修改其值,用户代码必须通过其 SPI 接口与 sub-GHz 射频通信。