LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI. Laboratory Lesson 2: - General Purpose I/O - SysTick

Size: px
Start display at page:

Download "LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI. Laboratory Lesson 2: - General Purpose I/O - SysTick"

Transcription

1 LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 2: - General Purpose I/O - SysTick Prof. Luca Benini <luca.benini@unibo.it> Prof Davide Rossi <davide.rossi@unibo.it> Simone Benatti <simone.benatti@unibo.it> Victor Kartsch<victor.kartsch@unibo.it>

2 Info & Communications

3 Course Organization Check website for announcements, course material: Send homework via mail, mandatory subject with group number and lesson number (with spaces, for easy indexing) LABARCH2018 Group 22 Lab 02 (Lab 2 is the lesson number). THIS IS LAB 2!!! Please name correctly your files NO Attachments with same name or code sent in.txt: (main.c, main.c, main.c), main1.c.txt OK Attachments: main-lab2-es1.c, main-lab2-es2.c, Send replies to questions via mail, always report question and response (formats: doc, txt, pdf)

4 STM32F4Discovery Kit Read the Manual(s)!!! (all available on ST website and on course site) UM1472 User Manual User manual for the STM32F4Discovert Kit (information on board, its components, connectors, schematics, ) RM0090 Reference Manual Reference manual for MCU STM32F407 (detailed information on all peripherals) PM0241 Programming Manual Programming manuals for STM32F4 (detailed information on CortexM4 core)

5 For Help At the beginning of every lab session you are provided with all the documents needed to understand what it is going on in the lab and to successfully do your homework if you don t know something related to the hardware: If it is a component on the board (e.g. a LED) look at the Discovery User Manual If it is related to a peripheral of the MCU (e.g. UART, Timers) look at the MCU Reference manual If it is related to the ARM core look in the MCU Programming manual If you do not know how to use a peripheral: Look at the MCU Reference Manual for the pheripheral description Look at the StdPeriph Library and its code examples (download the full version of the StdPeriph Lib for STM32F4).

6 Recap Lab1: IDE & Debug Intro to embedded programming Crate/compile/debug Eclipse projects

7 General Purpose I/O (GPIO)

8 GPIO: Intuition Take a bit from the physical world and put it in software (or vice versa). Input Buttons Somewhere in a register of our MCU Voltage logic level to be read Output LEDs Somewhere in a register of our MCU Voltage logic level to be set

9 GPIO: Diagram Each MCU pin can be used as a General Purpose digital input or output. Input: read binary value of specified pin, (e.g. button state) Output: set binary value of specified pin (e.g. LED, simple signal trigger) GPIO Pins can be configured to trigger an interrupt GPIO Pins can not source significant current (typ. 4mA max!)

10 APB2 GPIO in STM32 The STM32 is well served with general purpose IO pins, having up to 81 bidirectional IO pins with interrupt capability. The IO pins are arranged as five ports each having 16 IO lines. PA [15:0] GPIO port A PB [15:0] GPIO port B PC [15:0] GPIO port C PD [15:0] GPIO port D PE [15:0] GPIO port E

11 GPIO: Block Diagram

12 GPIO: Turn on a LED Turning on a LED one of the most common hello world applications for all MCUs: LED driving circuitry is very simple : it consists in a voltage source connected to a diode in series to a limiting resistor Our GPIO acts as a voltage source (0..3.3V) (it can provide a small current too!) GPIO PIN OUTPUT CURRENT MCU and let there be light!

13 GPIO: What I want to use a GPIO. What do I need to know? Which bus the GPIOs are connected to? GPIO ports are on the AHB1 bus Which Port/PIN the GPIO is on? Depends on the application/board I want to use a LED on the Discovery board. What do I need to know? Which PIN the LED is connected to? look at your board schematic! Four user LEDs: LD3 (orange), LD4 (green), LD5 (red) and LD6 (blue): User LD3 orange: connected to the I/O PD13 User LD4 green: connected to the I/O PD12 User LD5 red: connected to the I/O PD14 User LD6 blue: connected to the I/O PD15 What do I need to do with this GPIO? (input, output,...) I need to write (output)

14 GPIO: Where I want to use a GPIO. Where can I gather these information? Look at the Discovery User Manual Board schematic and information on how the LEDs are connected Look at the MCU Reference Manual Info on GPIO peripheral, its clock, its BUS, To check electrical characteristics look in the MCU Data Sheet Info on electrical specifications and supported current/voltages

15 GPIO: How I want to use a GPIO. How can I use this information to actually turn on a LED? 1) Enable the High Speed AHB (AHB1) peripheral by enabling its clock: void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph_GPIOD, FunctionalState NewState); Look at: stm32f4xx_rcc.c 2) Configure the GPIO Port, by declaring and populating: GPIO_InitTypeDef myconfig Look at: stm32f4xx_gpio.h 3) Init the GPIO Port void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); Look at: stm32f4xx_gpio.c 4) Turn ON the LED void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) Look at: stm32f4xx_gpio.c

16 GPIO: Code example #include "stm32f4xx.h" int main(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable the GPIO_LED Clock */ /* Configure the GPIO_LED pin and enable AHB1 BUS Port D */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); /*Configure for Pin 12 Port D as output*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_SetBits(GPIOD,GPIO_Pin_12); /*And light was made*/ } while(1);

17 GPIO: LED blink int main(void) {... } while(1) { mydelay( ); GPIO_SetBits(GPIOD,GPIO_Pin_15); mydelay( ); GPIO_ResetBits(GPIOD,GPIO_Pin_15); } Check the code example: main-lab2-gpio.c void mydelay(int delay) { while (delay > 0) delay--; } return;

18 GPIO: Use library #include "stm32f4xx.h" #include "stm32f4_discovery.h" int main(void) { STM_EVAL_LEDInit(LED6) } while(1) { mydelay( ); STM_EVAL_LEDToggle(LED6); } Check the code example: main-lab2-led.c void mydelay(int delay) { while (delay > 0) delay--; Tip: to see the code of a library function right-click on it and select Open Declaration (or hit F3) } return;

19 SysTick

20 SysTick: Intro What if I need to repeat a periodic task or put a delay in my code? Very common problem in all embedded applications! Example: blink a LED every second Bad engineer solution: wait in a loop Decrement a variable to waste time for(i = 0; i< 10000;i++ ) { dummy_counter++; } Smart embedded engineer: use timers and interrupt! SysTick timer!

21 SysTick: What SystTick It is part of the ARM Cortex M CORE. System timer that can generate periodic interrupts Widely used in embedded applications to have an exact timing SysTick is used to schedule periodic events (usually configured to fire in the range of 1-100ms) When enabled, it periodically generates an interrupt Current program state is saved The IRQ handler is exectured: SysTick_Handler

22 SysTick: Setup I want to schedule a periodic event. How can I use SysTick? 1) We need to setup the SysTick static INLINE uint32_t SysTick_Config(uint32_t ticks) ticks is the number of ticks between two interrupts SystemCoreClock is the number of ticks in 1 sec Returns 0 if ok, 1 if something wrong 2) We need to implement the ISR (Interrupt Service Routine) void SysTick_Handler(void) The ISR is always defined in stm32f4xx_it.h (but you con re-define it) The name of the ISR for SysTick is SysTick_Handler(void) Here is the code executed every ticks ticks

23 SysTick: Code example int main(void) { } if (SysTick_Config(SystemCoreClock / 1000)) { /* Capture error */ while(1); } ISR executed every 1 ms void SysTick_Handler(void) { static u16 counter = 0; static variable } counter++; if (counter >= 500) { STM_EVAL_LEDToggle(LED6); counter = 0; } Every 500 increments: 500ms period Check the code example: main-lab2-systick.c

24 Weekly assignments

25 Setup Recap Import the template project form course webpage Go to course website Download the Template_Labarch2018_1.zip Import Now you should have an empty new project Copy the provided main to your main.c: Go to course website For each Lab the needed files are provided Chose Lab2: etc. Select All > Copy-Paste into your main.c

26 GPIO: Assignments 1.1) Write a code to use all the LEDs on the board. All LEDs should be used together (same state or blink for all LEDS). Do not use STM_EVAL_xxx functions, write the code using only GPIO functions. Use Delay function, not SysTick 1.2) Write a code to use all LEDs and use them to compose a blinking pattern. The pattern can be anything but not all LEDs together (e.g. circular pattern, alternate 2 and 2, different frequencies for each LED, ). Do not use STM_EVAL_xxx functions, write the code using only GPIO functions. Use Delay function, not SysTick

27 GPIO: Questions Look at the Reference manual, stm32f10x_gpio.h/stm32f4xx_gpio.c (and google). The answers can be in Italian or in English 1.a) To use a LED, why we do not configure GPIO_Mode = GPIO_Mode_AN? 1.b) Describe all the available GPIO configuration modalities (GPIO_Mode). 1.c) What is the purpose of the configurations Input pull-up and Input pulldown?

28 SysTick: Assignments 1.3) Write a code to blink two or more LEDs with different patterns/blinking frequency. You can use STM_EVAL_xxx functions or write your functions using GPIO functions. Use only the SysTick, no Delay functions 1.4) Write a code to blink more than one LED, with different patterns/blinking frequency. All the blinking frequencies should be below 1Hz. You can use STM_EVAL_xxx functions or write your functions using GPIO functions. Use only the SysTick, no Delay functions

29 SysTick: Questions 1.d) What is SystemCoreClock? Where is it defined and what is its value? 1.e) What is SysTick_Handler and what is its purpose?

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI. Laboratory Lesson 9: Serial Peripheral Interface (SPI)

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI. Laboratory Lesson 9: Serial Peripheral Interface (SPI) LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 9: Serial Peripheral Interface (SPI) Prof. Luca Benini Prof Davide Rossi

More information

Hands-On with STM32 MCU Francesco Conti

Hands-On with STM32 MCU Francesco Conti Hands-On with STM32 MCU Francesco Conti f.conti@unibo.it Calendar (Microcontroller Section) 07.04.2017: Power consumption; Low power States; Buses, Memory, GPIOs 20.04.2017 21.04.2017 Serial Interfaces

More information

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 7: Universal Serial Asynchronous Receiver Transmitter (USART) Prof. Luca Benini

More information

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 1: - Introduction to System Workbench for STM32 - Programming and debugging Prof. Luca Benini

More information

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 10: CMSIS DSP Library and Functions Final Assignment Prof. Luca Benini Prof Davide

More information

Embedded System Design

Embedded System Design ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN KỸ THUẬT ĐIỆN TỬ Embedded System Design Chapter 3: C Programming for ARM Microcontroller 1. C Program Basics 2. ARM Cortex-M

More information

Introduction to Microcontrollers LAB

Introduction to Microcontrollers LAB Introduction to Microcontrollers LAB Michele Magno IIS Group - ETH Zurich michele.magno@iis.ee.ethz.ch 1 EXERCISE LAB ACTIVITIES STM32F401DISCOVERY STM32F401VC MCU ST-LINK/V2 embedded debugger ST MEMS

More information

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 5: -Timers Prof. Luca Benini Simone Benatti Bojan Milosevic

More information

Introduction to Microcontrollers LAB

Introduction to Microcontrollers LAB Introduction to Microcontrollers LAB Michele Magno IIS Group - ETH Zurich michele.magno@iis.ee.ethz.ch 1 Lunch the Windows Machine Go to your account in Linux machine Click on activities -> look for terminal

More information

General Purpose Input/Output (GPIO)

General Purpose Input/Output (GPIO) GPIO 1 General Purpose Input/Output (GPIO) Sometimes it is called bus expander GPIO is an interface available on microcontrollers/microprocessors It can act as input or output GPIO often are arranged into

More information

W7200 User s Guide. for STM32F10x Standard Library. - USART - GPIO - Timer. Version 1.0.0e

W7200 User s Guide. for STM32F10x Standard Library. - USART - GPIO - Timer. Version 1.0.0e W7200 User s Guide for STM32F10x Standard Library - USART - GPIO - Timer Version 1.0.0e 2013 WIZnet Co., Inc. All Rights Reserved. For more information, visit our website at http://www.wiznet.co.kr Table

More information

STM32F3 Hands-On Workshop

STM32F3 Hands-On Workshop STM32F3 Hands-On Workshop Ensure you picked-up Welcome Hands-On 2 USB Flash Drive with STM32F3 Discovery Kit Contents USB Cable STM32F3-Discovery Kit will be provided after software is loaded Keil uvision

More information

Learn how to communicate

Learn how to communicate USART 1 Learn how to communicate Programmed I/O (Software Polling) Interrupt Driven I/O Direct Memory Access (DMA) 2 Programmed I/O (Polling) Processor must read and check I/O ready bits for proper value

More information

ECE 362 Experiment 3: General Purpose I/O

ECE 362 Experiment 3: General Purpose I/O ECE 362 Experiment 3: General Purpose I/O 1.0 Introduction In this experiment, you will learn how to attach simple input devices (pushbuttons) and simple output devices (LEDs) to an STM32 development board.

More information

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

STM32F4 Labs. T.O.M.A.S Technically Oriented Microcontroller Application Services V1.07 STM32F4 Labs T.O.M.A.S Technically Oriented Microcontroller Application Services V1.07 CONTENT 1/3 2 1. GPIO lab 2. EXTI lab 3. SLEEP lab 4. STOP lab 5. STANDBY lab 6. DMA Poll lab 7. DMA Interrupt lab

More information

ELEC 3040/3050 Lab Manual Lab 2 Revised 8/20/14. LAB 2: Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller

ELEC 3040/3050 Lab Manual Lab 2 Revised 8/20/14. LAB 2: Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller LAB 2: Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller The objective of this laboratory session is to become more familiar with the process for creating, executing and

More information

ECE 362 Experiment 4: Interrupts

ECE 362 Experiment 4: Interrupts ECE 362 Experiment 4: Interrupts 1.0 Introduction Microprocessors consistently follow a straight sequence of instructions, and you have likely only worked with this kind of programming until now. In this

More information

MeD SeS Worksheet 4 11/01/18

MeD SeS Worksheet 4 11/01/18 Title: Serial data communication Author: Craig Duffy 9/9/14, 11/01/18 Module: Mobile and Embedded Devices, Secure Embedded Systems Awards: BSc CSI, BSc Forensic Computing, Computer Security. Prerequisites:

More information

17. Serial communication - I 2 C

17. Serial communication - I 2 C 7. Serial communication - I 2 C Two typical serial busses will be discussed and their use will be demonstrated in this and next chapter, these are I 2 C (Inter Integrated Circuit, IIC or I2C) and SPI (Serial

More information

Interconnects, Memory, GPIO

Interconnects, Memory, GPIO Interconnects, Memory, GPIO Dr. Francesco Conti f.conti@unibo.it Slide contributions adapted from STMicroelectronics and from Dr. Michele Magno, others Processor vs. MCU Pipeline Harvard architecture Separate

More information

USART. USART stands for Universal Synchronous Asynchronous Receiver Transmitter. Full-duplex NRZ asynchronous serial data transmission

USART. USART stands for Universal Synchronous Asynchronous Receiver Transmitter. Full-duplex NRZ asynchronous serial data transmission USART 1 USART USART stands for Universal Synchronous Asynchronous Receiver Transmitter Full-duplex NRZ asynchronous serial data transmission Offer wide ranges of baud rate 2 Serial communication Can support

More information

Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller

Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller Developing and Debugging C Programs in MDK-ARM for the STM32L100RC Microcontroller ELCE 3040/3050 Lab Session 2 (write-up on course web page) Important References (on course web page): Tutorial: C programming

More information

STM32F4 Standard Peripheral Library. EE599: Real-Time Operating Systems University of Kentucky. Dr. Samir Rawashdeh

STM32F4 Standard Peripheral Library. EE599: Real-Time Operating Systems University of Kentucky. Dr. Samir Rawashdeh STM32F4 Standard Peripheral Library EE599: Real-Time Operating Systems University of Kentucky Dr. Samir Rawashdeh Includes material by: - ST Reference Material 1 Include files STM32F10x_StdPeriph_Driver

More information

Welcome to Lab! You do not need to keep the same partner from last lab. We will come around checking your prelabs after we introduce the lab

Welcome to Lab! You do not need to keep the same partner from last lab. We will come around checking your prelabs after we introduce the lab Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: http://users.wpi.edu/~ndemarinis/ece2049/ You do not need to keep the same partner from

More information

Hibernation Module. Introduction. Agenda

Hibernation Module. Introduction. Agenda Hibernation Module Introduction In this chapter we ll take a look at the hibernation module and the low power modes of the M4F. The lab will show you how to place the device in sleep mode and you ll measure

More information

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

Start a New Project with Keil MDK-ARM Version 5 and ST Micro Nucleo-F446RE Start a New Project with Keil MDK-ARM Version 5 and ST Micro Nucleo-F446RE This tutorial is intended for starting a new project to develop software with ST Micro Nucleo-F446RE board (with STM32F446RE MCU)

More information

ECE 362 Lab Verification / Evaluation Form Experiment 3

ECE 362 Lab Verification / Evaluation Form Experiment 3 ECE 362 Lab Verification / Evaluation Form Experiment 3 Evaluation: IMPORTANT! You must complete this experiment during your scheduled lab perior. All work for this experiment must be demonstrated and

More information

STM32F4 family practical session

STM32F4 family practical session STM32F4 family practical session Atollic TrueSTUDIO STM32 + STM32F4 discovery kit modified by Before the training Select/configure PC with MS Windows 2000/XP/Vista/7 in order to have administrative rights

More information

Embedded Systems. October 2, 2017

Embedded Systems. October 2, 2017 15-348 Embedded Systems October 2, 2017 Announcements Read pages 267 275 The Plan! Timers and Counter Interrupts A little review of timers How do we keep track of seconds using a timer? We have several

More information

ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives:

ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives: ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives: This lab will introduce basic embedded systems programming concepts by familiarizing the user with an embedded programming

More information

Lab Assignment: Interrupt + Lookup Tables + Binary

Lab Assignment: Interrupt + Lookup Tables + Binary Lab Assignment: Interrupt + Lookup Tables + Binary Semaphores Objective To learn how to create a single dynamic user defined interrupt service routine callback driver/library. This lab will utilize: Semaphores

More information

The board contains the connector for SWD bus to implement SWD method of programming. Fig. K190 VDD 2 GND 4

The board contains the connector for SWD bus to implement SWD method of programming. Fig. K190 VDD 2 GND 4 3. Programming Once the machine code containing the user program is prepared on a personal computer, the user must load the code into the memory of the processor. Several methods for loading are available.

More information

AN3268 Application note

AN3268 Application note Application note STM32VLDISCOVERY firmware package Introduction The purpose of this application note is to describe the STM32VLDISCOVERY package structure and provide short descriptions of: STM32VLDISCOVERY

More information

STM32SnippetsL0. STM32L0xx Snippets firmware package. Features. Description

STM32SnippetsL0. STM32L0xx Snippets firmware package. Features. Description STM32L0xx Snippets firmware package Data brief Features Complete free C source code firmware examples for STM32L0xx microcontrollers Basic examples using direct-access registers as defined in CMSIS Cortex

More information

EECS 373 Midterm Winter 2017

EECS 373 Midterm Winter 2017 EECS 373 Midterm Winter 2017 Name: unique name: Sign the following honor code pledge. I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: Problem Points 1 /12

More information

Binary Representations, and the Teensy 3.5

Binary Representations, and the Teensy 3.5 Binary Representations, and the Teensy 3.5 Data Types short, int, long: size depends on the particular microprocessor In order to be clear about sizes, gcc (our compiler) provides a set of types, including:

More information

BASICS OF THE RENESAS SYNERGY TM

BASICS OF THE RENESAS SYNERGY TM BASICS OF THE RENESAS SYNERGY TM PLATFORM Richard Oed 2018.11 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software!

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software! Summer Training 2016 Advance Embedded Systems Fast track of AVR and detailed working on STM32 ARM Processor with RTOS- Real Time Operating Systems Covering 1. Hands on Topics and Sessions Covered in Summer

More information

EECS 388 Embedded Systems Example Program Structure. Gary J. Minden August 24, 2016

EECS 388 Embedded Systems Example Program Structure. Gary J. Minden August 24, 2016 EECS 388 Embedded Systems Example Program Structure Gary J. Minden August 24, 2016 1 EECS 388 Program Structure Initial program structure A set of Main, Tasks, and Timer Tasks consists of: Task variables

More information

Embedded Systems - FS 2018

Embedded Systems - FS 2018 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Embedded Systems - FS 2018 Lab 1 Date : 14.3.2018 LaunchPad Basic Bare-Metal Programming Goals of this Lab Get to know the MSP-EXP432P401R

More information

Using the Digital I/O interface of STMicroelectronics STM32 Microcontrollers

Using the Digital I/O interface of STMicroelectronics STM32 Microcontrollers Using the Digital I/O interface of STMicroelectronics STM32 Microcontrollers ARSLAB - Autonomous and Robotic Systems Laboratory Dipartimento di Matematica e Informatica - Università di Catania, Italy santoro@dmi.unict.it

More information

LPC4088 Timer Interrupts CM0506 Small Embedded Systems

LPC4088 Timer Interrupts CM0506 Small Embedded Systems LPC4088 Timer Interrupts CM0506 Small Embedded Systems Dr Alun Moon Seminar 5 Here the module begins to separate from EN0572. The programming structure will make extensive use of interrupts to handle events,

More information

AN3996 Application Note

AN3996 Application Note Application Note Adjustable LED blinking speed using STM8SVLDISCOVERY Application overview This application note provides a short description of the demonstration firmware Discover which is preprogrammed

More information

EE445L Fall 2014 Final Version A Page 1 of 7

EE445L Fall 2014 Final Version A Page 1 of 7 EE445L Fall 2014 Final Version A Page 1 of 7 Jonathan W. Valvano First: Last: This is the closed book section. You must put your answers in the boxes. When you are done, you turn in the closed-book part

More information

Experiment 1. Development Platform. Ahmad Khayyat, Hazem Selmi, Saleh AlSaleh

Experiment 1. Development Platform. Ahmad Khayyat, Hazem Selmi, Saleh AlSaleh Experiment 1 Development Platform Ahmad Khayyat, Hazem Selmi, Saleh AlSaleh Version 162, 13 February 2017 Table of Contents 1. Objectives........................................................................................

More information

Embedded Programming with ARM Cortex-M3 Basic Experiments 1

Embedded Programming with ARM Cortex-M3 Basic Experiments 1 Embedded Programming with ARM Cortex-M3 Basic Experiments 1 Alan Xiao, Ph.D Handheld Scientific, Inc. qiwei@handheldsci.com Today s Topics Basics (with the Discovery board): 1. General Input/Output (GPIO)

More information

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab By the end of Class Pseudo-code for Lab 1-2 due as part of prelab Homework #5 on website due before next class Outline Introduce Lab 1-2 Counting Timers on C8051 Interrupts Laboratory Worksheet #05 Copy

More information

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 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

More information

Design and Implementation Interrupt Mechanism

Design and Implementation Interrupt Mechanism Design and Implementation Interrupt Mechanism 1 Module Overview Study processor interruption; Design and implement of an interrupt mechanism which responds to interrupts from timer and UART; Program interrupt

More information

BASICS OF THE RENESAS SYNERGY PLATFORM

BASICS OF THE RENESAS SYNERGY PLATFORM BASICS OF THE RENESAS SYNERGY PLATFORM TM Richard Oed 2017.12 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

Exercise: PWM Generation using the N2HET

Exercise: PWM Generation using the N2HET Exercise: PWM Generation using the N2HET 1 Overview In this exercise we will: Create a new HALCoGen Project Configure HALCoGen to generate A basic PWM with a period of 1 second and a duty cycle of 75%

More information

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website:

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: https://users.wpi.edu/~sjarvis/ece2049_smj/ We will come around checking your pre-labs

More information

Embedded Systems. 3. Hardware Software Interface. Lothar Thiele. Computer Engineering and Networks Laboratory

Embedded Systems. 3. Hardware Software Interface. Lothar Thiele. Computer Engineering and Networks Laboratory Embedded Systems 3. Hardware Software Interface Lothar Thiele Computer Engineering and Networks Laboratory Do you Remember? 3 2 3 3 High Level Physical View 3 4 High Level Physical View 3 5 What you will

More information

ECE 362 Lab Verification / Evaluation Form Experiment 5

ECE 362 Lab Verification / Evaluation Form Experiment 5 ECE 362 Lab Verification / Evaluation Form Experiment 5 Evaluation: IMPORTANT! You must complete this experiment during your scheduled lab perior. All work for this experiment must be demonstrated and

More information

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

Getting started with the STM32 Nucleo pack for USB Type-C and Power Delivery with the Nucleo-F072RB board and the STUSB1602 User manual Getting started with the STM32 Nucleo pack for USB Type-C and Power Delivery with the Nucleo-F072RB board and the STUSB1602 Introduction The USB Type-C and Power Delivery Nucleo pack P-NUCLEO-USB002

More information

AN2606 Application note

AN2606 Application note Application note STM32 microcontroller system memory boot mode Introduction The bootloader is stored in the internal boot ROM memory (system memory) of STM32 devices. It is programmed by ST during production.

More information

AN719 PRECISION32 IDE AND APPBUILDER DETAILED TUTORIAL AND WALKTHROUGH. 1. Introduction. Figure 1. Precision32 IDE and AppBuilder Walkthrough Overview

AN719 PRECISION32 IDE AND APPBUILDER DETAILED TUTORIAL AND WALKTHROUGH. 1. Introduction. Figure 1. Precision32 IDE and AppBuilder Walkthrough Overview PRECISION32 IDE AND APPBUILDER DETAILED TUTORIAL AND WALKTHROUGH 1. Introduction This document provides a step-by-step tutorial walkthrough for the Precision32 Development Tools (IDE and AppBuilder) using

More information

ELC4438: Embedded System Design ARM Cortex-M Architecture II

ELC4438: Embedded System Design ARM Cortex-M Architecture II ELC4438: Embedded System Design ARM Cortex-M Architecture II Liang Dong Electrical and Computer Engineering Baylor University Memory system The memory systems in microcontrollers often contain two or more

More information

Smart.IO Host Interface Layer and Demo Programs

Smart.IO Host Interface Layer and Demo Programs Smart.IO Host Interface Layer and Demo Programs V0.3 Nov 15th, 2017 richard@imagecraft.com Richard Man, ImageCraft, https://imagecraft.com/smartio To use the Smart.IO toolkit, you include the Smart.IO

More information

AN3279 Application Note

AN3279 Application Note Application Note Adjustable LED blinking speed using STM8S-DISCOVERY touch sensing key Application overview This application note provides a short description of how to use the touch sensing key to change

More information

User Manual Rev. 0. Freescale Semiconductor Inc. FRDMKL02ZUM

User Manual Rev. 0. Freescale Semiconductor Inc. FRDMKL02ZUM FRDM-KL02Z User Manual Rev. 0 Freescale Semiconductor Inc. FRDMKL02ZUM 1. Overview The Freescale Freedom development platform is an evaluation and development tool ideal for rapid prototyping of microcontroller-based

More information

NuMicro Family NuMaker Brick Design Guide

NuMicro Family NuMaker Brick Design Guide ARM Cortex -M4 32-bit Microcontroller NuMicro Family Design Guide The information described in this document is the exclusive intellectual property of Nuvoton Technology Corporation and shall not be reproduced

More information

EECS 373 Midterm 2 Fall 2018

EECS 373 Midterm 2 Fall 2018 EECS 373 Midterm 2 Fall 2018 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Nor did I discuss this exam with anyone after

More information

Final Exam. Date: May 14, Printed Name:

Final Exam. Date: May 14, Printed Name: EE319K Spring 2015 Final Exam Page 1 Final Exam Date: May 14, 2015 UT EID: Circle one: MT, NT, JV, RY, VJR Printed Name: Last, First Your signature is your promise that you have not cheated and will not

More information

Real Time Embedded Systems. Lecture 10 January 31, 2012 Interrupts

Real Time Embedded Systems.  Lecture 10 January 31, 2012 Interrupts Interrupts Real Time Embedded Systems www.atomicrhubarb.com/embedded Lecture 10 January 31, 2012 Interrupts Section Topic Where in the books Catsoulis chapter 1 (pg 10-12) Simon chapter4 Zilog UM197 (ZNEO

More information

L2 - C language for Embedded MCUs

L2 - C language for Embedded MCUs Formation C language for Embedded MCUs: Learning how to program a Microcontroller (especially the Cortex-M based ones) - Programmation: Langages L2 - C language for Embedded MCUs Learning how to program

More information

Problem Score 1 / 27 2 / 19 3 / 16 4 / 14 code check off 5 / 22 /2 Total /100

Problem Score 1 / 27 2 / 19 3 / 16 4 / 14 code check off 5 / 22 /2 Total /100 ME430 Mechatronics Examination I Page 1 Name CM Section You may use only: ME430 Mechatronics Examination I Sept 22nd, 2016 Problem Score 1 / 27 2 / 19 3 / 16 4 / 14 code check off 5 / 22 /2 Total /100

More information

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

P-NUCLEO-USB001. STM32 Nucleo pack for USB Type-C and Power Delivery Data brief. Features. Description STM32 Nucleo pack for USB Type-C and Power Delivery Data brief Features Two DRP USB Type-C receptacles USB 2.0 FS data communication interface as peripheral V BUS load and discharge switches V CONN switches

More information

AN3265 Application note

AN3265 Application note Application note Handling hardware and software failures with the STM8S-DISCOVERY Application overview This application is based on the STM8S-DISCOVERY. It demonstrates how to use the STM8S window watchdog

More information

Interrupts. Embedded Systems Interfacing. 08 September 2011

Interrupts. Embedded Systems Interfacing. 08 September 2011 08 September 2011 An iterrupt is an internal or external event that forces a hardware call to a specified function called an interrupt service routine Interrupt enable must be set (initialization) The

More information

Cypress FM4 Tools Set-up with Keil 5.x

Cypress FM4 Tools Set-up with Keil 5.x Introduction Mark Wickert, 9/4/16, Revised 1/28/19 This document will describe the details of setting up your own system with the ARM IDE Keil, and software drivers that support the Cypress FM4 board.

More information

C:\Users\Bryan\Documents\RIT\Senior Design\P14345\web\public\FinalDocuments\main.c

C:\Users\Bryan\Documents\RIT\Senior Design\P14345\web\public\FinalDocuments\main.c ****************************************************************************** * @file System / main.c * @author P14345 * @version V1.1.0 * @date 11/6/14 * @brief Program body ******************************************************************************

More information

ECE 381 Lab 1a PSoC5 Blinking LED 1. Launch PSoC Creator 3.3 from the star menu

ECE 381 Lab 1a PSoC5 Blinking LED 1. Launch PSoC Creator 3.3 from the star menu ECE 381 Lab 1a PSoC5 Blinking LED 1. Launch PSoC Creator 3.3 from the star menu 2. Go to File New Project 3. Select the Target Device radio button and PSoC 5LP in the first dropdown menu 4. In the second

More information

AN4666 Application note

AN4666 Application note Application note Parallel synchronous transmission using GPIO and DMA Introduction The STM32 MCUs are able to emulate a parallel synchronous communication through the GPIO interface, using the embedded

More information

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick TOOLSTICK C8051F560 DAUGHTER CARD USER S GUIDE 1. Handling Recommendations To enable development, the ToolStick Base Adapter and daughter cards are distributed without any protective plastics. To prevent

More information

Table 1: Cross Reference of Applicable Products. INTERNAL PIC NUMBER Arm Cortex M0+ UT32M0R GPIO Module QS30

Table 1: Cross Reference of Applicable Products. INTERNAL PIC NUMBER Arm Cortex M0+ UT32M0R GPIO Module QS30 Standard Product Enable the GPIO Module UT32M0R500 32-bit Arm Cortex M0+ Microcontroller Application Note December 21, 2017 The most important thing we build is trust PRODUCT NAME Table 1: Cross Reference

More information

STM32 F4xx Discovery Board Setup Guide

STM32 F4xx Discovery Board Setup Guide STM32 F4xx Discovery Board Setup Guide Audio Weaver November 2016 Copyright Information 2014 DSP Concepts, Inc., ALL RIGHTS RESERVED. This document may not be reproduced in any form without prior, express

More information

// middle priority ISR Status.flag = 1; Status.y = 6;

// middle priority ISR Status.flag = 1; Status.y = 6; EE445L Spring 2018 Quiz 1A Page 1 of 6 Jonathan W. Valvano First: Last: March 1, 2018, 3:30pm-4:45pm. This is a closed book exam, with one 8.5 by 11-inch crib sheet. You have 75 minutes, so please allocate

More information

STM32 F0 Value Line. Entry-level MCUs

STM32 F0 Value Line. Entry-level MCUs STM32 F0 Value Line Entry-level MCUs Key Messages 2 STM32 F0: Is the Cortex -M0 core generated with ST s STM32 DNA, for cost sensitive designs. The STM32 F0 is benefiting of STM32 DNA, providing the essential

More information

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick TOOLSTICK C8051F330 DAUGHTER CARD USER S GUIDE 1. Handling Recommendations To enable development, the ToolStick Base Adapter and daughter cards are distributed without any protective plastics. To prevent

More information

CSCE 436/836: Embedded Systems Lab 1b: Hoverboard Programming Introduction

CSCE 436/836: Embedded Systems Lab 1b: Hoverboard Programming Introduction 1 Overview CSCE 436/836: Embedded Systems Lab 1b: Hoverboard Programming Introduction Instructor: Carrick Detweiler carrick _at_ cse.unl.edu University of Nebraska-Lincoln Spring 2011 Started: Jan 27,

More information

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

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

More information

Booting a LEON system over SpaceWire RMAP. Application note Doc. No GRLIB-AN-0002 Issue 2.1

Booting a LEON system over SpaceWire RMAP. Application note Doc. No GRLIB-AN-0002 Issue 2.1 Template: GQMS-TPLT-1-1-0 Booting a LEON system over SpaceWire RMAP Application note 2017-05-23 Doc. No Issue 2.1 Date: 2017-05-23 Page: 2 of 11 CHANGE RECORD Issue Date Section / Page Description 1.0

More information

F28335 ControlCard Lab1

F28335 ControlCard Lab1 F28335 ControlCard Lab1 Toggle LED LD2 (GPIO31) and LD3 (GPIO34) 1. Project Dependencies The project expects the following support files: Support files of controlsuite installed in: C:\TI\controlSUITE\device_support\f2833x\v132

More information

Embedded Systems - FS 2018

Embedded Systems - FS 2018 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Embedded Systems - FS 2018 Sample solution to Lab 1 Date : 14.3.2018 LaunchPad Basic Bare-Metal Programming Goals of this Lab

More information

AVR32 UC3B Hands-on 01: Using Low-Level Drivers of the UC3B Software Framework

AVR32 UC3B Hands-on 01: Using Low-Level Drivers of the UC3B Software Framework AVR32 UC3B Hands-on 01: Using Low-Level Drivers of the UC3B Software Framework Prerequisites Hands-On - AVR32 Studio Hands-On 01 Knowledge Requirements - Basic understanding of microcontrollers - Basic

More information

AN2585 Application note

AN2585 Application note AN2585 Application note Application examples of the STM32F101xx and STM32F103xx core and system peripherals Introduction The STM32F10xxx is built around the latest Cortex -M3 core from ARM designed for

More information

VORAGO VA108x0 GCC IDE application note

VORAGO VA108x0 GCC IDE application note AN2015 VORAGO VA108x0 GCC IDE application note June 11, 2018 Version 1.0 VA10800/VA10820 Abstract ARM has provided support for the GCC (GNU C compiler) and GDB (GNU DeBug) tools such that it is now a very

More information

Experiment 3. Interrupts. Hazem Selmi, Ahmad Khayyat

Experiment 3. Interrupts. Hazem Selmi, Ahmad Khayyat Experiment 3 Interrupts Hazem Selmi, Ahmad Khayyat Version 162, 24 February 2017 Table of Contents 1. Objectives........................................................................................

More information

Code Composer Studio. MSP Project Setup

Code Composer Studio. MSP Project Setup Code Composer Studio MSP Project Setup Complete the installation of the Code Composer Studio software using the Code Composer Studio setup slides Start Code Composer Studio desktop shortcut start menu

More information

Final Exam. Date: May 12, 2017

Final Exam. Date: May 12, 2017 Final Exam Date: May 12, 2017 UT EID: Printed Name: Last, First Your signature is your promise that you have not cheated and will not cheat on this exam, nor will you help others to cheat on this exam:

More information

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso Microcontroller It is essentially a small computer on a chip Like any computer, it has memory,

More information

DAVE 3 Hands on / Quick Start Tutorial. Presentation Tutorial Start 1 v1.1: Creating a simple Project using PWM and Count Apps

DAVE 3 Hands on / Quick Start Tutorial. Presentation Tutorial Start 1 v1.1: Creating a simple Project using PWM and Count Apps DAVE Hands on / Quick Start Tutorial Presentation Tutorial Start v.: Creating a simple Project using PWM and Count Apps Project Changing the brightness of an LED with the PWM App PWMSP00 Interrupt on timer

More information

User Manual Rev. 0. Freescale Semiconductor Inc. FRDMKL02ZUM

User Manual Rev. 0. Freescale Semiconductor Inc. FRDMKL02ZUM FRDM-KL02Z User Manual Rev. 0 Freescale Semiconductor Inc. FRDMKL02ZUM 1. Overview The Freescale Freedom development platform is an evaluation and development tool ideal for rapid prototyping of microcontroller-based

More information

Using Code Composer Studio IDE with MSP432

Using Code Composer Studio IDE with MSP432 Using Code Composer Studio IDE with MSP432 Quick Start Guide Embedded System Course LAP IC EPFL 2010-2018 Version 1.2 René Beuchat Alex Jourdan 1 Installation and documentation Main information in this

More information

COEN-4720 Embedded Systems Design Lecture 4 Interrupts (Part 1) Cristinel Ababei Dept. of Electrical and Computer Engineering Marquette University

COEN-4720 Embedded Systems Design Lecture 4 Interrupts (Part 1) Cristinel Ababei Dept. of Electrical and Computer Engineering Marquette University COEN-4720 Embedded Systems Design Lecture 4 Interrupts (Part 1) Cristinel Ababei Dept. of Electrical and Computer Engineering Marquette University Outline Introduction NVIC and Interrupt Control Interrupt

More information

Interrupts and Low Power Features

Interrupts and Low Power Features ARM University Program 1 Copyright ARM Ltd 2013 Interrupts and Low Power Features Module Syllabus Interrupts What are interrupts? Why use interrupts? Interrupts Entering an Exception Handler Exiting an

More information

PAC52XX GPIO Peripheral Firmware Design

PAC52XX GPIO Peripheral Firmware Design APPLICATION NOTE PAC52XX GPIO Peripheral Firmware Design TM Marc Sousa Senior Manager, Systems and Firmware www.active-semi.com Copyright 2014 Active-Semi, Inc. TABLE OF CONTENTS APPLICATION NOTE... 1

More information

AN4311 Application note

AN4311 Application note Application note Assessing STM32L1 Series current consumption Introduction The STMicroelectronics ARM Cortex -M3 based STM32L1 series uses ST s proprietary ultra-low-leakage process technology with an

More information

ARROW ARIS EDGE S3 Board User s Guide 21/02/2018

ARROW ARIS EDGE S3 Board User s Guide 21/02/2018 ARROW ARIS EDGE S3 Board User s Guide All information contained in these materials, including products and product specifications, represents information on the product at the time of publication and is

More information