cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F031 uart bootloader signal levels

Gregory Holcomb
Associate II
Posted on June 30, 2017 at 20:20

I have a design where another micro is connected to the STM32F031 UART pins and I am attempting to enter the rom bootloader.  I referenced AN3155 for details on how the bootloader works, however, there is no definition I could find for the serial connection besides 8-E-1 and baud rate.  Are the signal levels high true, low true, idle high, idle low etc, or will it detect the levels I am using and responded accordingly?

1 ACCEPTED SOLUTION

Accepted Solutions
Posted on July 02, 2017 at 00:44

They are 3V CMOS signals, they are not inverted. The RX pin times the 0x7F training pattern to determine the baud rate, and responds with an 0x79 byte. The system loader is looking for transitions from multiple input sources, so it is important these other pins do not transition (see AN2606)

It is a standard serial protocol, so the level is high, pulses low for the start bit, then sends the 8 data bits, followed by a parity bit, and then one or two stop bits which are high, and really just represent an inter-symbol gap as a minimum separation before another start bit.

For connectivity to RS232 you basically use a level converter which also inverts the signal levels, ie MAX3232 type device

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

1 REPLY 1
Posted on July 02, 2017 at 00:44

They are 3V CMOS signals, they are not inverted. The RX pin times the 0x7F training pattern to determine the baud rate, and responds with an 0x79 byte. The system loader is looking for transitions from multiple input sources, so it is important these other pins do not transition (see AN2606)

It is a standard serial protocol, so the level is high, pulses low for the start bit, then sends the 8 data bits, followed by a parity bit, and then one or two stop bits which are high, and really just represent an inter-symbol gap as a minimum separation before another start bit.

For connectivity to RS232 you basically use a level converter which also inverts the signal levels, ie MAX3232 type device

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..