cancel
Showing results for 
Search instead for 
Did you mean: 

USART bootloader not working on stm32u59

Anassoumi
Associate II

Hello Community,

I'm currently facing an issue with entering the USART bootloader mode on my STM32U5 development kit (STM32U5A9JDK). Despite following the standard procedure, the device refuses to enter bootloader mode, and I'm hoping someone here might have insights or experience to share that could help resolve the issue.

Here's a breakdown of the situation:

  • I'm using a USB to UART converter that I've confirmed is pulled high.
  • The BOOT pin configuration is set to '0' as required for USART bootloading.
  • While the STM32 reference manual indicates the need for an RS232 transceiver, I've come across posts suggesting that it's not necessary if the voltage levels are correctly maintained.
  • The voltage levels between my converter and the STM32U5 seem to be compatible, yet the bootloader mode remains elusive.

I'm wondering if there's a nuance I'm missing here, especially regarding the RS232 transceiver. Has anyone successfully entered the USART bootloader mode under similar conditions? Could there be other factors at play that might prevent the device from entering bootloader mode even when the voltage levels are appropriate and the BOOT pin is correctly set?

Any advice or suggestions would be greatly appreciated.

 

Note : I've managed to enter usart bootloader mode using the stlink ,but not using my own usb bridge .

Thanks in advance for your help!

1 ACCEPTED SOLUTION

Accepted Solutions
TDK
Guru

> The BOOT pin configuration is set to '0' as required for USART bootloading.

Can you clarify this a bit? BOOT0 should be pulled UP during reset in order to start the bootloader.

Are you connecting your UART to pins that are supported by the bootloader in AN2606? Which pins? Are they being used by something else on the board?

You shouldn't need a transceiver in general. Most USB to UART adapters will output the right voltage level.

Chatter on other bootloader-support interfaces (such as USB) will cause the bootloader to jump there if they happen first and ignore your UART signals. Probably isn't happening, but it could be.

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

View solution in original post

4 REPLIES 4
TDK
Guru

> The BOOT pin configuration is set to '0' as required for USART bootloading.

Can you clarify this a bit? BOOT0 should be pulled UP during reset in order to start the bootloader.

Are you connecting your UART to pins that are supported by the bootloader in AN2606? Which pins? Are they being used by something else on the board?

You shouldn't need a transceiver in general. Most USB to UART adapters will output the right voltage level.

Chatter on other bootloader-support interfaces (such as USB) will cause the bootloader to jump there if they happen first and ignore your UART signals. Probably isn't happening, but it could be.

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

Hi , i meant that I'm pulling the the BOOT0 pin high not low sorry , I've written a simple code to blink on of the leds in the board but i noticed that at every time i reset the board , it jumps to main code and starts blinking the led which i believe to be the reason why i can't use the usart bootloader yet , is there any other pins that i should check ?

Anassoumi
Associate II

I've managed to enter to bootloader moder by adding an external pull up on the boot0 pin , i found the switch on the board to be damaged thanks for your help .

You should check option bytes in STM32CubeProgrammer to ensure it's actually reading the BOOT0 pin and isn't hardwired to always boot from flash.

If it's running code in the main flash, it's not in the bootloader and you won't be able to connect.


The full list of conditions to get the chip to jump to the bootloader is detailed in AN2606.

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