Skip to main content
Graduate II
May 16, 2023
Solved

STM32F401 does not seem to boot on custom PCB!

  • May 16, 2023
  • 14 replies
  • 10107 views

Hello everyone, I am new to this community and I am starting to use the STM32F401 from the Nucleo platform. Thank you in advance for your indulgence and your help.  

So I programmed a test code on nucleo which works well. For my final project, I need to integrate only the microprocessor, so I cut the V-Link card of the nucleo and used the DFU Mode to program the chip via USB. Everything works fine, I added a "BOOT" button that allows me to pull pin 60 (BOOT) to 3.3V and I can program the STM via STM32CubeProgrammer.

In a second step, I created a test board following the Nucleo schematic indicated in the manual. I just wanted to reproduce the same assembly as on the Nucleo board but with my PCB.

The PCB was assembled by the PCB manufacturer with a Pick & Place.

When I turn on my custom board, I have all the power supply pins receiving 3.3V, I put all the decoupling capacitor as shown on the diagram, check all the connections to the tester, but despite that, the chip does not seem to start. Impossible to start in DFU mode to load the 1st program.

I attach a schematic of my assembly and a picture of the PCB.

I have spent hours reading and searching the various forums but I have not found why my MCU does not boot!

Any help will be welcome, thanks in advance for your answers.

Sincerely

Antoine


_legacyfs_online_stmicro_images_0693W00000bkAXAQA2.png
_legacyfs_online_stmicro_images_0693W00000bkASFQA2.png

    This topic has been closed for replies.
    Best answer by AD_716

    Hello everyone,

    I'm coming back to you regarding my BootLoader problem which in fact was not solved!

    Indeed after thinking that the error comes from a soldering defect, I realized that the DFU mode only start when the MCU was "bathed" in the Flux cleaner (Product to clean the soldering). After 2 days of headache to check everything, re-soldered, tested, change the quartz, the capacitor .... In short still nothing, the MCU in bootloader mode does not work if the condition of being bathed in this liquid.... 

    A friend then made me notice that the product in question must be conductive...

    After the product, it was my fingers that in contact with some pin allow me to start in DFU mode... So we searched on a capacitive problem, design defect, ground plan.... Nothing yet!

    From there we went back to the Notice and my friend found in the DOC RM0368 that BOOT 1 should be connected to ground! The PB2(28) pin is in fact the BOOT 1 pin that should be connected to ground... so the product made contact.

    After checking, on nucleo this pin is not connected to anything... no pulldown, no strap... but still the MCU starts in Bootloader Mode on nucleo. It is apparently an error on the development board and it works by chance... If someone has an explanation? I'm interested!

    Conclusion, I followed the official scheme and there was a connection missing!

    Everything is working fine for the moment, it seems I connected PB2 to GND!

    I hope this post can help others!

    A huge thank you for your answers and your help,

    See you soon

    14 replies

    AD_716AuthorAnswer
    Graduate II
    May 19, 2023

    Hello everyone,

    I'm coming back to you regarding my BootLoader problem which in fact was not solved!

    Indeed after thinking that the error comes from a soldering defect, I realized that the DFU mode only start when the MCU was "bathed" in the Flux cleaner (Product to clean the soldering). After 2 days of headache to check everything, re-soldered, tested, change the quartz, the capacitor .... In short still nothing, the MCU in bootloader mode does not work if the condition of being bathed in this liquid.... 

    A friend then made me notice that the product in question must be conductive...

    After the product, it was my fingers that in contact with some pin allow me to start in DFU mode... So we searched on a capacitive problem, design defect, ground plan.... Nothing yet!

    From there we went back to the Notice and my friend found in the DOC RM0368 that BOOT 1 should be connected to ground! The PB2(28) pin is in fact the BOOT 1 pin that should be connected to ground... so the product made contact.

    After checking, on nucleo this pin is not connected to anything... no pulldown, no strap... but still the MCU starts in Bootloader Mode on nucleo. It is apparently an error on the development board and it works by chance... If someone has an explanation? I'm interested!

    Conclusion, I followed the official scheme and there was a connection missing!

    Everything is working fine for the moment, it seems I connected PB2 to GND!

    I hope this post can help others!

    A huge thank you for your answers and your help,

    See you soon

    Graduate II
    May 19, 2023

    Hello Antonie. Good that you finally found the root cause. Since most IO pins (including PB2) are floating during/after reset,even longer trace capacitance or leakage current on the Nucleo board can keep the level enough low so it boots in system memory boot space. I would not call it an error since Nucleo is not specified to demostrate USB DFU usage, it is just a general purpose development board.

    Note also that it is enough to have pull down resistor on Boot1, and it can be still used as GPIO pin after reset. Boot pins are sampled in 4th Sysclk rising edge after reset.

    Generally speaking, both of these boot pins could have weak internal pulldown, maybe so that it activates only short perioid of time after reset. That would save peoples lots of confusion :grinning_face_with_sweat:

    Super User
    May 19, 2023

    Thanks for coming back with the solution.

    This is a tricky issue indeed. I've posted an Idea to enhance the Nucleo boards. ST will ignore it as it does with most other Ideas, but it would be nice if we could upvote it beyond the 10-vote boundary.

    JW

    Visitor II
    May 19, 2023

    Hey Jan, do you have a list of posted suggestions for the STM32 dev boards (Nucleo and else)?

    I'd like to review them and I'll manage to get them reviewed by ST folks.

    Thanks!