4.1 如何选择合适的晶体和外部器件
STM32 MCU/MPU 内置低速振荡器
低速谐振器市场上的晶体谐振器种类很多。选定一款型号,取决于多个参数。需要重点考虑的参数(仅列技术因素):
- 晶体尺寸或占板面积
- 晶体负载电容(CL)
- 振荡频率偏差(PPM)
- 启动时间
这几项之间要按关键设计准则做权衡。图12:按上述因素和权衡关系,市面上的谐振器分为两类。
图12 低速晶体谐振器分类

负载电容、功耗、可拉性
大负载电容谐振器(如12.5 pF)要求振荡器输出更大驱动功率,回路才能稳定在谐振器标称频率上。
面向低功耗的设计,例如纽扣电池供电、要求超长续航的RTC应用,多用负载电容较小的谐振器。
大CL谐振器的可拉性(pullability)远小于小CL谐振器。
功耗无严格约束的设计,多用大CL晶体,以降低可拉性。
尺寸与ESR
手持和可穿戴消费市场(智能手机、蓝牙配件)是晶体谐振器用量最大的领域之一,该市场晶体尺寸是关键指标。
小尺寸晶体的ESR偏高。
目标设计对功耗有严格约束(常见情况)时,选型难度更大:选CL尽可能小的晶体,优先保功耗,即使牺牲可拉性。
高ESR晶体的启动时间略长。
晶体尺寸无约束时,选ESR尽可能小的晶体。
噪声环境
工业应用基本都属于噪声环境。
功耗无约束时,选大CL晶体。
这类晶体需要振荡器提供大驱动电流,抗噪声和外部扰动能力更强。
另一个好处是设计可拉性最小。
STM32 内置低速振荡器(LSE)的类型
视器件而定,下列谐振器系列可能全部兼容,也可能只有部分兼容。STM32 器件内置两类 LSE:
- 固定增益:增益恒定,仅兼容上述少数几组晶体。STM32F2、STM32L1 的 LSE 面向功耗严格受限的设计,所选晶体应为低CL、中等ESR。STM32F1 的 LSE 面向中等ESR、中等CL的晶体。
- 可配置增益:主要优势是兼容晶体数量大,器件本身几乎不构成约束。兼容清单长,设计者可按功耗、占板面积等设计约束选型。分两类:
-- 动态(运行时)可改增益 LSE:起振前或使能后均可改增益。
-- 静态可改增益 LSE:仅在 LSE 关闭时可改。要增减振荡器跨导,须先关闭 LSE。
表5 列出 STM32 器件内置的 LSE。
注意
静态或动态改增益后,须重新校准振荡频率,以估算最终精度不确定度(PPM)预算。
STM32F0、STM32F3 中,高驱动模式(gm = 25 µA/V)只能配 12.5 pF 晶体,避免振荡回路饱和导致起振失败。
配低CL晶体(如6 pF)时,振荡频率出现抖动,占空比可能失真。
表5 STM32 MCU/MPU 内置 LSE 振荡器(图示)
|------------------------------------------------------|----------|------------|-----------------|--------|
| 系列 | 驱动电平 | gm 最小值 | Gm_crit_max | 单位 |
| C0 | 中高 | 8.5 | 1.7 | µA/V |
| C0 | 高 | 13.5 | 2.7 | µA/V |
| F0、F3 | 低 | 5 | 1.0 | µA/V |
| F0、F3 | 中低 | 8 | 1.6 | µA/V |
| F0、F3 | 中高 | 15 | 3 | µA/V |
| F0、F3 | 高 | 25 | 5 | µA/V |
| F1、T | 不适用 | 5 | 1 | µA/V |
| F2、F4_g1(2) | 不适用 | 2.8 | 0.56 | µA/V |
| F4_g2(3) | 低 | 2.8 | 0.56 | µA/V |
| F4_g2(3) | 高 | 7.5 | 1.5 | µA/V |
| F7 | 低 | 2.4 | 0.48 | µA/V |
| F7 | 中低 | 3.75 | 0.75 | µA/V |
| F7 | 中高 | 8.5 | 1.7 | µA/V |
| F7 | 高 | 13.5 | 2.7 | µA/V |
| L1 | 不适用 | 3 | 0.6 | µA/V |
| G0、G4、H7 | 低 | 2.5 | 0.5 | µA/V |
| L0、L4、L4+、L5;MP1、MP2;N6;U0、U3、U5(4);WB、WB0、WBA(5)、WL | 中低 | 3.75 | 0.75 | µA/V |
| L0、L4、L4+、L5;MP1、MP2;N6;U0、U3、U5(4);WB、WB0、WBA(5)、WL | 中高 | 8.5 | 1.7 | µA/V |
| L0、L4、L4+、L5;MP1、MP2;N6;U0、U3、U5(4);WB、WB0、WBA(5)、WL | 高 | 13.5 | 2.7 | µA/V |
| C5、H5、G5、H7P | 中低 | 3.75 | 0.75 | µA/V |
| C5、H5、G5、H7P | 中高 | 8.5 | 1.7 | µA/V |
| C5、H5、G5、H7P | 高 | 13.5 | 2.7 | µA/V |
(1) 颜色代码:
浅蓝为跨导可动态(运行时)修改的 LSE 振荡器;
黄色为跨导不可修改的 LSE 振荡器;
灰色为跨导可静态修改的 LSE 振荡器。
(2) 第一代 LSE 的 STM32F4 系列,即 STM32F401/405/407/415/417/427/429/437/439xx,跨导不可修改。
(3) 第二代 LSE 的 STM32F4 系列,即 STM32F410/411/412/413/423/446/469/479xx,跨导可静态修改。
(4) STM32U575/585 rev. X 器件不支持低驱动模式。
(5) STM32WBA 器件不支持低驱动模式。
4.2 怎么选一颗 STM32 能用的晶体
本节讲选晶体和外部器件的推荐流程,按下面几步走。
步骤 0:选基频模式的谐振器
选按基频设计的谐振器。第 3.9 节讲过,STM32 振荡器验证过的搭配是基频振动谐振器加图 5 的皮尔斯振荡电路。确认所选谐振器按基频工作设计。
步骤 1:核对谐振器与所选 STM32 是否兼容
在第 3.4 节的两套流程里挑一套,依据是数据手册给出的振荡器规格。
- 手册给了振荡器跨导参数:走第二套流程。增益裕度比大于 5(x5),才算与所选 STM32 型号兼容。
- 手册给的是 Gm_crit_max:振荡回路的 gmcrit 小于该 Gm_crit_max 即可。
步骤 2:确定负载电容 CL1、CL2 的容值
按第 3.3 节的公式算 CL1、CL2。算出来的是近似值。第二步做实验迭代微调,直到找到合适的容值。
实验阶段用标准晶体,也就是在被标称负载电容(CL)加载时 PPM 漂移已知的晶体。这类晶体可向厂家索取。选定后,算出它在标称负载电容加载下的振荡频率 Fstandard,公式:
Fstandard = Fnominal × (1 + PPMstandard / 10^6)
其中:
- Fstandard:标准晶体在标称负载电容加载下的振荡频率
- Fnominal:晶体数据手册给出的标称振荡频率
- PPMstandard:晶体厂家标定的标准晶体振荡频率漂移
算出 Fstandard 后,按下列顺序做。
1)第一次实验迭代,CL1、CL2 用计算得出的容值:
- 振荡频率等于 Fstandard:CL1、CL2 就是正确容值,跳过子步骤 2 和 3。
- 振荡频率低于 Fstandard:做子步骤 2,否则做子步骤 3。
2)本次迭代减小 CL1、CL2,重测振荡频率,与 Fstandard 比较:
- 频率低于 Fstandard:做子步骤 2,否则做子步骤 3。
- 频率几乎等于 Fstandard:采用后一组的 CL1、CL2 容值。
3)本次迭代增大 CL1、CL2,重测振荡频率,与 Fstandard 比较:
- 频率低于 Fstandard:做子步骤 2,否则做子步骤 3。
- 频率几乎等于 Fstandard:采用后一组的 CL1、CL2 容值。
步骤 3:检查振荡回路的安全因子
按第 3.8 节评估安全因子,保证振荡器在工作条件下可靠起振。
注:不少晶体厂家可代为核查器件与晶体的配对兼容性。配对判定合格,厂家可提供报告,含推荐的 CL1、CL2 容值和振荡器负阻实测值。这种情况下可跳过步骤 2 和 3。
步骤 4:计算驱动电平和外部电阻
算驱动电平 DL(见第 3.5 节),与 DLcrystal 比较:
- DL < DLcrystal:不需要外部电阻,晶体可以直接用。
- DL > DLcrystal:算出 RExt,使 DL < DLcrystal。然后把 RExt 计入重算增益裕度。
- 增益裕度大于 5,晶体可用。不满足,这颗晶体不行,换一颗,回到步骤 1 按新晶体重走流程。
步骤 5(可选):计算 PPM 精度预算
按下面公式估算应用的 PPM 精度预算:
PPMBudget = PPMcrystal + Deviation(CL) × Pullabilitycrystal
其中:
- PPMBudget:振荡频率的估算精度
- PPMcrystal:晶体数据手册给出的 PPM 精度
- Deviation(CL):单位 pF,负载电容容值公差,加上 PCB 工艺偏差引起杂散电容(CS)变化,两者造成的负载电容(CL)偏移量
- Pullability:单位 PPM/pF(见第 3.7 节)
注:上述 PPM 预算未计入温度变化,实际预算会更大。