Thursday, 11 February 2016

stm32 - How to use external ST-Link to debug/program STM32F103 MCU?


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?



Answer



First of all thanks to everyone for their contribution.


After two sleepless nights and struggle, I could find out the issue. The problem was in pin connections in my custom board: I thought that, in my MCU, Pin 9 (VDDA) is short-circuited with PINs 24-36-48, and Pin 8 (VSSA) with PINs 23-35-47, but it's not so.


I needed to give another 3.3V and GND to VDDA and VSSA and st-link started working.


Solution Method: I used Maple Mini schematics to understand the connections of STM32F103. It turned out that, they've short-circuited VDDA with VDD1, VDD2 & VDD3, and VSSA with VSS1, VSS2 and VSS3. I think, I should've understood this from the naming VSSA, as it's not VSS0 or VSS4.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...