Computing stuff tied to the physical world

From eBay “C8” µC to BMP tool

Next in line in the “let’s create an ARM programming tool” series is this little board:

DSC 5258

It’s basically a breakout for the “STM32F103C8T6” chip (yes, it does take getting used to). That’s 64 KB of flash and 20 KB of RAM memory – (just) enough to run the BMP software.

Here’s a little PCB for it (also off to a prototype run at the time of this writing):

Screen Shot 2015 11 18 at 00 01 41

This board goes on top. There are two header options in this case:

  • on the left is a standard 2×10-in JTAG header (note: it points down, not up)
  • next to it is the same 8-pin header as on the Nucleo’s ST-Link breakout

The 2×10 JTAG header is an old standard. If your target board also has one, all you’ll need is a 20-core flat-cable with the proper headers on them. Or else a couple of jumper wires.

Again, the second header was made so its inner pins (2..7) match the HY-TinySTM103T – but in the same way as before, the solder jumper traces can be cut to change this pinout.

Some small but significant differences (in bold) w.r.t. the ST-Link add-on shown before:

  1. +5V (power feed, directly from USB)
  2. GND
  3. SWCLK
  4. SWDIO
  5. TX (to be connected to target RX)
  6. RX (to be connected to target TX)
  7. 3.3V (power feed, not an input)
  8. N/C (could be tied to an output pin, as NRST)

This is not a probing setup, it will actually supply a little power to the attached target board (100..200 mA, definitely not more). If you don’t want this, you can cut the jumpers.

The JTAG header only has GND, 5V (power feed), and SWCLK/SWDIO connected. This may not be quite right for all scenarios. The main idea here was to make this usable as SWD programmer – in time, a revision may be able to address more use cases.

Also, maybe this “power feeding” approach is a bad idea. It avoids the issue of having to hook up a second cable to power the target board, but then again this will be needed anyway if the power consumption is too high. As a probe, there would be no confusion.

But here’s the catch: we’re back in that nasty chicken-and-egg problem with this board. How do we get that BMP firmware onto it? How does one program the programmer?

See this article for possible solutions, assuming you don’t have a 2nd SWD programmer…