Electronic – How to use external ST-Link to debug/program STM32F103 MCU

st-linkstm32stm32f10xswd

I'm using STM32F103 MCU for my own project and want to use the ST-Link of STM32F411 Nucleo board for external debugging / programming purposes.

I've set the CN2 jumpers OFF and my actual question is in the pinouts of SWO (CN2). How I proceed on this is as follows:

  • PIN 1 (of SWO) is VDD_Target
  • PIN 2 is SWCLK
  • PIN 3 is GND
  • PIN 4 is SWDIO
  • PIN 5 is NRST
  • PIN 6 is SWO

To the best of my knowledge, I shouldn't use all these pins above. As in, I've connected

  • PIN 2 to PIN 37 (or PA14) in MCU
  • PIN 3 to GND
  • PIN 4 to PIN 34 (or PA13)
  • PIN 5 to PIN 7 or (RESET) in target MCU.

Not sure if I should connect SWO pin as it's set as "reserved" (Why?). Also I'm giving 3.3 V to VIN pin of MCU, means that I don't need to connect VDD (PIN 1 of stlink).

Please refer to this table I've taken from the official datasheet:

enter image description here
enter image description here

Here's the general pinout configuration of the MCU here:

enter image description here

I've tested "almost" everything with oscilloscope and tester and everything seems okay. What else I'm missing here? Should I do anything with BOOT0 or BOOT1 pins?

Best Answer

First of all, you are right, if your board has already got a supply voltage source you do not have to connect ST-Link's VDD pin.

The second thing I would recommend you is to open the STM32F411 Nucleo board's reference manual and look at the schematics. Especially the part where the ST-Link is connected to the controller on the board.

enter image description here

By ST Microelectronics, SWCLK, SWDIO, NRST and SWO (and GND of course) are connected to the target MCU. The additional SWO pin is used for debug purposes, you can access printed data with the printf function through this pin with ST-Link Utility.

The Printf via SWO Viewer displays the printf data sent from the target through SWO.

So I can recommend you to connect SWO as well, can be useful later. Connect your MCU to ST-Link just like they have connected the Nucleo's MCU to it.

As for boot configurations, there are three selectable options, easiest it to stick with the Main Flash and tie Boot0 to GND, but I do not know your requirements so it is up to you to choose.

enter image description here