Choosing a Microcontroller Architecture

canolaokahumpkaElectronics - Devices

Nov 2, 2013 (3 years and 9 months ago)

68 views

Choosing a Microcontroller
Architecture

Feb 18, 2013

Bill Giovino

v1.1

An Overview of the Microcontroller Marketplace

1

What You Will Learn Today



What is a Microcontroller?


What is a Microprocessor?


Are Digital Signal Processors (DSP) scary?


Show me a roadmap


Importance of Development Tools


Different Major Vendors


2

Microcontroller vs. Microprocessor


The lines are blurred


Both may contain peripherals


Both can contain RAM


A device with program memory
(Flash, ROM) will always be a
microcontroller


A device with no Program
Memory or RAM will always be a
microprocessor


A device with no Program
Memory, and has RAM


it just
might be a Microcontroller



Microcontroller Applications


Control
-
oriented
applications


Senses external
events


Controls
external events


Write your own
code


Microcontroller Applications


Microcontrollers are primarily used in control
-
oriented applications that are interrupt
-
driven, sensing and
controlling external events.


The external environment is detected and outputs are sent to drivers/actuators that control events.


Here, we see a typical example of an embedded system using a microcontroller. The microcontroller
-
based
system takes information from the outside world by reading the value of digital position devices, such as
switches, and reading analog signals from temperature sensors.


Waveforms generated by timers control the LCD display and motors.


A digital output pin drives an LED on and off.


The system efficiently communicates with other microcontrollers in its network by a commonly available
CAN bus network.

Microprocessor Applications


Need raw horsepower


Running high performance applications and
many tasks at once


Write your own code

What is a Digital Signal Processor
(DSP)?


Used for precision processing of digitized analog signals


Uniquely designed to perform a multiplication and an add in
one complex instruction (Multiply
-
Accumulate)


Uses complex instructions to perform many

simultaneous operations in a small amount of time


Not well suited to control
-
oriented tasks


Usually more expensive than a microcontroller


Usually draws more power than a microcontroller


More complex to program than a microcontroller


Driven by available, pre
-
written software to perform

specific tasks like image processing, video processing,

audio processing

What to choose?


Go with a
microcontroller if the
task is control
-
oriented,
interrupt driven, and/or
bit intensive


Go with a
microprocessor if you
have lots of code and so
many tasks you need an
RTOS


Go with a DSP if you are
doing intensive analog
signal processing and the
math gives you a
headache


Roadmaps Get You There


A roadmap shows a vendor will
develop code
-
compatible variants
of a microcontroller


Today, pin
-
compatible roadmaps
are crucial


A roadmap shows a vendor’s
commitment to a product line


A roadmap shows you can upgrade
your system if your code gets
bigger, or the system gets more
complex


An orphan device is outside of the
roadmap and has no pin
-
compatible siblings


Sometimes made for one customer


Subject to discontinuance


There may be no bug fixes


Development Tools


For ALL CORES, the quality of the
Development Tools are the gating
criteria


Development board selection can
make or break any product line


The usability of a microcontroller is
proportional to the total number of
development boards and compilers
available, plus the QUALITY of tech
support supplied by the vendor


The usability of a microprocessor is
proportional to the number of RTOS
and compilers available, plus the
quality of support by the vendor


A core is your hand is just a square
piece of plastic
-

tools must be used
to make it do anything useful

A core with poor or no
development tools is like a
Ferrari with a poor or no
steering wheel
-

all that
power & it can't be used to
do anything!

Development Tools
-

Compilers


You can’t program a
microcontroller without one


without a compiler a
microcontroller is just a
dumb piece of plastic


Program it in C


go ahead!


It helps to have an
underlying understanding of
the microcontroller’s
architecture and assembly
instructions to write
efficient C code


Choosing a Compiler


There’s water that’s free from the tap, and there’s
water you can buy.


There are free compilers, and there are compilers
you have to pay for


Compilers you can buy from

IAR, Keil, etc have more

optimizations and so create

more efficient code


Compilers you can buy come with technical support

Development Boards


Development boards can make or break a product family


A development board allows you to test the target
microcontroller in system without building your own
hardware


Development boards are not “one size fits all”


Development boards for motor control, home automation,
LCD control are all different


Development boards allow you to become

comfortable with the target microcontroller

so you know you are making the right

sourcing decision


Or making a mistake

Development Board Fun Features


Is it modular?


Is the debug interface USB?


Battery backup?


What are the networking options:


Ethernet


WiFi


CAN


LIN


Mobile phone


Display options:


LCD


Eink


Blinking LEDs


Memory Options


External SD Card


Flash memory


Expandable Flash


Sensors


Accelerometer


Temperature sensor


Light sensor


Are there other development boards
for this microcontroller family?


Is the quality consistent across all
development boards


Are the interfaces consistent across
all development boards?

Choose a Vendor


Before you choose a core, choose a vendor


Your potential long
-
term relationship with the
vendor determines the potential long
-
term
success of using the microcontroller


Things go wrong. Your fault, the vendor’s fault,
nobody’s fault.


Your choice of vendor is important for when
things go wrong.


Some Major Microcontroller Vendors

Major Microcontroller Vendors


Analog Devices
-

serious Analog 8051 microcontroller with high accuracy ADC


Atmel


long history with 8
-
bit and ARM, AVR has fanatical following


Freescale


History with 8
-
bit and 32
-
bit, ARM competes with internal 32
-
bit


Infineon


Strong 16
-
bit player


Maxim


gets confused with the racy magazine, fast 8
-
bit


Microchip


consistent and reliable major 8
-
bit player with a rabid following, 32
-
bit
PIC32 competes with ARM


NXP


low power ARM, no 8
-
bit


Renesas


lots of options to choose from thanks to mergers


Silicon Labs


extremely low power 8
-
bit with precision analog, and maybe the
lowest power ARM Cortex
-
M3


STMicroelectronics


Major 8
-
bit player, wants to own all the ARM sockets


Texas Instruments


low power 16
-
bit MSP430 endures forever, major ARM player,
now owns the 8
-
bit COP8 from NSC


Choosing a Vendor: Making a Decision


Look at Development Tools


Most important criteria


How many development boards?


Cheap/free boards & compilers?


Go where people like you are talking online


Vendor forums


LinkedIn Groups


LinkedIn is our Facebook


People using their real names will give

you honest feedback


Can you get them on the phone?


Then look at price and depth

The End Part 1

Next: The Architectures