STM32H723 550MHz时钟下适配USB与以太网的HSE频率确认
解决方案与符合要求的HSE频率
一、当前8MHz HSE的问题解析
当使用8MHz HSE配置550MHz核心时钟时,CubeIDE默认可能将USB时钟从PLL1分频导出:
- PLL1配置为:
M1=4(8MHz/4=2MHz,符合PLL输入要求),N1=275,R1=1,得到核心时钟2MHz*275/1=550MHz。 - 若USB时钟取自PLL1的Q输出,分频系数
Q1无法取到整数使得550MHz/Q1=48MHz(550/48≈11.46,非整数),因此CubeIDE可能默认设置Q1=5,得到550/5=110MHz的错误USB时钟。
修复8MHz HSE的USB时钟:无需更换HSE,手动配置PLL3专门供给USB:
- PLL3配置:
M3=4(8MHz/4=2MHz,符合输入要求),N3=48,Q3=2,计算得USB时钟:(8/4)*48/2=2*24=48MHz,完全符合要求。
二、可满足所有要求的其他HSE频率
如果需要更换HSE,以下两种常见频率可完美适配550MHz核心时钟、48MHz USB时钟,同时满足以太网时钟需求:
1. 20MHz HSE
- 核心时钟配置:
M1=10(20MHz/10=2MHz),N1=275,R1=1→2MHz*275/1=550MHz。 - USB时钟配置:
M3=10(20MHz/10=2MHz),N3=48,Q3=2→2MHz*48/2=48MHz。 - 以太网时钟:可通过PLL2或PLL3分频得到标准的25MHz(RMII)或50MHz(MII),参数配置无冲突。
2. 25MHz HSE
- 核心时钟配置:
M1=19(25MHz/19≈1.316MHz,符合1-2MHz输入范围),N1=418,R1=1→(25/19)*418/1=550MHz。 - USB时钟配置:
M3=25(25MHz/25=1MHz),N3=96,Q3=2→1MHz*96/2=48MHz。 - 以太网时钟:直接利用25MHz HSE作为RMII参考时钟,无需额外分频,配置更简洁。
三、关键注意事项
- STM32H7系列PLL的输入时钟(HSE分频后)必须严格落在1MHz~2MHz范围内,否则PLL无法稳定工作。
- USB时钟必须为精确的48MHz,需单独配置专用PLL(如PLL3)而非复用核心时钟PLL的分频输出,避免出现非整数分频导致的频率偏差。
内容的提问来源于stack exchange,提问作者Chris Morgan
相关产品推荐
相关产品推荐

