19
Choosing a Microcontroller Architecture Feb 18, 2013 Bill Giovino v1.1 An Overview of the Microcontroller Marketplace 1

Choosing a Microcontroller Architecture Feb 18, 2013 Bill Giovino v1.1 An Overview of the Microcontroller Marketplace 1

Embed Size (px)

Citation preview

Choosing a Microcontroller Architecture

Feb 18, 2013Bill 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 fromIAR, Keil, etc have moreoptimizations and so createmore 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 microcontrollerso you know you are making the rightsourcing 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