Welcome to YouChips technoligy(ShenZhen) Co.,Ltd | Register

要让 STM32F407 同时稳定运行 USB(OTG FS)、以太网(ETH)、CAN 三大功能,核心是选择能满足所有外设时钟精度要求、且适配 STM32F4 PLL 时钟树的 HSE 晶振 ——方案是:HSE 频率选 25MHz,类型选「无源贴片晶振(Parallel Resonant 型)」,其次可选 8MHz 无源晶振(兼容性稍弱)。

一、选择核心逻辑:三大外设的时钟硬约束

STM32F407 的 USB/ETH/CAN 对时钟有明确要求,HSE 作为核心时钟源,必须同时满足:

外设关键时钟要求精度要求
USB OTG FS必须提供 48MHz 精确时钟(来自 PLL_Q 分频输出)±0.25%(USB 2.0 标准)
以太网(ETH)RMII 模式需 50MHz 参考时钟(可由 PHY 自供或 MCU 输出);MAC 时钟来自 AHB1(168MHz 系统时钟下稳定)±1%(主流 PHY 要求)
CAN时钟来自 APB1(最大 42MHz,168MHz 系统时钟下由 APB1 4 分频得到)±1%(CAN 协议要求)

同时,STM32F4 的 PLL 时钟树有固定规则(PLL 输入频率 1-2MHz 合适,PLL_Q 需分频出 48MHz),HSE 频率需适配这一规则,才能让系统时钟(SYSCLK)稳定跑满 168MHz(F407 性能不错)。

二、HSE 选择:25MHz 无源晶振

1. 频率选择理由:完美适配 PLL 时钟树,兼顾所有外设

STM32F4 的 PLL 时钟树配置逻辑(目标:SYSCLK=168MHz + USB=48MHz + ETH 兼容):

PLL 核心公式:PLL_OUT = (HSE / PLL_M) * PLL_N

为了 USB 输出 48MHz:PLL_OUT / PLL_Q = 48MHz → 最优解是 PLL_OUT=336MHz,PLL_Q=7(336/7=48,整数分频无误差);

为了 SYSCLK=168MHz:PLL_OUT / PLL_P = 168MHz → PLL_P=2(336/2=168);

为了 PLL 稳定:HSE / PLL_M = 1MHz(PLL 输入频率 1MHz 是最优区间)→ PLL_M=HSE(因 1MHz×PLL_M=HSE)。

当 HSE=25MHz 时,PLL 配置为:

PLL_M=25(25MHz /25=1MHz,满足 PLL 输入要求);

PLL_N=336(1MHz×336=336MHz,PLL_OUT 目标值);

PLL_P=2(336MHz/2=168MHz,SYSCLK 满速);

PLL_Q=7(336MHz/7=48MHz,USB 时钟精准)。

此时:

CAN 时钟:APB1 4 分频 → 168MHz/4=42MHz(符合 CAN 时钟要求);

ETH 时钟:25MHz 是以太网 PHY 的「标准参考频率」,PHY 可直接用 25MHz 晶振生成 50MHz RMII 参考时钟(无需 MCU 额外输出,简化配置、降低干扰)。

2. 类型选择理由:无源晶振(Parallel Resonant 型)

优先选 无源贴片晶振,而非有源晶振 / 温补晶振(TCXO),原因:

晶振类型优势劣势适配性
无源晶振(推荐)成本低、体积小(贴片封装如 3225/2520)、功耗低、STM32F4 原生支持(仅需外接负载电容需 MCU 提供振荡电路(简单)✅ 最佳选择(满足所有精度)
有源晶振精度极高(±1ppm)、抗干扰强成本高、需额外供电(VCC/GND)、PCB 设计复杂❌ 没必要(无源已满足精度)
温补晶振(TCXO)极端温度下精度高(±0.1ppm)成本高、体积大、功耗高❌ 仅极端环境(-40℃~85℃+)考虑

具体选型参数

封装:优先 3225(3.2×2.5mm)或 2520(2.5×2.0mm)贴片(节省 PCB 空间),插件 HC-49S 也可(适合面包板 / 原型机);

精度:±10ppm(工业级,-40℃~85℃),严苛环境可选 ±5ppm(足够覆盖 USB±0.25% 要求);

负载电容:12pF(STM32F407 HSE 引脚典型推荐值,需与晶振规格书匹配,否则频率偏移);

频率容差:±10ppm(常温下),温漂:±10ppm(-40℃~85℃)。

三、次选方案:8MHz 无源晶振(兼容性备选)

若供应链中 25MHz 晶振不易获取,可选择 8MHz 无源晶振(经典通用频率),配置逻辑如下:

PLL 配置:PLL_M=8(8MHz/8=1MHz)、PLL_N=336、PLL_P=2、PLL_Q=7(与 25MHz 配置一致,同样满足 USB=48MHz、SYSCLK=168MHz);

ETH 适配:需 PHY 自带 25MHz 晶振生成 50MHz RMII 参考时钟(8MHz 晶振无法通过 MCU 直接生成 50MHz 整数分频时钟,需 PHY 自供);

优缺点:兼容性强(8MHz 晶振随处可得),但 ETH 配置需依赖 PHY 自供时钟,灵活性稍弱于 25MHz。

四、不推荐的频率(避坑)

12MHz/16MHz:虽能通过 PLL 配置满足 USB / 系统时钟,但 ETH 兼容性差(PHY 少见 12/16MHz 参考晶振);

26MHz:部分 PHY 支持,但晶振通用性不如 25MHz/8MHz,成本稍高;

32MHz 以上:PLL_M 分频后难以满足 1MHz 输入要求,PLL 稳定性下降。

五、关键配置注意事项(避免踩坑)

晶振布局:负载电容需紧贴晶振引脚(引线长度<3mm),避免电磁干扰(ETH/USB 对时钟干扰敏感);

总结

STM32F407 同时使用 USB/ETH/CAN 时,好的HSE 方案是 25MHz 无源贴片晶振(3225 封装,±10ppm,12pF 负载电容)—— 既完美适配 PLL 时钟树,满足所有外设的精度和频率要求,又能简化 ETH 配置,是工业级应用的主流选择。若 25MHz 晶振不可得,8MHz 无源晶振可作为备选(需 PHY 自供 50MHz 时钟)。    ——源自电子发烧友


Product Index :