cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F412VGH6 – Bootloader not jumping to application when UART RX pin is set to No Pull

Shubha_99
Associate

Hello, 

We have designed custom board using STM32F412VGH6 and have implemented a custom bootloader to support firmware upgrade.
A common debug UART is shared between the bootloader and application firmware. The UART pins are configured as follows:
->TX: PC6
->RX: PC7
Mode: Alternate Function Push-Pull
Pull configuration: No Pull (Initially)

Issue Observed below:
1. When UART pins are configured with an internal pull-up, the bootloader successfully jumps to the application.
2. When No Pull configuration is used, only the bootloader runs, and it does not jump to the application.
3. When No Pull configuration is used and Deinitalizing the peripherals (UART) before jumping to the application, the bootloader successfully jumps to the application.

Note: No interrupts are enabled by bootloader code explicitly.

Question:
Is there any known issue or recommendation regarding UART RX pin state during the bootloader-to-application transition?

Does STM32F412 expect the RX line to be in a defined state (e.g., pulled high) for proper operation during or after system reset/jump?

Could a floating RX pin (no pull) cause unexpected behavior due to false start bit detection?

Any insights or documentation references would be appreciated.

Thanks in advance!

1 REPLY 1
TDK
Super User

Possibly the lack of a pull resistor is causing a frame error or noise error putting the code into a bad state.

If you feel a post has answered your question, please click "Accept as Solution".