.. _stm32_min_dev:

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.

.. figure:: img/stm32_min_dev.jpg
     :width: 500px
     :align: center
     :height: 350px
     :alt: 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 PC13 for
connecting an LED, so only this device is supported by our Zephyr port.
Additional device support is left for the user to implement.

.. note::
   Change the LED pin to PB12 in :zephyr_file:`boards/arm/stm32_min_dev/stm32_min_dev.dts`
   if you have the `Black Pill Board`_. This can be done by replacing
   ``gpios = <&gpioc 13 GPIO_INT_ACTIVE_HIGH>;`` with ``gpios = <&gpiob 12 GPIO_INT_ACTIVE_HIGH>;``
   in the dts file.


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                  |
+-----------+------------+----------------------+
| SPI       | on-chip    | spi                  |
+-----------+------------+----------------------+

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 :ref:`build_an_application` and
:ref:`application_run` for more details).

Flashing
========

Here is an example for the :ref:`blinky-sample` application.

.. zephyr-app-commands::
   :zephyr-app: samples/basic/blinky
   :board: stm32_min_dev
   :goals: build flash

Debugging
=========

You can debug an application in the usual way.  Here is an example for the
:ref:`hello_world` application.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: stm32_min_dev
   :maybe-skip-config:
   :goals: debug

.. _STM32F103x8:
        http://www.st.com/resource/en/datasheet/stm32f103c8.pdf
.. _Black Pill Board:
        https://wiki.stm32duino.com/index.php?title=Black_Pill
.. _EmbedJournal:
        https://embedjournal.com/tag/stm32-min-dev/
