low cost micro-controllers - ipbeja

29
Low-Cost Microcontrollers Examples and Applications for Embedded Systems João Carlos Martins [email protected] Engineering Dept 1st Workshop on Applied Signal Processing IPBeja 15th May 2014

Upload: others

Post on 19-Jan-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Low-Cost

Microcontrollers Examples and Applications for

Embedded Systems

João Carlos Martins

[email protected]

Engineering Dept

1st Workshop on Applied Signal Processing

IPBeja 15th May 2014

Outline • What are Embedded Systems

• Microprocessors VS Microcontrollers

• Anatomy of a Microcontroller

• Microcontrollers examples

• A small computer platform (RPi)

• Embedded Systems Programming

• Embedded Systems Applications

• Conclusions

2

Embedded Electronic Systems

• Examples:

• Mobile phone / smartphone / PDA / Tablet

• Washing machine / microwave oven / kettle/ tootbrush

• Digital watch, digital camera, gamepad

• TVs, VCR, BluRay, music players, toys

• A modern cars has about 100 processors

• All these devices have embedded electronic systems: a

processor, sensors, actuators, buttons, displays,…

• Today its hard to find an electronic appliance without a

microprocessor 3

C vs M • Microprocessor (M or MPU)

• General purpose device

• Composed by a central processing unit (CPU), memory and I/O

• External peripherals are added dependent on the application

• Ex: ARM, MIPS: Mobile, Appliance Devices

Intel, AMD: Computer/Server platforms

• Microcontroller (C or MCU)

• Device targeted for applications

• CPU, memory, I/O, and several peripheral modules:

ADCs/DACs, Timers, PWM, communications interfaces

(SPI, UART,…), sensors, integrated in a single package

• SoC: System on Chip

• Distinction between M and C is blurred 4

Anatomy of a Small MCU • A complete (basic) computer system on a chip (SoC)

• Low processing power (compared to a MPU)

• High integration level

• Low-power consumption

• Integrate analog functions

• Low-cost (<<€1)

• Often substitute several discrete electronic components

• Typically process 8 to 16 bit of data (although 32 bit are also becoming common)

• Main function is for control rather than computation

• Come in packages of 8 to about 100 of pins

• Normally do not use an Operating System (OS) • Software runs directly on hardware

• Microcontrollers are used in real-time systems (can be used with a RTOS also)

5

A Tiny Example • ATMEL ATtiny4

• €0.30

• 6 pins (2NC)

• 512 Bytes Flash

• 32 Bytes SRAM

• 12MHz (Up to 12 MIPS)

• 8-bit AVR CPU

• 54 Instructions

• 4 bi-directional I/O pins:

• 2 PWM Channels, 16-bit Timer/Counter

• 4 External ISR

• 4 channel 8-bit ADC

• Vcc: 1.8 to 5.5 V

• Active Mode Consumption: 200µA at 1MHz and 1.8V (<0.1µA at 1.8V in sleep mode)

6

The Arduino Platform • Microcontroller ATmega328

• Price: €20

• Clock Speed 16 MHz

• Vcc 5 V

• Input Voltage: 7–12 V • Input Voltage limits: 6–20 V

• 14 Digital I/O Pins: • 6 PWM

• SPI

• 6 Analog Input Pins (10-bit)

• UART TTL communication

• DC Current per I/O Pin: 40 mA

• DC Current for 3.3 V Pin: 50 mA

• Flash Memory 32 KB • 0.5KB used for bootloader

• SRAM 2 KB

• EEPROM 1 KB

http://arduino.cc/en/Main/ArduinoBoardUno

Several other boards:

http://arduino.cc/en/Main/Products

8

Arduino Platform Anatomy

Fro

m:

htt

p:/

/ww

w.a

rdu

ino

bra

sil.

com

/20

11

/01

/un

o/

9

Arduino Platform • Platform can be complemented

with several stackable hardware

shields:

• GSM shield

• Ethernet shield

• WiFi shield

• Motor driver shield

• etc

10

Arduino IDE Platform • Programmed with the Arduino open-

source software

• Programmed with the Arduino programming language – a subset of C++

• Ex: LED blinking sketch:

void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }

11

Arduino

IDE

From: iOS Sensor Apps with Arduino

12

TM4C123GH6PM MCU • Fabricated by Texas Instruments

• Tiva™ C Series http://www.ti.com/lit/ds/symlink/tm4c123gh6pm.pdf

• Based on the ARM® Cortex™-M4F IP core:

• 32-bit

• 80MHz

• Thumb-2 mixed 16-/32-bit instruction

• IEEE754-compliant single-precision FPU

• 16-bit SIMD vector processing unit

• Harvard architecture

• Hardware division and fast digital-signal-processing MAC

• Ultra-low power consumption with integrated sleep modes

• Memory: 32 KB SRAM; internal ROM, 256 KB Flash, 2KB EEPROM 13

TM4C123GH6PM MCU

Fro

m:

Em

bed

ded

Syst

ems:

Intr

od

uct

ion

to

AR

M C

ort

ex-M

Mic

roco

ntr

oll

ers,

20

13

14

Tiva™ C Series MCU • JTAG Interface for test and debug

• Up to 43 General-Purpose I/O (GPIOs)

• 12 Several General-Purpose Timers with Several Modes

• 2 Watchdog Timers Modules

• ADC: 12-bit, 2 ADCs, 12 channels; single and differential

• 8 configurable UARTs

• 4 Synchronous Serial Interface (SSI)

• 4 Inter-Integrated Circuit (I2C) Interface

• 2 Controller Area Network (CAN) modules

• Universal Serial Bus (USB) Controller

• 2 Analog Comparators

• 2 Pulse Width Modulation (PWM) modules: 16 PWM outputs

• Vcc: 3.3V limits: 3.15-3.63V

15

Tiva C Series TM4C LaunchPad Evaluation Board • Tiva C Series TM4C LaunchPad Evaluation Board (EK-TM4C123GXL)

• Price: $12.99

• 80MHz

• 256KB Flash

• 32KB RAM

• 2-KB EEPROM

• On-chip ROM with drivers and boot loaders

• Two12ch 12-bit ADCs (1 MSPS)

• 16x Motion PWM channels

• 24x Timer/Capture/Compare/PWMs

• 3x Analog comparators

• 4x SPI/SSI, 4x I2C, 8x UART

• USB Host/Device/OTG

• 2x CAN

• Low-power hibernation mode

• 43x GPIO pins 16

The LaunchPad Ecosystem • The LaunchPad functionalities can be extended

with BoosterPacks:

http://www.ti.com/ww/en/launchpad/boosterpacks.html

• add-on boards that follow a pin-out standard by

TI

• Examples:

• WiFi BoosterPack

• LCD BoosterPack

• Capacitive Touch BoosterPack

• RF BoosterPack Radio Module

• L298 Motor Control BoosterPack, etc

18

Tiva™ C Series LaunchPad IDEs • Several IDEs:

• Texas Instruments Code Compose Studio (CCS)

• IDE based on Eclipse

• ARM Keil uVision

• Both have:

• Editor, assembler, compiler and simulator

• Download and debug software to the real MCU

• Programmable in C or assembly

• Energīa

• Open-source electronics prototyping platform

• Similar to the Arduino framework for the TI LaunchPad community.

• Includes an IDE based on Processing.

19

ARM Keil uVision IDE

20

MSP430 MCU Family • By Texas Instruments • Example: MSP430G2553 MCU

• MSP – Mixed Signal Processor

• 16-bit RISC architecture

• 16-bit registers (R0-R15)

• 16MHz

• 16KB Flash

• 512B RAM

• 8ch 10-bit ADC, 200 ksps

• Analog comparator

• Two 16-bit Timers

• Up to 1x I2C, 2x SPI, 1x UART

• Up to 24 I/O

• Low-power: 0.1 μA RAM retention; 0.4 μA Standby mode (VLO); 0.7 μA real-time clock mode; 220 μA / MHz active

• Ultra-Fast Wake-Up From Standby Mode in <1 μs

21

MSP-EXP430G2 LaunchPad Evaluation Board

• Price: $9.99

• 20 pin DIP socket for easy breadboarding/prototyping

• on-board emulation: program and debug without additional tools.

• Support all MSP430 Value Line MCUs

• 14 and 20 pin DIP

• Can be used as a flash programmer.

• Compatible with all BoosterPacks

• Great general purpose LaunchPad:

• Includes buttons and LEDs for quick

hands-on

• Low power operation: great for battery-operated applications

22

MSP430 LaunchPad

• Several IDEs:

• TI Code Composer

Studio (CCS)

• IAR Embedded

Workbench™

• MSPGCC

• Both have:

• Editor, assembler,

compiler and simulator

• Download and debug

software to the real

MCU

23

The Raspberry Pi Platform • Credit-card-sized single-board computer

• SoC Broadcom BCM2835 based on ARM11core

(ARMv6 ISA)

• 700MHz, 512MB RAM (Model B)

• GPU: Broadcom VideoCore IV @ 250 MHz; OpenGL

2.0; MPEG-2, h.264/MPEG-4

• SD card storage

• Linux OS

• Python is the main

programming language

• (not quite a MCU)

24

Raspberry Pi Peripherrals Model B:

• Price: €28

• Two USB 2.0 ports (can be extended with a USB HUB)

• Video output: Composite RCA and HDMI (no VESA)

• Native storage: SD Card (can be used HDD via USB)

• 10/100 Mbit/s Ethernet

• 8 × GPIO, UART, I²C bus, SPI bus, I²S audio, +3.3 V, +5 V

• Video input connector for camera module

• Power: 300mA (3.5W)

• Linux: Arch Linux ARM, Debian GNU/Linux, Gentoo, Fedora, FreeBSD, NetBSD, Raspbian OS, RISC OS, Slackware Linux

• Development boards: RasPiComm, Clocks & Timing, Sensors, Stepper Motor Drivers, etc

(2.5 million boards had been sold at February 2014! First units came out at February 2012) 25

Programming Languages • C programming language

• C programming language

• C programming language

• Assembly (ISA dependent on each device)

• Python

• Java 8 release:

• Support for ARM embedded devices

• Run on embedded platforms such as Raspberry Pi and Lego

Mindstorms EV3

• Allow Java-based applications to support the internet-of-

things

27

Applications • The platforms described cover the main electronic

applications.

• Complemented with additional sensors/actuators any

scenario application can be coped with at least one of

these platforms.

• The combination of hardware, software, and information

constitutes the new paradigm: the Internet of Things

(IoT).

• The imagination is the limit.

28

Conclusions • The available set of hardware and software tools opened

the embedded systems world to a larger and larger

audience

• The Internet helps the spread of documentation and

projects and ideas

• Together with the general availability of network

connections these systems are make possible a new set of

applications: the Internet of Things (IoT).

• The next (current) generation of software applications

will (are) no longer be desktop centred.

29

The End

• Thanks for your attention!

30