 | Microcontroller: Encyclopedia - Microcontroller
Microcontroller
A microcontroller is a computer-on-a-chip used to control electronic devices. It is a type of microprocessor emphasizing self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor, the kind used in a PC. A typical microcontroller contains all the memory and I/O interfaces needed, whereas a general purpose microprocessor requires additional chips to provide these necessary functions.
Microcontrollers are a component in many kinds of electronic equipment (see embedded system). They are the vast majority of all processor chips sold. Over 50% are "simple" controllers, and another 20% are more specialized digital signal processors (DSPs). A typical home in the Western world is likely to have only one or two general-purpose microprocessors but somewhere between one and two dozen microcontrollers. They can be found in almost any electrical device, washing machines, microwave ovens, telephones etc.
Microcontroller - Description
Most microcontrollers today are based on the Harvard architecture, which clearly defined the four basic components required for an embedded system. These include a CPU core, memory for the program (ROM or Flash memory), memory for data (RAM), one or more timers (customisable ones and watchdog timers), as well as I/O lines to communicate with external peripherals and complementary resources — all this in a single integrated circuit. A microcontroller differs from a general-purpose CPU chip in that the former generally is quite easy to make into a working computer, with a minimum of external support chips. The idea is that the microcontroller will be placed in the device to control, hooked up to power and any information it needs, and that's that.
A traditional microprocessor won't allow you to do this. It requires all of these tasks to be handled by other chips. For example, some number of RAM memory chips must be added. The amount of memory provided is more flexible in the traditional approach, but at least a few external memory chips must be provided, and additionally requires that many connections must be made to pass the data back and forth to them.
For instance, a typical microcontroller will have a built in clock generator and a small amount of RAM and ROM (or EPROM or EEPROM), meaning that to make it work, all that is needed is some control software and a timing crystal (though some even have internal RC clocks). Microcontrollers will also usually have a variety of input/output devices, such as analog-to-digital converters, timers, UARTs or specialised serial communications interfaces like I²C, Serial Peripheral Interface and Controller Area Network. Often these integrated devices can be controlled by specialised processor instructions.
Originally, microcontrollers were only programmed in assembly language, or later in C code. Recent microcontrollers integrated with on-chip debug ciruit accessed by In-circuit emulator via JTAG enables a programmer to debug the software of an embedded system with a debugger.
More recently, however, some microcontrollers have begun to include a built-in high-level programming language interpreter for greater ease of use. BASIC is a common choice, and is used in the popular BASIC Stamp MCUs.
Microcontrollers trade away speed and flexibility to gain ease of equipment design and low cost. There's only so much room on the chip to include functionality, so for every I/O device or memory increase the microcontroller includes, some other circuitry has to be removed. Finally, it must be mentioned that some microcontroller architectures are available from many different vendors in so many varieties that they could rightly belong to a category of their own. Chief among these are the 8051 and Z80 derivatives.
In-circuit emulator (ICE), Microbotics, Contiki – A small-footprint open source, yet fully featured, operating system developed for use on a number of smallish systems ranging from 8-bit computers to embedded microcontrollers
Microcontroller - Common microcontrollers
Microcontroller - AMCC
Until May 2004, these µCs were developed and marketed by IBM, whose 4xx family was sold to Applied Micro Circuits Corporation.
- 405 PowerPC CPU
- PPC 405EP
- PPC 405GP/CR
- PPC 405GPr
- PPC NPe405H/L
- 440 PowerPC Book-E CPU
- PPC 440GP
- PPC 440GX
- PPC 440EP/EPx/GRx
- PPC 440SP/SPe
Microcontroller - Atmel
- Atmel AT91 series (ARM THUMB architecture)
- AT90, Tiny & Mega series – AVR (Atmel Norwegian design)
- Atmel AT89 series (Intel 8051/MCS51 architecture)
- MARC4
Microcontroller - Cypress MicroSystems
Microcontroller - Freescale Semiconductor
Until 2004, these µCs were developed and marketed by Motorola, whose semiconductor division was spun-off to establish Freescale.
- 8-bit
- 68HC05 (CPU05)
- 68HC08 (CPU08)
- 68HC11 (CPU11)
- 16-bit
- 68HC12 (CPU12)
- 68HC16 (CPU16)
- Freescale DSP56800 (DSPcontroller)
- 32-bit
- Freescale 683XX (CPU32)
- MPC500
- MPC 860 (PowerQUICC)
- MPC 8240/8250 (PowerQUICC II)
- MPC 8540/8555/8560 (PowerQUICC III)
Microcontroller - Fujitsu
- F²MC Family (8/16 bit)
- FR Family (32 bit)
- FR-V Family (32 bit RISC)
Microcontroller - Holtek
Microcontroller - Intel
- 8-bit
- MCS-48 (8048 family – also incl. 8035, 8038, 8039, 8040, 8X42, 8X49, 8050; X=0 or 7)
- MCS-51 (8051 family – also incl. 8X31, 8X32, 8X52; X=0, 3, or 7)
- 8xC251
- 16-bit
- 80186/80188
- MCS-96 (8096 family – also incl. 8061)
- MXS296
- 32-bit
- 80386EX (i386EX)
- 80960 (i960)
Microcontroller - Microchip
- 12-bit instruction PIC
- 14-bit instruction PIC
- 16-bit instruction PIC
Microcontroller - National Semiconductor
Microcontroller - NEC
Microcontroller - Philips Semiconductors
Microcontroller - Renesas Tech. Corp.
(Renesas is a joint venture of Hitachi and Mitsubishi.)
Microcontroller - STMicroelectronics
Microcontroller - Texas Instruments
Microcontroller - Toshiba
- TLCS-870 (8-bit CISC)
- TLCS-900 (16 and 32-bit CISC)
- TX19A (32-bit RISC)
Microcontroller - Western Design Center
Microcontroller - Ubicom
- SX-20 SX-28, SX-48, SX-52
- Ubicom's SX series is an 8 bit microcontroller which has unusually high speed, up to 75Mhz (75 MIPS), and a high degree of flexibility. Some users have referred to these microcontrollers as PICs on steroids. While Ubicom's SX micros are limited in variety, their high speed and additional resources allow programmers to create 'virtual devices' as required. Refer to Parallax's Web site for information, as they are the main distributor of these devices.
- IP2022
- Ubicom's IP2022 is a high performance (120 MIPs) 8 bit microcontroller. Features include: 64k FLASH code memory, 16k PRAM (fast code and packet buffering), 4k data memory, 8-channel A/D, various timers, and on-chip support for Ethernet, USB, UART, SPI and GPSI interfaces.
- IP3022
- IP3022 is Ubicom's latest high performance 32bit processor running at 250Mhz featuring 8 hardware threads. It is specifically targeted at Wireless Routers.
Microcontroller - Xilinx
- Microblaze softcore 32 bit microcontroller
- Picoblaze softcore 8 bit microcontroller
Microcontroller - ZiLOG
Microcontroller - ...And endless BASIC programmed MCUs
For almost every bare microcontroller manufacturer, there are a dozen little companies repacking them into a more hobbyist friendly package. Their product is often an MCU preloaded with a BASIC interpreter, soldered onto a Dual Inline Pin board along with a power regulator and other goodies. PICs seem to be very popular here, possibly due to good static protection. More powerful examples (e.g. faster execution, more RAM and code space) seem to be based on Atmel AVR or Hitachi chips.
- BASIC Stamp. The Big Name in BASIC microcontrollers. Several different modules are available of varying processing speeds, RAM, and EEPROM sizes. Most popular is the original BASIC Stamp 2 module. The BASIC Stamp is used by Parallax as a platform for introductory programming and robotic kits.
- SX-Key. Parallax's development tool for the SX line of microcontrollers, supporting every SX chip commercially available. Using free SX-Key software (Assembly language), or the SX/B Compiler (BASIC-style language) from Parallax, the SX-Key programming tool can program SX chips in-system and perform in-circuit souce-level debugging.
This author's favorite. They're cheap, nothing more than a PIC with BASIC loaded. A programmer is simply a serial plug with 3 resistors. Their BASIC offers great functionality hampered by limited variables and IF..GOTO.
The ZX series MCUs are based on the Atmel ATmega32 processor and run a Virtual Machine that features built-in multi-tasking, 32-bit floating point math and over 1K of RAM for user's programs. Multi-tasking facilitates a more structured approach to coding for interface devices that require prompt service, e.g. serial devices, infrared remotes, etc.
The programming language for the ZX series is ZBasic, a modern dialect of Basic modeled after Microsoft's Visual Basic. The biggest improvement over the typical MCU Basic dialect is parameterized subroutines/functions that support local variables. Strong type checking is another improvement that aids in writing correct programs more quickly.
Comfile produce a series of microcontrollers, branded as Cubloc, using the Atmel ATmega128 processor. They are very price competitive, being aimed at industrial applications, and include some nice features such as Ladder Logic in addition to BASIC, a huge 80Kbyte program memory, and hardware pulse width modulation.
See also
- In-circuit emulator (ICE)
- Microbotics
- Contiki – A small-footprint open source, yet fully featured, operating system developed for use on a number of smallish systems ranging from 8-bit computers to embedded microcontrollers
Other related archives16-bit, 2004, 32-bit, 68HC11, 68HC12, 8-bit, 80186, 80188, 80386EX, 8051, 8061, 80960, ARM, AT90, Tiny & Mega series – AVR, Atmel, Atmel AT89 series, BASIC, BASIC Stamp, C, COP8, CPU, CR16, Contiki, Controller Area Network, Cypress MicroSystems, EEPROM, EPROM, FR-V, Flash memory, Freescale 683XX, Freescale DSP56800, Freescale Semiconductor, Fujitsu, H8, Harvard architecture, Hitachi, I/O, IBM, In-circuit emulator, In-circuit emulator (ICE), Intel, Intel 8051/MCS51, I²C, JTAG, LPC2000, M16C, M32R, MCS-48, MCS-51, MSP430, May 2004, Microblaze, Microbotics, Microchip, Mitsubishi, Motorola, NEC, National Semiconductor, PC, PIC, PIC16F84, Philips Semiconductors, Picoblaze, RAM, RC, ROM, Renesas Tech. Corp., SH, STMicroelectronics, Serial Peripheral Interface, Texas Instruments, Toshiba, UARTs, V850, W65816, W65C02, Western Design Center, Western world, Xilinx, Z8, Z80, ZiLOG, analog-to-digital converters, assembly language, chip, clock generator, computer, debugger, digital signal processors (DSPs), electronic equipment, embedded system, high-level programming language, input/output, integrated circuit, interpreter, memory, microprocessor, microwave ovens, open source, serial communications, telephones, timing crystal, washing machines, watchdog timers
 Adapted from the Wikipedia article "Microcontroller", under the G.N U Free Docmentation License. Please also see http://en.wikipedia.org/wiki |