# STM32103xx minimum programming interface?

**URL:** <https://community.sparkfun.com/t/stm32103xx-minimum-programming-interface/18665>\
**Category:** MicroMod\
**Tags:** arm-lpc\
**Created:** [December 23, 2010, 10:12am UTC](https://community.sparkfun.com/t/stm32103xx-minimum-programming-interface/18665 "2010-12-23T10:12:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Daniel\_Wee](https://avatars.discourse-cdn.com/v4/letter/d/7ea924/32.png) [@Daniel\_Wee](https://community.sparkfun.com/u/Daniel_Wee)\
**Post date:** [December 23, 2010, 10:12am UTC](https://community.sparkfun.com/t/stm32103xx-minimum-programming-interface/18665/1 "2010-12-23T10:12:41Z")

</div>

I have some questions concerning the programming interface for the STM32 MCU. Putting aside the serial bootloader - am I correct to say that the absolute minimum programming (not debugging) requirement would be:-

SWDIO

SWCLK

GND

VDD

with NRST as an option. Is this a correct assumption? All the documentation I could find regarding this mention this as a debugging option and do not explicitly mention that this is sufficient for programming.

Further to this, I would just make an adapter to connect the J-Link’s 20-pin JTAG header to connect these pins to program it in this reduced mode? Is there a schematic of the adapter, assuming that some other connections need to be made such as grounding some of the JTAG pins and so on?

My objective here is to have a minimum pin-count interface (excluding a serial bootloader) and using a J-Link JTAG to do the job (thus requiring an adapter.)

Any help in this is much appreciated.

Daniel

---

<div class="post-metadata">

**Author:** ![TheDirty](https://avatars.discourse-cdn.com/v4/letter/t/a88e4f/32.png) [@TheDirty](https://community.sparkfun.com/u/TheDirty)\
**Post date:** [December 26, 2010, 2:28am UTC](https://community.sparkfun.com/t/stm32103xx-minimum-programming-interface/18665/2 "2010-12-26T02:28:24Z")

</div>

Speaking only with experience with the LPC1xxxx SWD programming, reset is not an option. 3.3V is sometimes an option depending on your programmer, but generally you need 5 pins. 3.3V, GND, SWDIO, SWCLK, and RESET.

Search SWD connector for the standard 10 pin 1.27mm SWD connector. I’ve tried using a 5 pin inline connector and for some reason it’s not working for me, but if I green wire in the 10pin connector it works. I haven’t figured out why, yet.

---

<div class="post-metadata">

**Author:** ![Daniel\_Wee](https://avatars.discourse-cdn.com/v4/letter/d/7ea924/32.png) [@Daniel\_Wee](https://community.sparkfun.com/u/Daniel_Wee)\
**Post date:** [December 26, 2010, 2:35pm UTC](https://community.sparkfun.com/t/stm32103xx-minimum-programming-interface/18665/3 "2010-12-26T14:35:07Z")

</div>

Thanks! At least I know I’m somewhat on the right track. I’ll try to figure out if 5-pins is enough.

Daniel

---

<div class="post-metadata">

**Author:** ![TheDirty](https://avatars.discourse-cdn.com/v4/letter/t/a88e4f/32.png) [@TheDirty](https://community.sparkfun.com/u/TheDirty)\
**Post date:** [December 27, 2010, 2:20am UTC](https://community.sparkfun.com/t/stm32103xx-minimum-programming-interface/18665/4 "2010-12-27T02:20:36Z")

</div>

Well, I only use 5 wires, but with the 10pin connector it always works for me, but they are pretty expensive. A 5 pin 0.1" header takes about the same space, but is cheaper. I only tried the 5 pin connector on one board, but I could not get it working for some reason. It must be something I’m doing, but I checked over the wiring over and over and couldn’t figure it out. If I just soldered wires onto the same board directly to a 10pin connector it worked fine.

Again, this is with the LPC1xxx’s.

---

<div class="post-metadata">

**Author:** ![rmteo1](https://avatars.discourse-cdn.com/v4/letter/r/f17d59/32.png) [@rmteo1](https://community.sparkfun.com/u/rmteo1)\
**Post date:** [January 10, 2011, 5:09pm UTC](https://community.sparkfun.com/t/stm32103xx-minimum-programming-interface/18665/5 "2011-01-10T17:09:04Z")

</div>

You need just 4 connections to program and/or debug.
