STM32 Minimum Development Board

Overview

The STM32 Minimum Development Board, is a popular and inexpensive breadboard-friendly breakout board for the STM32F103x8 CPU. Zephyr applications use the stm32_min_dev board configuration to run on these boards.

STM32 Minimum Development Board

STM32 Minimum Development Board

As the name suggests, these boards have the bare minimum components required to power on the CPU. For practical use, you’ll need to add additional components and circuits using a breadboard, for example.

Pin Mapping

This port is a starting point for your own customizations and not a complete port for a specific board. Most of the GPIOs on the STM32 SoC has been exposed in the external header with silk screen labels that match the SoC’s pin names.

Each board vendor has their own variations in pin mapping on their boards’ external connectors and placement of components. Many vendors use port PB12 for connecting an LED, so only this device is supported by our Zephyr port. Additional device support is left for the user to implement.

More information on hooking up peripherals and lengthy how to articles can be found at EmbedJournal.

STLinkV2 connection:

The board can be flashed by using STLinkV2 with the following connections.

Pin STLINKv2
G GND
CLK Clock
IO SW IO
V3 VCC

Boot Configuration

The boot configuration for this board is configured through jumpers on B0 (Boot 0) and B1 (Boot 1). The pins B0 and B1 are present in between logic 0 and 1 lines. The silk screen on the PCB reads BX- or BX+ to indicate 0 and 1 logic lines for B0 and B1 respectively.

Boot 1 Boot 0 Boot Mode Aliasing
X 0 Main Flash Memory Main flash memory is selected as boot space
0 1 System Memory System memory is selected as boot space
1 1 Embedded SRAM Embedded SRAM is selected as boot space

Supported Features

The on-board 8Mhz crystal is used to produce a 72Mhz system clock with PLL. The stm32_min_dev board configuration supports the following hardware features:

Interface Controller Driver/Component
NVIC on-chip nested vectored interrupt controller
SYSTICK on-chip system clock
UART on-chip serial port
GPIO on-chip gpio
I2C on-chip i2c
PWM on-chip pwm

Other hardware features are not supported by the Zephyr kernel.

Programming and Debugging

Applications for the stm32_min_dev board configuration can be built and flashed in the usual way (see Build an Application and Run an Application for more details).

Flashing

Here is an example for the Blinky Application application.

# On Linux/macOS
cd $ZEPHYR_BASE/samples/basic/blinky
mkdir build && cd build

# On Windows
cd %ZEPHYR_BASE%\samples\basic\blinky
mkdir build & cd build


# Use cmake to configure a Ninja-based build system:
cmake -GNinja -DBOARD=stm32_min_dev ..

# Now run ninja on the generated build system:
ninja
ninja flash

Debugging

You can debug an application in the usual way. Here is an example for the Hello World application.

# On Linux/macOS
cd $ZEPHYR_BASE/samples/hello_world
# If you already made a build directory (build) and ran cmake, just 'cd build' instead.
mkdir build && cd build

# On Windows
cd %ZEPHYR_BASE%\samples\hello_world
# If you already made a build directory (build) and ran cmake, just 'cd build' instead.
mkdir build & cd build

# If you already made a build directory (build) and ran cmake, just 'cd build' instead.

# Use cmake to configure a Ninja-based build system:
cmake -GNinja -DBOARD=stm32_min_dev ..

# Now run ninja on the generated build system:
ninja debug