Hello,
I’m having trouble flashing an STM32F401RE via its UART bootloader using an ESP32. The ESP32 is intended to control BOOT0/NRST and communicate via UART.
The issue is that the ESP32 sends the init command 0x7F, but the STM32 never responds with the 0x79 ACK. I consistently get a timeout.
My setup:
-
ESP32 GPIO5 → STM32 BOOT0
-
ESP32 GPIO19 → STM32 NRST
-
ESP32 TX2 (GPIO17) → STM32 UART_RX ([STM32 Pin, e.g., PA10])
-
ESP32 RX2 (GPIO16) → STM32 UART_TX ([STM32 Pin, e.g., PA9])
-
Common GND between ESP32 and STM32.
-
STM32 BOOT1 is connected to GND.
Do you have any ideas what might be causing this persistent synchronization failure between the ESP32 and the STM32 bootloader? Are there any specific considerations for the ESP32-STM32 interface (logic levels, impedance, etc.)?