ST STM32VL Discovery

Overview

The STM32 Discovery series comes in many varieties, in this case the “Value Line” STM32F100x SoC series is showcased. Like other Discovery board, an integrated ST-LINK debugger and programmer is included (V1), but the only included I/O devices are two user LEDs and one user button.

STM32VLDISCOVERY

More information about the board can be found at the STM32VLDISCOVERY website [1].

Hardware

The STM32 Discovery board features:

  • On-board ST-LINK/V1 with selection mode switch to use the kit as a standalone ST-LINK/V1 (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 the STM32F100x can be found in the STM32F100x reference manual [2] and the STM32F100x data sheet [3].

Supported Features

The Zephyr stm32vl_disco board configuration supports the following hardware features:

Supported hardware

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

WATCHDOG

on-chip

window watchdog

I2C

on-chip

i2c

SPI

on-chip

spi

ADC

on-chip

adc

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

The default configuration can be found in the defconfig file: boards/arm/stm32vl_disco/stm32vl_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:

  • UART_1_TX : PA9

  • UART_1_RX : PA10

  • UART_2_TX : PA2

  • UART_2_RX : PA3

  • UART_3_TX : PB10

  • UART_3_RX : 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

  • I2C1_SCL : PB6

  • I2C1_SDA : PB7

  • I2C2_SCL : PB10

  • I2C2_SDA : PB11

For more details please refer to STM32VLDISCOVERY board User Manual [4].

Programming and Debugging

Applications for the stm32vl_disco board configuration can be built and flashed in the usual way (see Building an Application and Run an Application for more details).

Flashing

STM32VLDISCOVERY board includes an ST-LINK/V1 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 Blinky application.

# From the root of the zephyr repository
west build -b stm32vl_disco samples/basic/blinky
west 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 Blinky application.

# From the root of the zephyr repository
west build -b stm32vl_disco samples/basic/blinky
west debug

USB mass storage issues

The ST-LINK/V1 includes a buggy USB mass storage gadget. To connect to the ST-LINK from Linux, you might need to ignore the device using modprobe configuration parameters:

$ echo "options usb-storage quirks=483:3744:i" | sudo tee /etc/modprobe.d/local.conf
$ sudo modprobe -r usb-storage

References