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 |
|
ADC |
on-chip |
STM32F1 ADC1 |
|
Clock control |
on-chip |
STM32F1/F3/7x RCC (Reset and Clock controller)1 |
|
on-chip |
STM32 HSE Clock1 |
||
on-chip |
|||
on-chip |
STM32F100 Main PLL1 |
||
on-chip |
STM32F1 Microcontroller Clock Output (MCO)1 |
||
Counter |
on-chip |
STM32 counters3 |
|
DAC |
on-chip |
STM32 family DAC1 |
|
DMA |
on-chip |
STM32 DMA controller (V2bis) for the stm32F0, stm32F1 and stm32L1 soc families1 |
|
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
GPIO & Headers |
on-chip |
STM32 GPIO Controller5 |
|
I2C |
on-chip |
STM32 I2C V1 controller2 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32 External Interrupt Controller1 |
||
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
MTD |
on-chip |
STM32 flash memory1 |
|
Pin control |
on-chip |
STM32F1 Pin controller1 |
|
PWM |
on-chip |
||
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
RTC |
on-chip |
STM32 RTC1 |
|
Sensors |
on-chip |
STM32 Internal Temperature Sensor1 |
|
Serial controller |
on-chip |
STM32 USART3 |
|
SMbus |
on-chip |
STM32 SMBus controller2 |
|
SPI |
on-chip |
STM32 SPI controller2 |
|
SRAM |
on-chip |
Generic on-chip SRAM description1 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
|||
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
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