STM32 Ecosystem workshop. T.O.M.A.S Team

Similar documents
STM32 Ecosystem Workshop. T.O.M.A.S Team

STM32 Ecosystem workshop. T.O.M.A.S Team

STM32 Ecosystem workshop. T.O.M.A.S Team

UART and new board introduction

Getting started with X-CUBE-LED channel LED driver software expansion based on LED1642GW for STM32Cube

Getting started with the X-CUBE-53L1A1 Time-of-Flight long distance ranging sensor software expansion for STM32Cube

Getting started with the software package for STEVAL-STLKT01V1 based on STM32Cube

UM2045 User manual. Getting started with the X-CUBE-NFC3 near field communication transceiver software expansion for STM32Cube.

Getting started with the STSW-BCNKT01 software package for STEVAL-BCNKT01V1 based on STM32Cube

STM32Cube TM Introduction

Getting started with the X-CUBE-IKA02A1 multifunctional software expansion for STM32Cube

UM2204. Getting started with STM32CubeH7 for STM32H7 Series. User manual. Introduction

Getting started with the X-CUBE-NFC5 high performance HF reader / NFC initiator IC software expansion for STM32Cube

UM1853 User manual. STM32CubeF1 Nucleo demonstration firmware. Introduction

Getting started with MotionPM real-time pedometer library in X-CUBE-MEMS1 expansion for STM32Cube

UM2350. Getting started with MotionPW real-time pedometer for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

UM2276. Getting started with MotionSD standing vs sitting desk detection library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

Getting started with the STM32 Nucleo pack for USB Type-C and Power Delivery with the Nucleo-F072RB board and the STUSB1602

UM2194. Getting started with MotionAW activity recognition for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

Getting started with MotionPM real-time pedometer library in X CUBE-MEMS1 expansion for STM32Cube

Tools Overview. Evaluation Boards Free IDEs. Ecosystem. AC6 CoIDE Keil (M0/M0+) mbed

Getting started with the X-CUBE-SPN3 high power stepper motor driver software expansion for STM32Cube

Start a New Project with Keil MDK-ARM Version 5 and ST Micro Nucleo-F446RE

Getting started with the software package for L6474 stepper motor driver X-CUBE-SPN1 expansion for STM32Cube

Getting started with the software package for digital MEMS microphones in X-CUBE-MEMSMIC1 expansion for STM32Cube

Getting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube

UM1754 User manual. Getting started with STM32CubeL0 firmware package for STM32L0 series. Introduction

UM1730 User manual. Getting started with STM32CubeF4 firmware package for STM32F4 Series. Introduction

UM2216 User manual. Getting started with MotionFA fitness activity library in X CUBE MEMS1 expansion for STM32Cube. Introduction

Getting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube

UM1754. Getting started with STM32CubeL0 for STM32L0 Series. User manual. Introduction

STM32G0 MCU Series Efficiency at its Best

STM32F3 Hands-On Workshop

Getting started with the X-CUBE-MEMS1 motion MEMS and environmental sensor software expansion for STM32Cube

Getting started with the X-CUBE-SPN2 two-axis stepper motor driver software expansion for STM32Cube

STM32SnippetsL0. STM32L0xx Snippets firmware package. Features. Description

Quick Start Guide. Stepper motor driver expansion board based on L6474 for STM32 Nucleo (X-NUCLEO-IHM01A1) Version 1.

AN4515 Application note

Getting started with the FP-NET-6LPBLE1 function pack for 6LoWPAN IoT node connection to a smartphone via BLE interface

NUCLEO-L433RC-P NUCLEO-L452RE-P

Getting started with VL53L0X ranging and gesture detection sensor software expansion for STM32Cube

AN4624 Application note

AN4749 Application note

STM32F4 Labs. T.O.M.A.S Technically Oriented Microcontroller Application Services V1.07

STM32MP1 Microprocessor Continuing the STM32 Success Story. Press Presentation

Using STM32 discovery kits with open source tools. STLINK development team

Install Keil Microcontroller Development Kit Version 5 for ST Microelectronics STM32F446

UM2051 User manual. Getting started with the STM32 Nucleo pack for USB Type-C and Power Delivery. Introduction

NUCLEO-L496ZG. STM32 Nucleo-144 board. Features. Description

Quick Start Guide. Stepper motor driver expansion board based on L6474 for STM32 Nucleo (X-NUCLEO-IHM01A1) Version 1.2.

Quick Start Guide. GNSS expansion board based on Teseo-LIV3F module for STM32 Nucleo (X-NUCLEO-GNSS1A1) Version 2.1 (Nov 9, 2018)

Getting started with osxacousticsl real-time sound source localization software expansion for STM32Cube

UM1724 User manual. STM32 Nucleo boards. Introduction

Quick Start Guide. High power stepper motor driver expansion board based on powerstep01 for STM32 Nucleo (X-NUCLEO-IHM03A1)

STM32L4+ MCU series Excellence in ultra-low-power with more performance

Bluetooth low energy profiles for the X-CUBE-BLE1 expansion for STM32Cube. Description

Getting Started with the STM32L4 IoT Discovery Kit Node

AN5181. Building a thermometer using the STM8 Nucleo-64 boards. Application note. Introduction

ECE 362 Experiment 3: General Purpose I/O

Getting Started with Kinetis SDK (KSDK) v.1.2

P-NUCLEO-USB001. STM32 Nucleo pack for USB Type-C and Power Delivery. Features. Description

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

STM32CubeL4 demonstration firmware for 32L476GDISCOVERY discovery kit

Hello, and welcome to this presentation of the STM32 general-purpose IO interface. It covers the general-purpose input and output interface and how

UM2192. Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

UM1724 User manual. STM32 Nucleo boards. Introduction

UM2125 User manual. STM8 configuration tool. Introduction

Quick Start Guide. Bipolar stepper motor driver expansion board based on L6208 for STM32 Nucleo (X-NUCLEO-IHM05A1) Version 1.1.

Getting started with the FP-IND-PLCWIFI1 function pack for PLC management via Wi-Fi

Introducing STM32 L0x Series. April

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

Getting started with osxmotiongc gyroscope calibration library for X-CUBE-MEMS1 expansion for STM32Cube

Getting started with the FP-SNS-ALLMEMS1 Bluetooth low energy and sensors software expansion for STM32Cube

UM2220. Getting started with MotionFX sensor fusion library in X-CUBE-MEMS1 expansion for STM32Cube. User manual. Introduction

STM32L4 Discovery Kit IoT Node Hands-on Workshop

UM1724 User manual. STM32 Nucleo-64 boards. Introduction

Getting Started with Kinetis SDK (KSDK) v.1.3

M16C/62P QSK QSK62P Plus Tutorial 1. Software Development Process using HEW4

Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube

Quick Start Guide. STM32 ODE function pack for half-duplex voice streaming over Bluetooth Low Energy (FP-AUD-BVLINK1) Version 1.

Getting started with osxmotionar activity recognition library for X-CUBE-MEMS1 expansion for STM32Cube

AN4666 Application note

AN4311 Application note

P-NUCLEO-USB001. STM32 Nucleo pack for USB Type-C and Power Delivery Data brief. Features. Description

Getting started with FP-SNS-6LPNODE1 software for IoT sensor node connection to 6LoWPAN networks using sub-1ghz RF

XNUCLEO-F030R8, Improved STM32 NUCLEO Board

Hello, and welcome to this presentation of the STM32 Reset and Clock Controller.

Getting Started with MCUXpresso SDK CMSIS Packs

External memory code execution on STM32F7x0 Value line and STM32H750 Value line MCUs

Open407I-C & Open207I-C User Manual

Getting started with osxmotionmc magnetometer calibration library for X-CUBE-MEMS1 expansion for STM32Cube

New STM32WB Series MCU with built-in Bluetooth 5 and IEEE

AN5179. RS232 communications with a terminal using the STM8 Nucleo-64 boards. Application note. Introduction

UM2232. Getting started with the IO-Link demonstration kit firmware. User manual. Introduction

Introduction to Keil-MDK-ARM. Updated:Monday, January 22, 2018

STM32L100C-Discovery Board Projects

Quick Start Guide. SensiBLE (BLUEMICROSYSTEM1) Bluetooth low energy and sensor software for. Version (May 25, 2016)

Webinar Dec Less power consumption and unbeatable UI performance on TouchGFX & STM32L4+ solution

Version (Apr 28, 2016)

Quick Start Guide. Dual-channel high side driver expansion board based on VPS2535H for STM32 Nucleo (X-NUCLEO-IPS02A1) Version 1.0 (Sept.

Transcription:

STM32 Ecosystem workshop T.O.M.A.S Team

2 Now it is a right time for some slides We will present briefly what is STM32CubeMX and the structure of the Cube library

What it is STM32CubeMX?

STM32CubeMX application 5 STM32CubeMx do allow to configure peripherals using GUI, generate project framework and peripheral initialization code. STM32CubeMx do not allow to create algorithms using GUI and generate algorithms code yet there is still some space for programmers left ;-)

What it is STM32CubeMX? 6 Pinout Wizard Clock Tree Wizard Peripherals & Middleware Wizard Power Consumption Wizard STM32CubeMX Generates Initialization C Code based on user choices!

STM32Cube FW Package Organization 7 Can be found in STM32CubeMX repository STM32xxCube HAL package Documents Drivers Middleware Projects Utilities Getting started with STM32F4Cube document Supporting files like fonts, pictures for graphic examples,

STM32Cube FW Package Drivers 8 Cube F4 HAL package Documents Drivers Middleware Projects Utilities Drivers CMSIS STM32Fxxx_HAL_Driver BSP Register definitions for Core, startup files, ARM cortex libraries HAL drivers for each periphery in STM32 Functions using HAL drivers to communicate with other components present on EVAL/Discovery boards

STM32Cube FW Package Middleware 9 Cube F4 HAL package Documents Drivers Middleware Projects Utilities Advanced set of libraries Developed/Owned by ST Middleware Third Party libraries ST Third Party STemWin STM32_Audio FatFS FreeRTOS STM32_USB_Device_Library STM32_USB_Host_Library LibJPEG LwIP PolarSSL

STM32Cube FW Package Projects 10 Cube F4 HAL package Documents Drivers Middleware Projects Utilities Complete projects for STM32 boards Projects STM32Nucleo, Discovery kits, Eval Boards STM32F-Discovery. Templates Examples Applications Demonstrations Empty project only with startup file prepared for modification Simple examples for STM32 Peripheries (GPIO, USART, ) Advanced examples using Middleware (USB virtual com port) Demonstration project combining multiple Middleware together

Preparation of the hardware

What we would need? 12 NUCLEO-L476RG board STLink v2.1 User Button on PC13 Reset LD2 on PA5 Mini-USB cable Jumper connection PA4-PA1 PC with preinstalled software (STM32CubeMX, SW4STM32, STLinkv2.1 drivers)

13 Now it is a right time for some software activity Our first task is to create LED blinking application just to check whether all the software packs and drivers are installed correctly and whether the hardware is ready for more challenging job

Goal of this part 14 To practice a little bit with STM32CubeMX by: MCU selection Play a bit with clock configuration for STM32L4 device Create a skeleton of simple LED blinking application Have some fun!

Creating the L4_Blinky example in STM32CubeMX

Creating a New Project 16 1. From the STM32Cube Home Page or Menu File select New Project 1 2. There are 3 ways to create a New Project By STM32 Series and Product Line By Peripheral Mix By Board 3. For this example we will use NUCLEO L476RG Select the Board Selector Tab from the top left Select Type of Board to be Nucleo64 Select STM32L4 in MCU Series Select the NUCLEO L476RG from the list on the right Click OK to continue 3 2

Peripheral and Pin Configuration 17 You will be presented with the pinout of the NUCLEO L476RG The debug pins, Push Button and LED are already highlighted in green, to say they are connected to the hardware on the board. System Pins are highlighted in yellow/yellow-grey Optional Hardware, like crystals and USART are highlighted in orange. This means there are PCB connections but not necessarily any hardware connected by default. For the L4_Blinky example all relevant peripherals are already connected, so no modifications are needed.

Clock Configuration 18 Task: Configure clock system to use internal oscillator with PLL @80MHz 1. Select Clock Configuration tab 2. Select HSI in PLL Source Mux (HSI High Speed Internal clock) 3. Select PLLCLK in the System Clock Mux 1 4. Set HCLK to 80 and press ENTER application will propose PLL configuration to match this requirement 3 4 2

Peripheral Configuration 19 Select Configuration tab In this section peripherals with no physical pins or middleware can be added to the project For the L4_Blinky example no additional configuration is required as LED is already configured in GPIO link as Output Push-Pull.

Configure the code generator 1/2 20 Open project setings: Menu Project Settings Under Project tab: Give the project a name and location (i.e. L4_Blinky) We strongly recommend to place this folder on the root of C: as some C-compilers show issues when the build path contains too many characters Select the toolchain to be SW4STM32 For better understanding let s review code generation options (Code Generation tab) first

Code generator options Configure the code generator 2/2 21 Copy either the full library or only the necessary files or just link the files from the common repository Place all peripherals initialization in the stm32lxx_hal_msp.c file or one file per peripheral Keep user code or overwrite it (refers to code placed between user code comment sections) Delete or keep files that are not used anymore Set unused pins as analog to keep consumption low (if SWD/JTAG is not selected in pinout, this option will disable it) Enable full assert in project, this helps to discover incorrect HAL function parameter used in user code

Code generation 22 Once we have configured the code generator, we can generate code for selected toolchain. There are 3 ways to do it, namely: Clicking icon Pressing Ctrl+Shift+G keys combination Selecting Project Generate Code option from menu When prompted, click Close (we will import this project from SW4STM32 IDE).

What have we gained during this part? 23 Practice a little bit with STM32CubeMX by: MCU selection Play a bit with clock configuration for STM32L4 device Create a skeleton of simple LED blinking application Have some fun!

Further reading 24 More information can be found in the following document: UM1718 - STM32CubeMX for STM32 configuration, available on the web: http://www.st.com/resource/en/user_manual/dm00104712.pdf

Enjoy! /STM32 @ST_World st.com/e2e www.st.com/mcu