Embedded Systems/Particular Microprocessors
From Wikibooks, the open-content textbooks collection
This module of Embedded Systems is a very brief review of the most popular microprocessor families used in embedded systems. We will go into more detail in the next few modules. Each one of these microprocessor families has an entire module dedicated to that family of processors.
The microprocessor families we will discuss are:
- 8051 Microcontroller 8 bit
- Atmel AVR 8 bit
- Atmel AVR32
- Microchip PIC Microcontroller (this family includes the code-compatible Parallax SX chips) 8 bit
- Microchip dsPIC microcontroller 16 bit: review: Circuit Cellar: "Are You Up for 16 Bits? A look at Microchip's Family of 16-Bit Microcontrollers by Jeff Bachiochi 2007; example application: µWatch D-I-Y open source scientific calculator watch
- Freescale Microcontrollers
- The Zilog Z8 Series (Z8, Z8encore, Z8XP)
- Cypress PSoC Microcontroller
- Texas Instruments MSP430 microcontrollers 16 bit
- ARM Microprocessors ( ARM ) (this family includes the Philips LPC210x ARM microcontrollers, the
discontinued Intel w:StrongARM, Atmel AT91RM9200, and the Intel XScale microprocessors ) - x86 microprocessors
Contents |
[edit] brief selection guide
For many embedded systems, any of these microcontrollers would be more than adequate.
- TI MSP430 has the lowest power consumption. In sleep mode, 0.3 µW = 3 V * 0.1 µA. Some chips in 2xx and 4xx series include 12-bit DACs.
- The Cypress PSoC has more than one true analog output. Using sleep mode, power consumption as low as 21 µW = 5 V * 4.2 µA[1]. (You can get analog output from the other chips by using an external ADC, or by faking it with a PWM output and some low-pass filtering.) Most Cypress PSoC microcontrollers come in both DIP and SMT versions.
- Many of these series include microcontrollers with integrated 10 bit ADCs, but Atmel AVR 8 bit series (as of early 2006) had the lowest-price chip that included such an ADC, as well as another chip with the lowest cost/ADC. Most Atmel AVR 8 bit microcontrollers come in both DIP and SMT versions.
- If you need a very tiny chip, the Atmel AVR, PIC, and Freescale microcontroller lines all include tiny 8-pin SOIC microprocessors.
- If you want a 32 bit processor, some Philips ARM processors and Freescale Coldfire processors are now under $5 for one. (only comes in LQFP64 ?). The only (?) 32 bit processor currently being manufactured in a DIP package is the Parallax Propeller (w:Parallax Propeller) -- $13 for one.
- Many people and several commercial products run Linux on a XScale microprocessor or a Atmel AT91RM9200 (ARM core), without a heatsink or fan. Linux has also been ported to the Atmel AVR32 AP7 family [2] (only comes in a 208-pin VQFP). Linux has also been ported to Freescale 68k/ColdFire processors. I don't think Linux has been ported to any of the other processors mentioned above.
[edit] USB interface
- Main article: Serial Programming:USB Technical Manual
(FIXME: very incomplete)
[edit] standard PC as host, microcontroller as device
There are a variety of ways to connect a microcontroller to a USB host.
- Some microcontrollers (such as some 18x series PICmicro, 24x94 series (x = 7, 8, 9) PSoC and some Philips ARM microcontrollers) that have a built-in "Full Speed" USB device interface.
- practically all microcontrollers have a UART. You can add a USB adapter that interfaces between that UART and USB, such as some based on the CP2102 chip and some based on the FTDI chips. Most of these adapters are designed to have the microcontroller at the device end, and a PC on the host end. All these adapters are "Low speed" USB.
- Many microcontrollers (such as the Atmel ATmega16) can be programmed to be a Low speed USB device with a few external passive components [3].
[edit] microcontroller as host, connecting to some USB device
There are a variety of ways to connect a microcontroller to a USB device.
- practically all microcontrollers have a UART, and some USB adapters[4] [5] can be set up with a microcontroller as the host, and some USB device (a mouse, keyboard, or flash drive) on the device end.
[edit] microcontroller as both a device (connected to a standard PC) and a host (connected to one or more USB devices)
How ? ... USB on-the-go (OTG) defines a single socket that automatically switches between host and device ... for example, a camera with a single USB socket that acts as a device when plugged into a PC (for uploading photos), but acts like a host when plugged into a printer (for printing photos directly without a PC) ... [1] [2]
- The LUFA library allows the USB-enabled AVR microcontrollers to act as a USB Host, slave or OTG device.[6]
[edit] other details on USB
For more details on USB, see the Serial Programming:USB Technical Manual.
[edit] Further reading
- Once you've picked out a processor, you'll want to know Embedded Systems/Where To Buy it.
- Robotics: Single Board Computers discusses "processor modules" that include the CPU and a few support chips in a convenient package.
- Getting started with microcontrollers, part of the "Microcontroller Primer FAQ" by Russ Hersch
- microcontrollers for wireless sensor network devices
- "PIC vs. AVR" "OK, I know what you people want. You want ultimate fighting, embedded E.E. style. You want to know WHICH IS BETTER, PIC OR AVR?"
- CNCzone: "Microchip vs Atmel"

