Skip to content

Board: STM32F3discovery

Hauke Petersen edited this page Jul 16, 2014 · 16 revisions

Overview

The STM32F3-discovery is cheap evaluation board designed by ST for pushing the STM32F3 microcontoller to a broad audience. It features an STM32F303VC microcontroller with 48Kb of RAM and 256Kb flash memory running with up to 72MHz. Addionially it provides USB host capabilities, 8 LEDs and sensors for a 9-degree of freedom initial measurement unit (3-axis accelerometer, 3-axis gyro and 3-axis magnetometer).

The board does however not provide any radio capabilities, radio devices have to be connected externally via I2C, SPI, UART or similar.

See this page for a quick getting started guide.

Hardware

STM32F3discovery image

MCU

MCU STM32F303VC
Family ARM Cortex-M4
Vendor ST Microelectronics
RAM 48Kb (40Kb RAM + 8Kb CCM RAM)
Flash 256Kb
Frequency up to 72MHz (using the on-board 8MHz Oszillator of the ST-Link)
FPU yes
Timers 10 (9x 16-bit, 1x 32-bit [TIM2])
ADCs 4x 12-bit
UARTs 5
SPIs 3
I2Cs 2
Vcc 2.0V - 3.6V
Datasheet Datasheet
Reference Manual Reference Manual
Programming Manual Programming Manual
Board Manual Board Manual

RIOT static pin mapping

please refer to this document for the pin mapping as implemenented in boards/stm32f3discovery/include/periph_conf.h

User Interface

2 Buttons:

NAME USER RESET
Pin PA0 (IN) NRST

8 LEDs:

NAME LD3 LD4 LD5 LD6 LD7 LD8 LD9 LD10
Color red blue orange green green orange blue red
Pin PE9 PE8 PE10 PE15 PE11 PE14 PE12 PE13

E-Compass / Accelerometer

The board has an on-board MEMS-chip that is an integrated accelerometer and e-compass.

Sensor LSM303DLHC
Type Accelerometer and magnetometer
Vendor ST Microelectronics
Datasheet Datasheet
Errata Sheet Errata Sheet
Connected to I2C_0
Pin Config:
Device I2C1
SCL PB6 (OUT, I2C1_SCL)
SDA PB7 (OUT, I2C1_SDA)
DRDY PE2 (IN)
INT1 PE4 (IN)
INT2 PE5 (IN)

Gyroscope

An 3-axis gyroscope is soldered on the board.

Sensor L3GD20
Type Gyroscope
Vendor ST Microelectronics
Datasheet Datasheet
Errata Sheet Errata Sheet
Connected to SPI_0
Pin Config:
Device SPI1
SCK PA5 (OUT, SPI1_SCK)
MISO PA6 (IN, SPI1_MISO)
MOSI PA7 (OUT, SPI1_MOSI)
CS PE3 (OUT)
INT1 PE0 (IN)
INT2/DRDY PE1 (IN)

Implementation Status

Device ID Supported Comments
MCU STM23F303VC partly Energy saving modes not fully utilized
Low-level driver GPIO yes
PWM yes
UART full
I2C no in progress
SPI no in progress
USB no
Timer full
Inpute Capture no
Accelerometer LSM303DLHC no planned
Magnetometer LSM303DLHC no planned
Gyroscope L3GD20 no planned

Flashing the device

The STM32F3discovery board includes an on-board ST-LINK V2 programmer. To program the board you just need to connect a micro-USB cable to the USB port that is centered on the top of the board. You can then either write software into the mircrocontrollers flash memory using one of the supported IDE's (e.g. Atollic Studio) or by using the free commandline tool 'st-flash'.

Installing the 'stlink' tool under Linux/OSX

  1. First of all you have to download the st-flash tool from texane's github repository:

# git clone https://github.com/texane/stlink.git stlink

  1. Change into the new directory:

# cd stlink

  1. Build the st-flash tool
# ./autogen
# ./configure 
# make

For this step you have to have a working build-environment installed, for debian/ubuntu you can do this by installing the build-essential package.

  1. Add the st-flash and st-util tools to your bin-path

Flashing a new firmware to the device

  1. Connect your discovery board to your pc

  2. After you have successfully compiled RIOT and your application, just type

# make flash

This will run the st-flash utility and upload your compiled project to your discovery board.

Flashing the board manually

You can alternatively flash your discovery board manually by using the st-flash utility directly:

$ st-flash [PRJDIR]/bin/stm32f3discovery/[PRJNAME].hex 0x08000000

Supported Toolchains

For using the STM32F3discovery board we strongly recommend the usage of the GNU Tools for ARM Embedded Processors toolchain.

Clone this wiki locally