Electronic – ST-Link debugger/programmer failed to find STM32L152 MCU on designed PCB

microcontrollerprogrammingstm32swd

I'm using STM32L152 MCU on my own project. The project was started on a STM32 Discrovery board. Now I would like to have my own board by designing a PCB with the MCU. An external ST-Linkv2 will be used as the debugger/programmer. (Tested works fine with another discorvery board)
A 6-pin SWD connector was designed on board. The pin mapping between ST-Link and MCU is following the user manual.

  • SWD pin1 VDD_TARGET VDD from application;
  • SWD pin2 SWCLK SWD clock;
  • SWD pin3 GND Ground;
  • SWD pin4 SWDIO SWD data input/output;
  • SWD pin5 NRST RESET of target MCU;
  • SWD pin6 SWO Reserved;

After I got my board, I connect the board with the ST-Link. The board is powered up by an external voltage source of 3.3V. However, the ST-Link is not able to find the MCU. My current objective is to let ST-Link program my MCU PCB via SWD. It should not be a complex design then. Attached is my schematic design:
enter image description here

I think the exteral crystal may not necessary now for the design. If there is nothing missing in the schematic, it maybe something wrong with the input voltage. I wired all the Vdd to Vcc. I also read from online, so BOOT0 is wired to ground, and BOOT1 is left no connect.
Is there anything I do missed?

My PCB layout is as following:
enter image description here

Best Answer

Your layout is entirely lacking in decoupling capacitors. The MCU won't run with that layout and the clock probably won't even oscillate.