2017-11-24 07:15 AM
I tried to figure out the specification of the max. UART baudrate for the SM32H7 series (@ 400MHz system clock).
The data sheet says 12.5 MBit.
Does this apply to all UART ports or only selected ones?
I need 8 MBits @ 16x oversampling and 6 MBits @ 8x oversampling.
Are these baudrates possible?
Best regards,
Holger
2017-11-24 08:33 AM
RM0433 table 51 states the maximum peripheral clock. For all U(S)ART it is 100 MHz. That means 12.5 MBaud @ 8 oversampling and 6.25 at 16 oversampling. 8 x 16 in your question above needs 128 MHz peripheral clock, beyond the specs. Maybe overclocking the uart peripheral clock can be an option, if you dare.
B.t.w, I miss the spec for the maximum peripheral clock frequency in the datasheet and in Stcube!
2017-11-24 09:00 AM
The choice of dividers in the STM32 designs tends to work against you, especially at higher/maximal rates. These rates are also rather high for async comms, sure you can't use a better protocol or something synchronous? The STM32 USART designs also lack any FIFO, you might be better considering and external part optimized for such rates and attached to the FSMC
2017-11-24 01:38 PM
Ths STM33H7 Usart _has_ a FIFO
2017-11-24 02:42 PM
Ok, yes seems to have 16 word RX and TX.
2024-11-25 01:24 AM
You can use up to 125MHz clock source to USART peripherals on H7 if you use CubeMX to configure the clock tree. Then the baudrate can be up to 125/8 or 125/16 depending on the oversampling configurations. But ST HAL driver will stop you from using baudrate higher then 12.5M if assert_param is enabled.