getting started with stm32nucleo and arm mbed€¦ · connect move actuate ... (github, gitlab,...

14
Getting started with STM32Nucleo and ARM mbed AST Day 2018 Licio Mapelli

Upload: others

Post on 08-Oct-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

Getting started with

STM32Nucleo and ARM mbed

AST Day 2018

Licio Mapelli

Page 2: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

Introduction to ARM mbed 2

The Today Agenda

• The ARM Mbed ecosystem in a snapshot

• The ST offer on Mbed ecosystem

• The Developer Tools

• Some practice

Page 3: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

• ARMmbed™ is an online development environment for rapid prototyping

of applications based on ARM CortexM™ microcontrollers

• Easy of use - simple object oriented C++ API

• mbed provides a large online

community providing

• Open source reusable software

libraries and examples

• Help and support through an active

forum

• mbed platform is owned and maintained by ARM

• ST is an official mbed partner

STM32 ARM mbed ecosystemWhat is ? 3

Page 4: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

STM32 ARM mbed ecosystemEasy of use & Fast prototyping

4

mbed community and support

mbed Applications

STM32 Nucleo

Development Boards

STM32 Nucleo

Expansion Boards

X-Nucleo

mbed Component

Librariesmbed SDK / mbedOS

Sense..

Connect

Move Actuate

Translate

Power

Page 5: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

• NUCLEO-F030R8

• NUCLEO-F070RB

• NUCLEO-F072RB

• NUCLEO-F091RC

• NUCLEO-F103RB

• NUCLEO-F302R8

• NUCLEO-F303RE

• NUCLEO-F334R8

• NUCLEO-F401RE

• NUCLEO-F410RB

• NUCLEO-F411RE

• NUCLEO-F446RE

• NUCLEO-L053R8

• NUCLEO-L073RZ

• NUCLEO-L152RE

• NUCLEO-L476RG

The ST offerSTM32 Nucleo family

• ST has the largest platforms offering

on mbed: 33 boards

5

• NUCLEO-F031K8

• NUCLEO-F042K6

• NUCLEO-F303K8

• NUCLEO-L031K6

• NUCLEO-L432KC

• NUCLEO-L011K4

• NUCLEO-F746ZG

• NUCLEO-F446ZE

• NUCLEO-F429ZI

• NUCLEO-F207ZG

• DISCO-F334C8

• DISCO-L053C8

• DISCO-L476VG

• DISCO-F429ZI

• DISCO-F469NI

• DISCO-F746NG

• High performance

• Mainstream

• Ultra low power

Nucleo-32

Nucleo-144

Nucleo-64

• B96B-F446VE

Page 6: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

6

X-NUCLEO-IKS01A1MOTION MEMS AND

ENVIRONMENTAL SENSORS

X-NUCLEO-6180XA1 PROXIMITY AND AMBIENT

LIGHT SENSOR

X-NUCLEO-IKA01A1MULTIFUNCTIONAL EXPANSION

BOARD BASED ON OPERATIONAL

AMPLIFIERS

X-NUCLEO-IDB04A1BLUETOOTH LOW ENERGY

X-NUCLEO-IDB05A1BLUETOOTH LOW ENERGY X-NUCLEO-NFC01A1

DYNAMIC NFC TAG

Sensors and analog Wireless communication

IoT

X-NUCLEO-IDW01M1Wi-Fi EXPANSION BOARD

X-NUCLEO-NFC02A1DYNAMIC NFC TAG

The ST offerX-Nucleo expansion boards

Page 7: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

The developer toolsMbed flavours

• Mbed Classic (ex v2)

• Optional OS

• No multithread

• https://os.mbed.com/users/mbed_official/code/mbed/

• Mbed OS = Classic + RTOS + Comm

• Standardized wireless communication

scaled for IoT devices

• Seamless cloud connectivity

• Built-in security support

• Multithread support

• https://github.com/ARMmbed/mbed-os

7

Page 8: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

The Developer ToolsMany IDE 8

mbed CLI mbed Online Compiler

• Development

• Projects can be exported to a number of IDEs (IAR, KEIL, GCC-SW4STM32)

• Online Compiler/CLI has no debugging capabilities Do use an off-line IDE

• Fully synchronized with online repositories (HGMercurial & GitHub)

• Support for various DVCS

• Git (GitHub, gitLab, bitBucket)

• Mercurial (developer.mbed.org)

• Documentation support

• Classes all documented online

The

easyestThe

powerful

The bests

(but costly)

The ST

free

Page 9: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

• mbed includes an online IDE

• Developers can start their development using their web browser.

• They can later export their project to use with their favourite IDE

• Export to IAR, KEIL and GCC (SW4STM32) are supported for STM32 platforms

• Version control

• Different version control systems

integrated (git/github, mercurial)

• Inline documentation support

• This helps keeping the API

documentation up to date

9

The Developer ToolsThe online IDE

Page 10: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

10

, SW4STM32

The Developer ToolsThe workflow

Binary flash

Page 11: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

11

Some PracticeThree steps to start

“Import Into Compiler” a

reference project from https://os.mbed.com/teams/ST/

Modify/extend/compile/debug your

application on the target board

1

23

Commit/branch/publish your app to https://os.mbed.com/teams/AST_Day_Contest/

Repos

• HGMercurial

• GitHub

Page 12: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

• From the Mbed website you can:

• Browse the repository to find a suitable “HelloWorld” application

• Import it into the online compiler, select your target MCU and compile/download on the board

• Modify/extend/add libraries

• From OnlineIDE you can Version Control

• Commit/Publish/Branch/Merge on Github and Mercurial repos.

• From OnlineIDE you can Export/Import program

• Export to Keil/IAR/SW4ST32 and many others

• Update from CLI through Mercurial Repo

Some Demo Links

http://os.mbed.com/teams/ST/code/53L0A1_HandGestureRecognition/ Hand Gesture Recognition on 53L0

https://os.mbed.com/teams/ST/code/Cloud_IBM_MbedOS/ IBM IoT Cloud Publisher (Quickstart/Play/TLS)

https://os.mbed.com/teams/ST/code/MOTENV_Mbed/ Motion Sensors Demo with companion Android App

https://os.mbed.com/teams/ST/code/MemsMotorControl/ Stepper motor driver demo

12

Some PracticeWith online IDE

Page 13: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

Mandatory to connect the STM32 Nucleo

• http://www.st.com/en/development-tools/stsw-stm32102.html STM32 Virtual COM Port Driver

• http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-

utilities/stsw-link009.html STM32 USB drivers

Optional but useful to work off-line

• http://www.st.com/en/development-tools/stsw-link004.html STM32 STLink utility

• https://github.com/ARMmbed/mbed-cli Mbed CLI and GCC compiler https://developer.arm.com/open-source/gnu-toolchain/gnu-

rm/downloads

• https://tortoisehg.bitbucket.io/download/windows.html MercurialHG GUI client for windows

• https://git-scm.com/downloads GIT GUI Client

• https://gitforwindows.org/ GIT Bash

• https://os.mbed.com/teams/ST/ The ST Mbed Mercurial repo

• https://github.com/ARMmbed The ARM Mbed GitHub repo

13

Some PracticeUseful Links

Page 14: Getting started with STM32Nucleo and ARM mbed€¦ · Connect Move Actuate ... (GitHub, gitLab, bitBucket) • Mercurial (developer.mbed.org) •Documentation support • Classes

THANK YOU!

www.mbed.org/teams/ST/

14