cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot program the MCU via the serial port USART1.

Johan Berts
Associate II

We are having a problem with programming the MCU via the serial port USART1. The pins used are TX: PA9 and RX: PA10.

The serial port works as expected when we the application is running.

BOOT0 ping seams to work. When low it boots our custom application. When high, it doesn't boot our custom application. If we break the execution we see that it seems to run the internal bootloader. The execution address are somewhere above 0x1ff00000.

E.g.

(gdb) bt

#0 0x1ff025d0 in ?? ()

#1 0x1ff006ce in ?? ()

But it does not answer on the 0x7F byte sent from STM32CubeProgrammer on the host PC. We have tried with different baudrates.

Can it be that the internal bootloader has triggered on some other communication mechanism. Is there a way to identify that? E.g. by the execution address.

2 REPLIES 2
TDK
Guru

> Can it be that the internal bootloader has triggered on some other communication mechanism. Is there a way to identify that? E.g. by the execution address.

It's possible, but the bootloader isn't public so you'd have to reverse engineer it. Do you have any other supported peripherals connected?

Do you have even parity enabled? Can you see the signals on a scope?

Include your chip part number.

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

I have faced the same issue . I was trying to connect in UART boot mode with STM32H723 controller. Selected UART port according to boot mode application note from st.com . UART seems to work fine in application code. While trying to connect it in boot mode with STMCubeProgrammer software , controller wont reply to UART sync command byte sent from STMCubeProgrammer software.