STM32 Minimum Development Board¶
The STM32 Minimum Development Board, is a popular and inexpensive breadboard-friendly breakout board for the STM32F103x8 CPU. There are two variants of the board:
Zephyr applications can use the stm32_min_dev_blue or stm32_min_dev_black board configuration to use these boards.
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.
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 PC13/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.
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|
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:
|NVIC||on-chip||nested vectored interrupt controller|
Other hardware features are not supported by the Zephyr kernel.
The STM32 Minimum Development Board board supports two I2C devices. The default I2C mapping for Zephyr is:
- I2C1_SCL : PB6
- I2C1_SDA : PB7
- I2C2_SCL : PB10
- I2C2_SDA : PB11
Programming and Debugging¶
Here is an example for the Blinky Application application.
# From the root of the zephyr repository west build -b stm32_min_dev_blue samples/basic/blinky west flash
Using CMake and ninja:
# From the root of the zephyr repository # Use cmake to configure a Ninja-based buildsystem: cmake -B build -GNinja -DBOARD=stm32_min_dev_blue samples/basic/blinky # Now run ninja on the generated build system: ninja -C build ninja -C build flash
You can debug an application in the usual way. Here is an example for the Hello World application.
# From the root of the zephyr repository west debug
Using CMake and ninja:
# From the root of the zephyr repository # If you already ran cmake with -Bbuild, you can skip this step and run ninja directly. cmake -B build -GNinja -DBOARD=stm32_min_dev_blue samples/hello_world # Now run ninja on the generated build system: ninja -C build debug