.. _stm32l1_disco_board:

ST STM32L1 Discovery
####################

Overview
********

The two generations of the STM32L1 Discovery development boards come with
an integrated ST-LINK/V2 debugger and programmer.  The boards have a
24-segment LCD and a touch slider, along with two user LEDs and a user button.
Support circuitry for measuring power consumption is also available.
It also comes with a comprehensive STM32 software HAL library and various
packaged software examples.

There
are two variants of the board:

- STM32LDISCOVERY targets STM32L152RBT6, with 128K flash, 16K RAM, 4K EEPROM
- STM32L152CDISCOVERY targets STM32L152RCT6, with 256K flash, 32K RAM, 8K EEPROM

The STM32LDISCOVERY is no longer sold, but was widely available.
stm32l1_disco configuration enables support for STM32LDISCOVERY board and
stm32l152c_disco configuration enables support for STM32L152CDISCOVERY board.


.. image:: img/stm32l1_disco.jpg
     :align: center
     :alt: STM32LDISCOVERY

More information about the board can be found at the `STM32LDISCOVERY website`_.

Hardware
********

The STM32 Discovery board features:

- On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone
  ST-LINK/V2 (with SWD connector for programming and debugging)
- Board power supply: through USB bus or from an external 5 V supply voltage
- External application power supply: 3 V and 5 V
- Four LEDs:

    - LD1 (red) for 3.3 V power on
    - LD2 (red/green) for USB communication
    - LD3 (green) for PC9 output
    - LD4 (blue) for PC8 output
- Two push buttons (user and reset)
- Extension header for all LQFP64 I/Os for quick connection to prototyping board
  and easy probing

More information about STM32L151x can be found in the `STM32L1x reference manual`_.

Supported Features
==================

The Zephyr stm32l1_disco and stm32l152c_disco board configurations support
the following hardware features:

.. list-table:: Supported hardware
   :header-rows: 1

   * - Interface
     - Controller
     - Driver/component
   * - NVIC
     - on-chip
     - nested vector interrupt controller
   * - UART
     - on-chip
     - serial port-polling
       serial port-interrupt
   * - PINMUX
     - on-chip
     - pinmux
   * - GPIO
     - on-chip
     - gpio
   * - CLOCK
     - on-chip
     - reset and clock control
   * - FLASH
     - on-chip
     - flash memory
   * - EEPROM
     - on-chip
     - eeprom
   * - WATCHDOG
     - on-chip
     - window watchdog
   * - I2C
     - on-chip
     - i2c
   * - SPI
     - on-chip
     - spi

Other hardware features are not yet supported in this Zephyr port.

The configuration of stm32l1_disco can be found in
:zephyr_file:`boards/st/stm32l1_disco/stm32l1_disco_defconfig`

Configuration of stm32l152c_disco can be found in
:zephyr_file:`boards/st/stm32l1_disco/stm32l152c_disco_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:
----------------------------------

.. rst-class:: rst-columns

- UART_1_TX : PA9
- UART_1_RX : PA10
- UART_2_TX : PA2
- UART_2_RX : PA3
- I2C1_SCL : PB6
- I2C1_SDA : PB7
- I2C2_SCL : PB10
- I2C2_SDA : PB11
- SPI1_NSS : PA4
- SPI1_SCK : PA5
- SPI1_MISO : PA6
- SPI1_MOSI : PA7
- SPI2_NSS : PB12
- SPI2_SCK : PB13
- SPI2_MISO : PB14
- SPI2_MOSI : PB15

For more details please refer to `STM32L1DISCOVERY board User Manual`_.

Programming and Debugging
*************************

Applications for the ``stm32l1_disco`` board configuration can be built and
flashed in the usual way (see :ref:`build_an_application` and
:ref:`application_run` for more details).

Flashing
========

STM32L1DISCOVERY and STM32L152CDISCOVERY boards include an ST-LINK/V2 embedded
debug tool interface. This interface is supported by the openocd version
included in the Zephyr SDK.

Flashing an application
-----------------------

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

.. zephyr-app-commands::
   :zephyr-app: samples/basic/blinky
   :board: stm32l1_disco
   :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
:zephyr:code-sample:`blinky` application.

.. zephyr-app-commands::
   :zephyr-app: samples/basic/blinky
   :board: stm32l1_disco
   :maybe-skip-config:
   :goals: debug

References
**********

.. target-notes::

.. _STM32LDISCOVERY website:
   https://www.st.com/en/evaluation-tools/32l152cdiscovery.html

.. _STM32L1x reference manual:
   https://www.st.com/resource/en/reference_manual/cd00240193.pdf

.. _STM32L1DISCOVERY board User Manual:
   https://www.st.com/resource/en/user_manual/dm00027954.pdf

.. _STM32L152CDISCOVERY board User Manual:
   https://www.st.com/resource/en/user_manual/um1079-discovery-kit-with-stm32l152rc-mcu-stmicroelectronics.pdf
