Skip to main content
Gregory Holcomb
Associate II
June 30, 2017
Solved

STM32F031 uart bootloader signal levels

  • June 30, 2017
  • 1 reply
  • 664 views
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?

    This topic has been closed for replies.
    Best answer by Tesla DeLorean
    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

    1 reply

    Tesla DeLorean
    Tesla DeLoreanBest answer
    Guru
    July 1, 2017
    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 (See Profile) Up vote any posts that you find helpful, it shows what's working..