|
你好 根据STM32H7datasheet上的说明HSE外部晶振范围为4M-48MHz,但是我们使用官方STM32H7IIT6-EVAL评估板,对原先的HSE外部25MHz贴片无源晶振进行更换成48Mhz无源晶振后,无法从MCO-PA8引脚得到相应的48MHz频率。 总结:尝试了4M-40MHz的常规无源晶振均可,但是超过40MHz的外部无源晶振(48MHz),MCO输出波形频率为16MHz,即3分HSE频,无法输出48MHz。 请给出解决方案,或者提出我们可以改进测试的地方。十分感谢! |
STM32H743 配置USBOTG 使用U盘几周后 stm32无法识别usb
STM32H7A3RGT6 ADC 8位采样速度只能达到3.5MSPS达不到数据手册上的7MSPS ?
选型,实现USB转2路CAN功能,目前看到STM32F407和STM32H750都有2路CAN,都能实现功能吗?
关于硬件ECC
LPTIM5的事件Lptim5_ait作为14号Trigger input输入到DMAMUX2 Request generator触发BDMA未生成中断问题
关于NAND FLASH加LittleFS的方案
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
【经验分享】STM32H7 DMA+UART不定长接收实战:解决缓存溢出与数据错位问题
STM32H747 D2域的问题
官方有没有成熟的FTL
微信公众号
手机版
STM32H7 的 HSE 规格虽然写着“4 MHz–48 MHz”,但数据手册里还有一条极易被忽略的限制: 当 HSE ≥ 26 MHz 时,必须把 HSEEXTBYP 位置 1(即“旁路模式”),否则内部反相器增益不足,振荡幅度过小,PLL 参考计数器会直接把 HSE 当成“ 3 分频”来锁,于是你在 MCO 上看到 48 MHz → 16 MHz 的现象
。
另外,MCO 本身还有 GPIO 速度等级限制: PA8 在 Very-high speed 下最大 100 MHz,但芯片内部到焊盘的缓冲级在 40 MHz 以上衰减明显,所以 ST 官方评估板只保证 4–26 MHz 无源晶振能完整输出,48 MHz 无源晶振即使起振,也会被焊盘电容和缓冲级再“吃掉”一部分幅度,看起来就像 3 分频。
综合结论
照此修改后,48 MHz 信号在内部 PLL 和 USB 模块都能正常锁到 48 MHz,MCO 若仍要输出,可接受轻微衰减或改用有源方案即可
注意到MCO 输出了16MHZ的信号,所以请检查以下使用的48MHZ晶体是不是泛音晶体,这种晶体是以16Mhz 为基波的,要锁住3倍频,需要泛音电路。 如果是泛音晶体,最好还是换成基频晶体,并根据晶体厂家规格书,调整相应的外部电容参数。
外部无源晶振(48MHz)正常起振了吗?
STM32H743外部HSE使用48MHz晶体应该是没问题的。
MCO的输出来源可以很多选择,未必一定直接来自HSE,也可以是别的总线时钟。
你可以先基于你说的4M-40MHz这些晶体作为时钟源,针对比较高的总线时钟通过MCO输出看看是否正常。如果这些都OK,再使用48MHZ晶体作时钟源,再作时钟配置,也通过MCO输出看看能否正常,如果不正常,可能要确认下此时的48MHz晶体是否真的震荡起来了,对晶振本身及外围电容参数做些确认或调整。
另外,顺便提醒下,如果MCO要输出较高频率时钟信号,记得将MCO管脚的输出速率相应配置高点。在CubeMx那里就是MCO对应的GPIO的输出速率选项:low speed, medium,high这些。