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.

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 stm32vl_disco board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

stm32vl_disco/stm32f100xb target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M3 CPU1

arm,cortex-m3

ADC

on-chip

STM32F1 ADC1

st,stm32f1-adc

Clock control

on-chip

STM32F1/F3/7x RCC (Reset and Clock controller)1

st,stm32f1-rcc

on-chip

STM32 HSE Clock1

st,stm32-hse-clock

on-chip

Generic fixed-rate clock provider1 2

fixed-clock

on-chip

STM32F100 Main PLL1

st,stm32f100-pll-clock

on-chip

STM32F1 Microcontroller Clock Output (MCO)1

st,stm32f1-clock-mco

Counter

on-chip

STM32 counters3

st,stm32-counter

DAC

on-chip

STM32 family DAC1

st,stm32-dac

DMA

on-chip

STM32 DMA controller (V2bis) for the stm32F0, stm32F1 and stm32L1 soc families1

st,stm32-dma-v2bis

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

GPIO & Headers

on-chip

STM32 GPIO Controller5

st,stm32-gpio

I2C

on-chip

STM32 I2C V1 controller2

st,stm32-i2c-v1

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

on-chip

STM32 External Interrupt Controller1

st,stm32-exti

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MTD

on-chip

STM32 flash memory1

st,stm32-nv-flash

Pin control

on-chip

STM32F1 Pin controller1

st,stm32f1-pinctrl

PWM

on-chip

STM32 PWM1 3

st,stm32-pwm

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RTC

on-chip

STM32 RTC1

st,stm32-rtc

Sensors

on-chip

STM32 Internal Temperature Sensor1

st,stm32-temp

Serial controller

on-chip

STM32 USART3

st,stm32-usart

SMbus

on-chip

STM32 SMBus controller2

st,stm32-smbus

SPI

on-chip

STM32 SPI controller2

st,stm32-spi

SRAM

on-chip

Generic on-chip SRAM description1

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

STM32 timers1 3

st,stm32-timers

Watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

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