.. _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               |
+-----------+------------+-------------------------------------+
| UCPD      | on-chip    + ucpd                                |
+-----------+------------+-------------------------------------+
| ADC       | on-chip    | adc                                 |
+-----------+------------+-------------------------------------+
| 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)
- UCPD2              : PD0/PD2
- BUTTON (JOY_SEL)   : PA0
- BUTTON (JOY_LEFT)  : PC8
- BUTTON (JOY_DOWN)  : PC3
- BUTTON (JOY_RIGHT) : PC7
- BUTTON (JOY_UP)    : PC2
- VBUS DISCHARGE     : PB14
- 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
