boards: arm: add support for STM32G081B Evaluation board
Support the ST STM32G081B Evaluation board with STM32G081RB SoC Tested with: - `samples/basic/blinky` - `samples/basic/button` Flashed samples via On-Board ST-LINK with: - west flash Signed-off-by: Sam Hurst <sbh1187@gmail.com>
This commit is contained in:
parent
f0ef6c6fea
commit
651854a323
8 changed files with 374 additions and 0 deletions
8
boards/arm/stm32g081b_eval/Kconfig.board
Normal file
8
boards/arm/stm32g081b_eval/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
|||
# STM32G081B Evaluation board configuration
|
||||
|
||||
# Copyright 2021 The Chromium OS Authors
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_STM32G081B_EVAL
|
||||
bool "STM32G081B Evaluation Board"
|
||||
depends on SOC_STM32G081XX
|
11
boards/arm/stm32g081b_eval/Kconfig.defconfig
Normal file
11
boards/arm/stm32g081b_eval/Kconfig.defconfig
Normal file
|
@ -0,0 +1,11 @@
|
|||
# STM32G081B evaluation board configuration
|
||||
|
||||
# Copyright 2021 The Chromium OS Authors
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if BOARD_STM32G081B_EVAL
|
||||
|
||||
config BOARD
|
||||
default "stm32g081b_eval"
|
||||
|
||||
endif # BOARD_STM32G081B_EVAL
|
6
boards/arm/stm32g081b_eval/board.cmake
Normal file
6
boards/arm/stm32g081b_eval/board.cmake
Normal file
|
@ -0,0 +1,6 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(stm32cubeprogrammer "--port=swd" "--reset=hw")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake)
|
||||
|
BIN
boards/arm/stm32g081b_eval/doc/img/stm32g081b_eval.jpg
Normal file
BIN
boards/arm/stm32g081b_eval/doc/img/stm32g081b_eval.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 171 KiB |
203
boards/arm/stm32g081b_eval/doc/index.rst
Normal file
203
boards/arm/stm32g081b_eval/doc/index.rst
Normal file
|
@ -0,0 +1,203 @@
|
|||
.. _stm32g081b_eval_board:
|
||||
|
||||
ST STM32G081B Evaluation
|
||||
########################
|
||||
|
||||
Overview
|
||||
********
|
||||
The STM32G081B-EVAL Evaluation board is a high-end development platform, for
|
||||
Arm Cortex-M0+ core-based STM32G081RBT6 microcontroller, with USB Type-C and
|
||||
power delivery controller interfaces (UCPD), compliant with USB type-C r1.2
|
||||
and USB PD specification r3.0, two I2Cs, two SPIs, five USARTs, one LP UART,
|
||||
one 12-bit ADC, two 12-bit DACs, two GP comparators, two LP timers, internal
|
||||
32 KB SRAM and 128 KB Flash, CEC, SWD debugging support. The full range of
|
||||
hardware features on the STM32G081B-EVAL Evaluation board includes a mother
|
||||
board, a legacy peripheral daughterboard and a USB-C and Power Delivery
|
||||
daughterboard, which help to evaluate all peripherals (USB Type-C connector
|
||||
with USB PD, motor control connector, RS232, RS485, Audio DAC, microphone ADC,
|
||||
TFT LCD, IrDA, IR LED, IR receiver, LDR, MicroSD card, CEC on two HDMI
|
||||
connectors, smart card slot, RF E2PROM & Temperature sensor…), and to develop
|
||||
applications.
|
||||
|
||||
The board integrates an ST-LINK/V2-1 as an embedded in-circuit debugger and
|
||||
programmer for the STM32 MCU. The daughterboard and extension connectors
|
||||
provide an easy way to connect a daughterboard or wrapping board for the
|
||||
user's specific applications.
|
||||
|
||||
The USB-C and Power Delivery daughterboard
|
||||
features two independent USB-C ports controlled by an STM32G0. USB-C port 1
|
||||
is dual role power (DRP) and can provide up-to 45 W. USB-C Port 2 is sink
|
||||
only. Both support USB PD protocol and alternate mode functionality.
|
||||
|
||||
Application firmware examples are provided to evaluate the USB-C technology
|
||||
through various use cases.
|
||||
|
||||
|
||||
|
||||
- Mother board
|
||||
- STM32G081RBT6 microcontroller with 128 Kbytes of Flash memory and
|
||||
32 Kbytes of RAM in LQFP64 package
|
||||
- MCU voltage choice fixed 3.3 V or adjustable from 1.65 V to 3.6 V
|
||||
- I2C compatible serial interface
|
||||
- RTC with backup battery
|
||||
- 8-Gbyte or more SPI interface microSD card
|
||||
- Potentiometer
|
||||
- 4 color user LEDs and one LED as MCU low-power alarm
|
||||
- Reset, Tamper and User buttons
|
||||
- 4-direction control and selection joystick
|
||||
- Board connectors:
|
||||
- 5 V power jack
|
||||
- RS-232 and RS485 communications
|
||||
- Stereo audio jack including analog microphone input
|
||||
- microSD card
|
||||
- Extension I2C connector
|
||||
- Motor-control connector
|
||||
- Board extension connectors:
|
||||
- Daughterboard connectors for legacy peripheral daughter board or
|
||||
USB-C daughterboard
|
||||
- Extension connectors for daughterboard or wire-wrap board
|
||||
- Flexible power-supply options:
|
||||
- 5 V power jack
|
||||
- ST-LINK/V2-1 USB connector
|
||||
- Daughterboard
|
||||
- On-board ST-LINK/V2-1 debugger/programmer with USB re-enumeration
|
||||
capability: mass storage, virtual COM port and debug port
|
||||
- Legacy peripheral daughterboard
|
||||
- IrDA transceiver
|
||||
- IR LED and IR receiver
|
||||
- Light dependent resistor (LDR)
|
||||
- Temperature Sensor
|
||||
- Board connectors:
|
||||
- Two HDMI connectors with DDC and CEC
|
||||
- Smart card slot
|
||||
- USB-C and Power Delivery daughterboard
|
||||
- Mux for USB3.1 Gen1 / DisplayPort input and Type-C port1 output
|
||||
- Mux for Type-C port2 input and DisplayPort output / USB2.0
|
||||
- VCONN on Type-C port1
|
||||
- USB PD on Type-C port1
|
||||
- Board connectors:
|
||||
- Type-C port1 DRP (dual-role port)
|
||||
- Type-C port2 Sink
|
||||
- DisplayPort input
|
||||
- DisplayPort output
|
||||
- USB 3.1 Gen1 Type-B receptacle
|
||||
- USB2.0 Type-A receptacle
|
||||
- 19 V power jack for USB PD
|
||||
|
||||
.. image:: img/stm32g081b_eval.jpg
|
||||
:width: 426px
|
||||
:height: 597px
|
||||
:align: center
|
||||
:alt: STM32G081B-EVAL
|
||||
|
||||
More information about the board can be found at the `STM32G081B-EVAL website`_.
|
||||
|
||||
|
||||
More information about STM32G081RB can be found here:
|
||||
- `G081RB on www.st.com`_
|
||||
- `STM32G081 reference manual`_
|
||||
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
The Zephyr stm32g081b_eval board configuration supports the following hardware features:
|
||||
|
||||
+-----------+------------+-------------------------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+=====================================+
|
||||
| NVIC | on-chip | nested vector interrupt controller |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| UART | on-chip | serial port-polling; |
|
||||
| | | serial port-interrupt |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| WATCHDOG | on-chip | independent watchdog |
|
||||
+-----------+------------+-------------------------------------+
|
||||
|
||||
Other hardware features are not yet supported in this Zephyr port.
|
||||
|
||||
The default configuration can be found in the defconfig file:
|
||||
``boards/arm/stm32g081b_eval/stm32g081b_eval_defconfig``
|
||||
|
||||
Connections and IOs
|
||||
===================
|
||||
|
||||
Each of the GPIO pins can be configured by software as output (push-pull or open-drain), as
|
||||
input (with or without pull-up or pull-down), or as peripheral alternate function. Most of the
|
||||
GPIO pins are shared with digital or analog alternate functions. All GPIOs are high current
|
||||
capable except for analog inputs.
|
||||
|
||||
Default Zephyr Peripheral Mapping:
|
||||
----------------------------------
|
||||
|
||||
- UART_3 TX/RX : PC10/PC11 (ST-Link Virtual Port Com)
|
||||
- BUTTON (JOY_SEL) : PA0
|
||||
- BUTTON (JOY_LEFT) : PC8
|
||||
- BUTTON (JOY_DOWN) : PC3
|
||||
- BUTTON (JOY_RIGHT) : PC7
|
||||
- BUTTON (JOY_UP) : PC2
|
||||
- LED1 : PD5
|
||||
- LED2 : PD6
|
||||
- LED3 : PD8
|
||||
- LED4 : PD9
|
||||
|
||||
For mode details please refer to `STM32G0 Evaluation board User Manual`_.
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
Applications for the ``stm32g081b_eval`` board configuration can be built and
|
||||
flashed in the usual way (see :ref:`build_an_application` and
|
||||
:ref:`application_run` for more details).
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
The STM32G081B Evaluation board includes an ST-LINK/V2-1 embedded debug tool interface.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ west flash
|
||||
|
||||
Flashing an application to the STM32G081B_EVAL
|
||||
----------------------------------------------
|
||||
|
||||
Here is an example for the :ref:`blinky-sample` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/basic/blinky
|
||||
:board: stm32g081b_eval
|
||||
:goals: build flash
|
||||
|
||||
You will see the LED blinking every second.
|
||||
|
||||
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: stm32g081b_eval
|
||||
:maybe-skip-config:
|
||||
:goals: debug
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. _STM32G081B-EVAL website:
|
||||
https://www.st.com/en/evaluation-tools/stm32g081b-eval.html
|
||||
|
||||
.. _STM32G081 reference manual:
|
||||
https://www.st.com/resource/en/reference_manual/rm0444-stm32g0x1-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
|
||||
|
||||
.. _STM32G0 Evaluation board User Manual:
|
||||
https://www.st.com/resource/en/user_manual/um2403-evaluation-board-with-stm32g081rb-mcu-stmicroelectronics.pdf
|
||||
|
||||
.. _G081RB on www.st.com:
|
||||
http://www.st.com/en/microcontrollers/stm32g081rb.html
|
109
boards/arm/stm32g081b_eval/stm32g081b_eval.dts
Normal file
109
boards/arm/stm32g081b_eval/stm32g081b_eval.dts
Normal file
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
* Copyright 2021 The Chromium OS Authors
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <st/g0/stm32g081Xb.dtsi>
|
||||
#include <st/g0/stm32g081rbtx-pinctrl.dtsi>
|
||||
|
||||
/ {
|
||||
model = "STM32G081B EVAL board";
|
||||
compatible = "st,stm32g081-eval";
|
||||
|
||||
chosen {
|
||||
zephyr,console = &usart3;
|
||||
zephyr,shell-uart = &usart3;
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
led_1: led1 {
|
||||
gpios = <&gpiod 5 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED1";
|
||||
};
|
||||
led_2: led2 {
|
||||
gpios = <&gpiod 6 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED2";
|
||||
};
|
||||
led_3: led3 {
|
||||
gpios = <&gpiod 8 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED3";
|
||||
};
|
||||
led_4: led4 {
|
||||
gpios = <&gpiod 9 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED4";
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
joy_sel: button0 {
|
||||
label = "JOY_SEL";
|
||||
gpios = <&gpioa 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
|
||||
};
|
||||
joy_left: button1 {
|
||||
label = "JOY_LEFT";
|
||||
gpios = <&gpioc 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
|
||||
};
|
||||
joy_down: button2 {
|
||||
label = "JOY_DOWN";
|
||||
gpios = <&gpioc 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
|
||||
};
|
||||
joy_right: button3 {
|
||||
label = "JOY_RIGHT";
|
||||
gpios = <&gpioc 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
|
||||
};
|
||||
joy_up: button4 {
|
||||
label = "JOY_UP";
|
||||
gpios = <&gpioc 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &led_1;
|
||||
led1 = &led_2;
|
||||
led2 = &led_3;
|
||||
led3 = &led_4;
|
||||
sw0 = &joy_sel;
|
||||
sw1 = &joy_left;
|
||||
sw2 = &joy_down;
|
||||
sw3 = &joy_right;
|
||||
sw4 = &joy_up;
|
||||
};
|
||||
};
|
||||
|
||||
&clk_hsi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pll {
|
||||
div-m = <1>;
|
||||
mul-n = <8>;
|
||||
div-p = <2>;
|
||||
div-q = <2>;
|
||||
div-r = <2>;
|
||||
clocks = <&clk_hsi>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rcc {
|
||||
clocks = <&pll>;
|
||||
clock-frequency = <DT_FREQ_M(64)>;
|
||||
ahb-prescaler = <1>;
|
||||
apb1-prescaler = <1>;
|
||||
};
|
||||
|
||||
&usart3 {
|
||||
pinctrl-0 = <&usart3_tx_pc10 &usart3_rx_pc11>;
|
||||
pinctrl-names = "default";
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iwdg {
|
||||
status = "okay";
|
||||
};
|
14
boards/arm/stm32g081b_eval/stm32g081b_eval.yaml
Normal file
14
boards/arm/stm32g081b_eval/stm32g081b_eval.yaml
Normal file
|
@ -0,0 +1,14 @@
|
|||
identifier: stm32g081b_eval
|
||||
name: ST STM32G081B Evaluation
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
ram: 32
|
||||
flash: 128
|
||||
supported:
|
||||
- uart
|
||||
- gpio
|
||||
- watchdog
|
23
boards/arm/stm32g081b_eval/stm32g081b_eval_defconfig
Normal file
23
boards/arm/stm32g081b_eval/stm32g081b_eval_defconfig
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Copyright 2021 The Chromium OS Authors
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
CONFIG_SOC_SERIES_STM32G0X=y
|
||||
CONFIG_SOC_STM32G081XX=y
|
||||
|
||||
# Serial Drivers
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
|
||||
# enable console
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
# GPIO Controller
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# Enable Clocks
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# enable pin controller
|
||||
CONFIG_PINCTRL=y
|
Loading…
Add table
Add a link
Reference in a new issue