cancel
Showing results for 
Search instead for 
Did you mean: 

BOOTLOADER: Can't reach the default bootloader on my own PCB (STM32F429ZI)

TUmsc.1
Associate II

Hello all,

I worked with the Nucleo-F429ZI (which includes the STM32F429ZI) at the project start. I updated my software via UART and do following steps:

  1. I connect the Nucleo-F429ZI via USB to the PC (it's the power supply too)
  2. I connect a MM232R to pin PA9 and PA10 (UART1) and GND.
  3. I connect the BOOT0 pin to 3V3
  4. I press the reset button B2
  5. I start the tool "STM32CubeProgrammer"
  6. I choose UART and my MM232R, set the baudrate to 115200 and the parity to even
  7. I connect the MM232R load the new software and disconnect the MM232R
  8. I remove the connection of BOOT0 and 3V3
  9. I press the reset button B2
  10. The new software works!

Then I designed my own PCB with the STM32F429ZI. My software works on it and I can update it with the STM32CubeIDE and the SWD connection (PA13 and PA14). Now I want to update the software via UART and the bootloader:

  1. I have two leds which blink during my hole software.
  2. If I connect BOOT0 to 3V3 and reset the mikrocontroller the leds don't blink any more. So I think the mikrocontroller is in a special mode (maybe the bootloader?).
  3. But if i want to connect via STM32CubeProgrammer following error is generated always: 13:33:39 : Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration. Reset your device then try again...

Additional informations:

  • BOOT1 pin on my own PCB is connected with nothing. On Nucleo-F429ZI it's connected with nothing too.
  • My own PCB don't use the HSE

I have very little experience with a bootloader so I hope you can help me. The functionality is very important for me and my project.

Best regards,

Tobias

1 ACCEPTED SOLUTION

Accepted Solutions
TUmsc.1
Associate II

Thank you for the suppert! I could solve the problem.

The connection from the USB transceiver to USART1 worked. The problem was the BOOT1 pin. After I connected it with GND I could update the software. The reason why the update works on the Nucleo-F429ZI is following: Due to the environment on the board, the pin tended towards GND. On my own PCB the pin tended towards 3V3.

View solution in original post

6 REPLIES 6

Can't some of the bootloaders be activated before the UART bootloader? Is there activity on other bootloader pins (see AN2606)?

JW

Check AN2606, look for other pins which might be transitioning and recognized as contact. ie a GNSS receiver that starts squawking at startup.

It is not looking for the 0x7F data pattern specifically, it is using the pulse to measure a baud rate. Watch USART3

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
TUmsc.1
Associate II

Thank you for the quick response!

Interfaces:

  • The STM32F429 have 4 USARTS:
    • USART1: My MM232R
    • USART2 communicates with a ble module from Silicon Labs (BGM13P), baudrate=115200 (maybe this is the problem? The reset of the STM and the BGM13P are connected. After a reset the BGM13P send something)
    • USART3 is not connected
    • USART6 is not connected
  • CAN2 is not connected
  • I2C1 is not connected
  • A USB cable is not connected too

It's not about the interfaces but about the pins. You can have a signal toggling from outside on e.g. PC11 and that may activate the USART3 bootloader.

Also make sure the connection you have from the USB transceiver to USART1 pins (PA10/PA9) works as expected - try e.g. echo in the application.

JW

TUmsc.1
Associate II

Thank you for the suppert! I could solve the problem.

The connection from the USB transceiver to USART1 worked. The problem was the BOOT1 pin. After I connected it with GND I could update the software. The reason why the update works on the Nucleo-F429ZI is following: Due to the environment on the board, the pin tended towards GND. On my own PCB the pin tended towards 3V3.

Thanks for coming back with the solution.

JW