Skip to main content
Associate
July 10, 2026
Question

USART1 receives garbage data at 1.5 Mbits/second or Higher (STM32C542RC)

  • July 10, 2026
  • 2 replies
  • 50 views

Hi Team,

I am using the STM32C542RC on the STM32C5 Nucleo-64 board (MB2213),What is the max. supported baud rate for the USART baud rate?

We have checked that, with STM32CubeMX, the DIV1 prescaler, and oversampling by 16, the maximum supported USART baud rate is 9 Mbit/s, assuming the peripheral clock is configured appropriately.

However, in our setup, we are receiving garbage/corrupted data at 1.5 Mbit/s. Communication works correctly at 1 Mbit/s (TX and RX both working at this baud rate), but increasing the baud rate to 1.5 Mbit/s or higher in that case results in receiving garbage/invalid data.

 


The STM32 receiver and the sender are configured with the same UART settings:
Baud rate: 1.5 Mbit/s
Stop bits: 1 (also tested with 2)
Parity: None
Word length: 8 bits
Hardware flow control: None

 

Please check the above configuration and let us know how to achieve reliable data on the receiving end at a 1.5 Mbps or higher baud rate. If any additional configuration is required, then please let us know.

 

We need to support a higher baud rate with Tx and Rx both working, BUT due to this issue, we are not able to achieve that.

References

2 replies

Andrew Neil
Super User
July 10, 2026

What is the max. supported baud rate for the USART

The datasheet should tell you that?

 

Garbage data on async links is usually due to wrong baud rate - see here.

So the first thing to check is that the baud rate is really what you think it is.

Also use an oscilloscope to check that the signals are still valid at 1.5Mbps.

 

Please give some more details of your setup:

  • What is at the other end of the link ?
  • How are they connected ?

Some good, clear photos of your setup could help.

 

 

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
vatsalAuthor
Associate
July 11, 2026

At the other end, Jetson Orin Nano Developer Kit Carrier Board is connected:
PIN 8: UART1_TXD     ↔     PB15: USART1_RX
PIN 10: UART1_RXD    ↔    PB14: USART1_TX
GND    ↔    GND

Jetson Orin Nano (Expansion Header Connections)

Commands:

1. Configure the UART:

stty -F /dev/ttyTHS1 1500000 cs8 -parenb -cstopb -crtscts -ixon -ixoff -ixany raw -echo

2. Send a message:

printf "hello world\n" > /dev/ttyTHS1


​​​Reference:

https://developer.nvidia.com/downloads/assets/embedded/secure/jetson/orin_nano/docs/jetson_orin_nano_devkit_carrier_board_specification_sp.pdf

 

 

 

MM..1
Chief III
July 11, 2026

And ofcourse check if your clock tree is based on HSE and PLL is set right for 1,5Mb divider without error.

Andrew Neil
Super User
July 11, 2026

And ofcourse check if your clock tree is based on HSE 

Indeed.

 

@vatsal using an internal RC oscillator is unlikely to give good baud rate accuracy - especially at such high speeds.

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.