2023-09-11 07:16 AM - last edited on 2023-09-12 02:28 AM by Amel NASRI
I've been using bootloader over USART3 PB10/PB11 at an STM32F446ZET6 for long time and it works reliably at least at 115200kbit.
This year we assembled several new PCB's without HW change and the bootloader stopped working. When programming the STM32 via SWD interface everything seems to work normally - also USART3 communication works fine.
ONLY the bootloader does not answer on char 0x7F
Description: I'm trying to enter the bootloader by hand
- BOOT0pin=high,
- toggle reset of the STM32
- send 0x7F using Hterm terminal in hex mode
Expected result is char 0x79 (or any error byte). But I get no any byte on the fresh controllers. Same test works well on the controllers from last years.
Additional information:
- both, new and old controller initialize USB as DFU interface (so they are not empty, some bootcode must be running)
- old controller bootloader version read out: 3.1
For me it looks like the STM factory boot code has changed since last year. Can you confirm this?
Regards Marten
2023-09-11 07:33 AM
> For me it looks like the STM factory boot code has changed since last year. Can you confirm this?
Unlikely. Easy enough to check with STM32CubeProgrammer since you can connect over USB:
After you verify it's the same, look at other issues.
2023-09-11 09:44 AM
Besides what TDK said above (i.e. check if all pins are properly connected, including all VSS/VDD and PB10/PB11), check also the option bytes, and also make sure that there's no activity on other bootloader-interfaces' pins.
Note, that if you have SWD connection, you can use the debugger to check if the bootloader is entered.
JW
2023-09-12 02:12 AM
The other bootloader-interfaces' pins is probably the reason here. One out of 30 trials with different application states and slow baud rate (115.2k) I indeed get occasional USART3 bootloader access. Thanks.