STM32L486VGT6 - Port mapping during Bootloader state
Hello everyone,
In my project, I am using the STM32L486VGT6 microcontroller to manage several hardware peripherals. Additionally, I plan to utilize the bootloader feature to flash the code via the USBFS interface.
As we know, when the MCU enters bootloader mode, various peripherals (such as UART, SPI, USB, etc.) are enabled by default.
"Enable state" on these pins could be caused either by an output set to high or an input pin with a pull-up resistor enabled, and I wish to avoid both options.
To better understand which ports are active and which are not, I am mapping all of the MCU’s ports. This will help me identify which I/O pins are available for use without interfering with the activation of other peripherals during bootloader mode. Furthermore, it will help avoid the risk of unintentionally supplying voltage to peripherals that do not have an active VCC.
To map the MCU ports, I’ve fabricated this PCB:


The PCB includes the following components:
- 3V power supply
- USB FS interface
- SWD, Reset, and BOOT0 pins
- 12MHz HSE crystal
All other ports are connected to test pads, as shown in the design.
After mapping all the ports during bootloader mode, I observed the following ports changing from 0V to 3V:
- PA2, PA3
- PC10, PC11
- PB8, PB9
- PA6
- PB14
I compared my results with the information provided in AN2606 (STM32 Microcontroller System Memory Boot Mode), specifically on page 352. According to the app note:
- USART2 (PA2, PA3) is enabled.
- USART3 (PC10, PC11) is also enabled.
However, there is no explanation for why PB8, PB9, PA6, and PB14 are in a high state during bootloader mode.
Can anybody explain why are PB8, PB9, PA6, and PB14 being driven high during bootloader mode, even though they don’t seem to correspond to any enabled peripherals mentioned in the documentation?
I’d appreciate any insights or suggestions on what might be causing this behavior.
Best regards
Nir
