258 lines
9.9 KiB
ReStructuredText
258 lines
9.9 KiB
ReStructuredText
.. _olimex_stm32_h103:
|
|
|
|
OLIMEX-STM32-H103
|
|
#################
|
|
|
|
Overview
|
|
********
|
|
|
|
The OLIMEX-STM32-H103 is a simple development board based on the
|
|
STMicroelectronics STM32F103RBT6 ARM Cortex-M3 CPU, with all the MCU pins
|
|
populated and accessible through two male 26-pin connectors.
|
|
|
|
.. figure:: img/olimex_stm32_h103_top.jpg
|
|
:align: center
|
|
:alt: OLIMEX-STM32-H103 top
|
|
|
|
.. figure:: img/olimex_stm32_h103_bottom.jpg
|
|
:align: center
|
|
:alt: OLIMEX-STM32-H103 bottom
|
|
|
|
OLIMEX-STM32-H103
|
|
|
|
Hardware
|
|
********
|
|
|
|
Information about the board can be found at the
|
|
`OLIMEX-STM32-H103 website`_ and `OLIMEX-STM32-H103 user manual`_.
|
|
The `OLIMEX-STM32-H103 schematic`_ is also available.
|
|
|
|
The `ST STM32F103RB Datasheet`_ contains the processor's
|
|
information and the datasheet.
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The OLIMEX STM32-H103 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 |
|
|
+-----------+------------+----------------------+
|
|
| USB | on-chip | USB device |
|
|
+-----------+------------+----------------------+
|
|
| ADC | on-chip | adc |
|
|
+-----------+------------+----------------------+
|
|
|
|
Other hardware features have not been enabled yet for this board.
|
|
|
|
Connections and IOs
|
|
===================
|
|
|
|
Default Zephyr Peripheral Mapping:
|
|
----------------------------------
|
|
|
|
- UART_1 TX/RX: PA9/PA10
|
|
- UART_2 TX/RX: PA2/PA3
|
|
- UART_3 TX/RX: PC10/PC11 (not enabled)
|
|
- I2C_1 SCL/SDA : PB6/PB7
|
|
- I2C_2 SCL/SDA : PB10/PB11
|
|
- PWM_1_CH1: PA8
|
|
- SPI_1 NSS_OE/SCK/MISO/MOSI: PA4/PA5/PA6/PA7
|
|
- SPI_2 NSS_OE/SCK/MISO/MOSI: PB12/PB13/PB14/PB15
|
|
- USB_DC DM/DP/DISC/PWR: PA11/PA12/PC11/PC4 (not enabled)
|
|
- ADC_1: PA1
|
|
|
|
System Clock
|
|
------------
|
|
|
|
The on-board 8 MHz crystal is used to produce a 72 MHz system clock with PLL.
|
|
|
|
Serial Port
|
|
-----------
|
|
|
|
The board has 3 U(S)ARTs, UART1 and UART2 are enabled by default, with UART2
|
|
used as Zephyr's console. Default settings are 115200 8N1.
|
|
|
|
On-Board LEDs
|
|
-------------
|
|
|
|
The board has one on-board green LED that is connected to PC12, which
|
|
is active low.
|
|
|
|
There is also a red power LED neither connected nor controlled by the MCU.
|
|
|
|
On-Board Button
|
|
---------------
|
|
|
|
The board has one user button connected to PA0.
|
|
|
|
USB
|
|
---
|
|
|
|
USB is not enabled by default, however PC4 is configured by default as an ADC
|
|
input to sense the USB voltage (see schematic). It is possible to disconnect
|
|
it by desoldering the appropriate pad in the PCB.
|
|
|
|
The board uses PC11 to disconnect the pull-up resistor on the USB-DP line.
|
|
|
|
External Connectors
|
|
-------------------
|
|
|
|
JTAG/SWD debug
|
|
|
|
+-------+----------------------+-------+--------------+
|
|
| PIN # | Signal Name | PIN # | Signal Name |
|
|
+=======+======================+=======+==============+
|
|
| 1 | +3.3V | 2 | TVCC 3.3V |
|
|
+-------+----------------------+-------+--------------+
|
|
| 3 | PB4 / TRST | 4 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 5 | PA15 / TDI | 6 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 7 | PA13 / TMS / SWDIO | 8 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 9 | PA14 / TCK / SWCLK | 10 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 11 | NC | 12 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 13 | PB3 / TDO | 14 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 15 | RST | 16 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 17 | NC | 18 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
| 19 | NC | 20 | GND |
|
|
+-------+----------------------+-------+--------------+
|
|
|
|
EXTENSION 1
|
|
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| PIN # | Name / STM32F103 Port | PIN # | Name / STM32F103 Port |
|
|
+=======+=======================+=======+=======================+
|
|
| 1 | PA11 / USB_DM | 2 | PA8 / **PWM_1_CH1** |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 3 | PA12 / USB_DP | 4 | PA9 / **UART1_TX** |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 5 | +3.3V | 6 | GND |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 7 | PA10 / **UART1_RX** | 8 | PC10 |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 9 | PC11 / **USB_DISC** | 10 | PC12 / **LED** |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 11 | PD2 | 12 | PB5/I2C1_SMBA |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 13 | PB6 / **I2C1_SCL** | 14 | PA6 / **SPI1_MISO** |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 15 | PB7 / **I2C1_SDA** | 16 | PB8 |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 17 | PB9 | 18 | PA5 / **SPI1_SCK** |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 19 | PC0 | 20 | PC1 |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 21 | PB0 | 22 | PA7 / **SPI1_MOSI** |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 23 | VBAT | 24 | PC13 |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
| 25 | RST | 26 | PB1 |
|
|
+-------+-----------------------+-------+-----------------------+
|
|
|
|
EXTENSION 2
|
|
|
|
+-------+------------------------+-------+-----------------------+
|
|
| PIN # | Name / STM32F103 Port | PIN # | Name / STM32F103 Port |
|
|
+=======+========================+=======+=======================+
|
|
| 1 | VDDA | 2 | PC2 |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 3 | GNDA | 4 | PA0 / **BUTTON** |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 5 | +3.3V | 6 | GND |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 7 | PA2 / **USART2_TX** | 8 | PA1 / **ADC_1** |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 9 | PC3 | 10 | PA3 / **USART2_RX** |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 11 | PA4 / **SPI1_NSS** | 12 | PC4 / **USB-P** |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 13 | PC5 | 14 | PB10 / **I2C2_SCL** |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 15 | P11 / **I2C2_SDA** | 16 | PB13 / **SPI2_SCK** |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 17 | PB12 / **SPI2_NSS** | 18 | PB14 / **SPI2_MISO** |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 19 | PB15 / **SPI2_MOSI** | 20 | PC6 |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 21 | PC7 | 22 | PC8 |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 23 | +5V USB | 24 | PC9 |
|
|
+-------+------------------------+-------+-----------------------+
|
|
| 25 | GND | 26 | VIN |
|
|
+-------+------------------------+-------+-----------------------+
|
|
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
|
|
This board does not include any embedded debug tool interface, instead you
|
|
will have to use an external probe connected to the available 20-pin JTAG
|
|
connector to program and debug the board. Both JTAG and SWD are supported.
|
|
|
|
By default when using ``west debug`` ST-Link will be used with OpenOCD's
|
|
SWD transport, but it is also possible to use JTAG with the Olimex ARM-USB-OCD-H
|
|
probe, for instance. For the latter, you should replace the file ``openocd.cfg``
|
|
by ``openocd_olimex_jtag.cfg``, located in the board's support directory.
|
|
|
|
Flashing
|
|
========
|
|
|
|
Here is an example for the :ref:`button-sample` application.
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/basic/button
|
|
:board: olimex_stm32_h103
|
|
: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: olimex_stm32_h103
|
|
:maybe-skip-config:
|
|
:goals: debug
|
|
|
|
References
|
|
**********
|
|
|
|
.. _OLIMEX-STM32-H103 website:
|
|
https://www.olimex.com/Products/ARM/ST/STM32-H103/
|
|
|
|
.. _OLIMEX-STM32-H103 user manual:
|
|
https://www.olimex.com/Products/ARM/ST/STM32-H103/resources/STM32-H103.pdf
|
|
|
|
.. _OLIMEX-STM32-H103 schematic:
|
|
https://www.olimex.com/Products/ARM/ST/STM32-H405/resources/STM32-H405_sch.pdf
|
|
|
|
.. _ST STM32F103RB Datasheet:
|
|
https://www.st.com/resource/en/datasheet/stm32f103rb.pdf
|
|
|
|
.. _STM32f103RB:
|
|
https://www.st.com/en/microcontrollers-microprocessors/stm32f103rb.html
|