blob: 30911141f932105efd550d694bb12519a810deed [file] [log] [blame]
.. _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