2022-03-13 12:52 PM
I'm going way out on a limb and designing a small uController board based on the STM32H7A3. I've been prototyping the software for a while now on a STM32 Nucleo H7A3 and a STM32 H7B3 Disco board. The Nucleo board uses the 64 Mhz HSI clock but calls out a 25 MHz crystal if you want to populate and use the HSE. The Disco has a 24 MHz HSE crystal installed. The acceptable range for the HSE frequency is 4-50 MHz per the data sheet. CubeMX gives a lot of control over the clock with PLLs and dividers but a 25 MHz clock is really awkward to generate things like standard UART baud rates. Can anyone see any advantage to using a 25 MHz clock as opposed to a clock frequency that is an integer multiple of 4 MHz?
Thanks
2022-03-13 01:10 PM
Hello
Thanks to flexibility of PLL, you can use M divider to decrease clock to 1MHz as PLL input and then go to any clock you need.
To select which HSE to use, consider if you want to use MCO output. For example with HSE 25MHz, when MCU has it,you can drive external ethernet phy chip, or if you use 24MHz one,you can easily drive external ULPI phy for USB. Then you can save one crystal and use single clock source for multiple devices.
2022-03-13 02:08 PM
@Tilen MAJERLE Thanks for the quick response. The H7A3 has a MCO so that's very helpful. At least with CubeMX, dividing the HSE down to 1 MHz mean you have to multiply it up with the PLL by a pretty large number to get the frequency >= 150 MHz and <=420 Mhz. I don't know if that's an issue but keeping both the HSE divider and PLL multiplier relatively low seems like a good idea and there's more than enough flexibility with all the other dividers and multipliers to get the frequencies I need everywhere else.
Thanks again