Fundamentals of Microcontrollers (MCUs) : Hands-on Workshop
Introduction to Microcontrollers
12/02/2013 Jacob Beningo
Course Overview
Introduction to Microcontrollers Selecting the Right Microcontroller An Overview of the STM32F4 Discovery Board Digital Signal Processing with the STM32F4 Introduction to Graphics Processing
Session Overview
Introduction to Microcontrollers Common Microcontroller Architectures Pipelining An Overview of Peripherals
Introduction to Microcontrollers
What is a microcontroller?
A microcontroller is a single chip with a processor core, embedded memory and input/output peripherals
Introduction to Microcontrollers
What are MCUs used for?
Introduction to Microcontrollers
Mobile (Battery Powered) Smaller Form Factors Lower Power Less expensive Cloud Connected IoT Moores Law
6
Introduction to Microcontrollers
Low Power Operation
Introduction to Microcontrollers
STM32L1x 128 Kbytes Flash die
Introduction to Microcontrollers
STM32L1
Full 1.8V 3.6V VDD range functionality @ 32 MHz
Aggressive consumption in Stop mode (25C @ 3.6V) with:
Stop Mode: 0.57 A
Stop Mode + RTC: 1.2 A @ 1.8V
Stop Mode + RTC: 1.4 A @ 3.6V
Aggressive consumption in Standby mode (25C @ 3.6V) with:
Standby Mode: 0.3 A
Standby Mode + RTC: 0.9 A @ 1.8V Standby Mode + RTC: 1.1 A @ 3.6V Backup register retention (80Bytes)
I/O leakage: 10nA
Introduction to Microcontrollers
MCU Supervisor Functions
Integrated reset & brown out detection Watchdog timers Internal / External high and low speed clock sources Single voltage supplies Internal programmable regulators
Results?
Smaller form factor Decreased BOM costs
10
Introduction to Microcontrollers
What peripherals does a microcontroller have?
Timers Digital Input / Output Analog to Digital Converters
I2C
SPI
CAN LIN Ethernet USB UART LCD Controller MPU
Pulse Width Modulation
Input Capture Direct Memory Access (DMA)
Capacitive Touch
Quadrature decoding Memory Expansion
EEPROM or Emulated EEPROM
11
Introduction to Microcontrollers
Who manufactures microcontrollers?
12
Introduction to Microcontrollers
What makes up a microcontroller?
Images courtesy of ARM Ltd
13
Memory Architecture - Princeton
14
Memory Architecture - Harvard
15
ARM Architecture
Images courtesy of ARM Ltd
16
ARM Instruction Set
Images courtesy of ARM Ltd
17
Pipelining
What is pipelining?
A technique for increasing the number of instructions that can be executed in a given period of time
What does a typical pipe look like?
Fetch Decode Execute
Images courtesy of ARM Ltd
18
Pipelining
An Example
Instruction #1 Instruction #2 Instruction #3
19
Digital Input / Output
Digital Logic
Organized into ports consisting of 8, 16 or 32 pins per port Bidirectional and configurable
Logic 0 or 1
Multiplexed with peripheral functions
Setup
Direction (Input or Output)
State (High or Low) Function select
Example Use
Drive an LED Control a relay Read a sensor state
20
Timers
Timers
8, 16, 32 bit counters Scalable based on the input clock frequency
Setup
Configure the input clock Setup type of timer
Use
System Tick Measuring timing High Precision Timers for SMPS Motor Control
21
Analog to Digital Converters (ADC)
Peripheral
Converts analog signals to digital values Typically 10, 12, 16 bit Sample rates upwards of 5 MHz
Setup
Configure sample rate Setup Polling or ISRs Select channels to sample Convert the channels
Use
Read analog sensors
22
Direct Memory Access (DMA)
Peripheral
Efficiently move data throughout the processor
Setup
Select source device Select destination Enable peripheral Await trigger Transfer the data
Use
Transfer data to/from peripheral Move data around in memory
Images courtesy of ARM Ltd
23
Memory Protection Unit (MPU)
Peripheral
Isolate memory regions Access permission rules
Setup
Select memory regions Enable ranges See particular datasheet
Use
Operating Systems Task managers
24
UART or SCI
Peripheral
Transmit and Receive lines 8 or 16 bit transfer Up to 11.25 Mbps (115200 std)
Setup
Baud rate setup Configure pins Data in buffer
Use
Tx Data Rx Data
25
Serial Peripheral Interface (SPI)
Peripheral
3 Lines (MOSI, MISO, CLK) Chip Select Up to 45 Mbps
Setup
Select clocks Set Master/Slave Mode
Use
Transferring data off chip Retrieving off chip data
26
I2C
Peripheral
2 wire interface Addressable slaves Master drives clock 1000 kbps
Setup
Select clock Send data
Use
Sensor interfacing
27
USB
Peripheral
4 or 5 Wire Operation Modes Up to 480 Mbps
Setup
Device, Host, OTG? Use USB framework
Use
Interfacing to high speed devices Interfacing to external storage
28
Display Controllers
Peripheral
Segmented LCD Simple dot matrix SVGA color LCD
Setup
Depends on display Peripheral dependent
Use
Display text data Display basic images
29
Questions
Contact Info Jacob Beningo ( [email protected] ) www.beningo.com Jacob_Beningo
Beningo Engineering
JacobBeningo Embedded Basics
2013 Jacob Beningo, All Rights Reserved
Next Time in Session 2
10 Steps to Selecting a Microcontroller What to look for in a Development Kit Hands-on Workshop Tool Setup
31