Showing results for 
Search instead for 
Did you mean: 

STM32F4 USART Bootloader


We have been building boards for years using the STM32F407ZET6. Our system uses a USART bootloader from a host processor running Android that uses stm32ld to do the bootloading. It has worked pretty much flawlessly for years. Recently we started receiving boards that failed after doing the write unprotect. stm32ld waits for 200ms for the system to come back after it executes a system reset before sending the 7F to put it back in bootload mode. This has not been a problem until now. Apparently it is now taking longer than it used to. We have only noticed this on processors with Revision Y in the marking with "226" date codes. We removed the processor and put an older one on in its place and it worked fine so it's definitely the processor.

1) What is the maximum amount of time that the system reset should take after doing a write unprotect with an internally generated system reset? I can modify stm32ld to change the wait time. 800ms looks like it works, but that was just a guess. I'd rather put a number in that is based on fact :). And yes I see Section 74.1 in AN2606 but that does not seem to answer my question.

2) Has anybody else seen anything like this?

3) Is there documentation (other than the useless errata sheet) on the differences in the "Revisions"? I don't know if this is tied to a revision or a date code yet.

4) I see that I could determine the bootloader version by reading 0x1FFF77DE. I sent a screenshot of what I read out and my FAE claimed it was v9.1 although stm32ld reports it is v3.1 and when I read it I agree with stm32ld. Interestingly in a memory location slightly lower than that (0x1FFF77C0) that has programmed in either "beta1" or "Final". Is there any documentation of these memory locations and what exactly that means?


I think we have the same issue here with an STM32F405ZG. Our current programming flow is

  • Disable the write protection
  • Erase specified pages
  • Program /verify the FLASH
  • Set Write protection for specified pages

The newer bootloader seams to not accept the disable write protection, but disables the write protection implicitly when the sections are erased.

Does anybody have more information about the subject?