Embedded Systems/Particular Microprocessors

From Wikibooks, the open-content textbooks collection

Jump to: navigation, search

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:

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



 

Personal tools
Create a book