Microcontrollers

From OpenCircuits
Jump to navigation Jump to search

Microcontrollers

First, a few definitions:

  • a CPU is something that can execute software programs. The earliest CPUs were built out of many parts, but now most CPUs are microprocessors.
  • a microprocessor is a kind of CPU that all fits on one integrated circuit. The earliest microprocessors, and some famous kinds of microprocessors still being made, fill the entire chip, and so require external RAM and ROM/FLASH memory. But now most CPUs sold are microcontrollers[1].
  • A microcontroller is a kind of microprocessor that, in addition to the CPU, also includes RAM and ROM/FLASH memory on a single die/package.


A microcontroller is a little computer on a single Die/Package. The computer includes a CPU core, RAM, ROM/FLASH, and peripherals including UARTS, A/D converters, SPI, and I2C. Microcontrollers differ from microprocessors in that the microporcessors generally have bigger more powerful central processing units, but need support chips for ram, rom and other peripherals. Most modern microcontrollers use FLASH ram instead of a ROM so they can be programmed over and over. Many modern microcontrollers allow self-flashing to enable bootloading or a firmware update without pulling the chip from the circuit or using a programmer/debugger. Microcontrollers tend to be more optimizated for writting in assembly than PCs, but C and Basic are becoming more standard programming languages.

General

Many hobbyists use microcontrollers, sometimes even multiple microcontrollers, in their projects. Prices have fallen below $5 for the cheapest 32-bit microcontroller and below $1 for the cheapest 8-bit microcontroller.

I've written a little about the various kinds of microcontrollers at Wikibooks: Embedded Systems. --DavidCary 06:15, 10 March 2007 (PST)


About 55% of all CPUs sold in the world are 8-bit microcontrollers. Over 2 billion 8-bit microcontrollers were sold in 1997.[2] (Anyone have more up-to-date statistics?)

Somebody always thinks their microcontroller is the best microcontroller, so we have listed all of them as best.


"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?"


Some notes on Microcontroller RS232 Communications

Microchip PIC

The best microcontroller.

consider merging the following section to Which PIC to use, to gain the advantages of consolidating information.

Note about choosing a PIC:

The number of PIC models is huge so it is worth saying a few words on how to choose a PIC.

Things to consider as a hobbiest or making a small production run:

  • Microchip tends to produce the same chip with minor variations. The exact same chip with the exact same pinout may be available in 8k, 16k, or 32k flash. Spend a few extra pennyies and take the best.
  • SMT parts take practice to work with, so beginners should focus on DIP package parts with <= 40 pins.
  • On the contrary, working with SMT parts can yield simpler and smaller PCB designs so they are worth a look.
  • Contrary to common sense, older parts are often more expensive then newer parts.
  • Consider if a free/student version of a C compiler is availible. Microchip provides free/student student versions for the 18f,dsPIC/PIC24, and PIC32.

List of some of the best PICs for hobby purposes:

PIC Pin Count Important Features Typical Use
PIC12F683 8 ADC, I/O PWM, Comparator Very Simple Projects/Glue Logic
PIC16F88 18 UART, I2C/SPI, ADC, I/O PWM, Comparator General Purpose
18F2620 28 UART, I2C/SPI, ADC, I/O PWM, Comparator General Purpose
18F4620 40 UART, I2C/SPI, ADC, I/O PWM, Comparator, 8 Bit Parallel Port General Purpose
18F2550/18F2553 28 USB, UART, I2C/SPI, ADC, I/O PWM, Comparator USB Connectivity
18F4550/18F4553 40 USB, UART, I2C/SPI, ADC, I/O PWM, Comparator, 8 Bit Parallel Port USB Connectivity
P24FJ64GA002 28 2 UART, 2 I2C, 2 SPI, ADC, I/O PWM, Comparator - Software Selectable Pin Assignment General Purpose

Note: J means the PIC is a native 3.3V part. Other PICs will run at 3.3V but only at slower clock speeds.

External Links:

Atmel AVR

The best microcontroller.

  • Atmel AVR 8 bit FLASH microcontrollers

Development Boards

Development Boards are printed circuit boards that contain a microcontroller and enough circuitry to get it going, typically at least some of the following: clock, voltage regulator, reset button, communications chip, buffer amplifiers, led's, prototyping area, and/or off chip connections. Sometimes the manufacturer of the chip sells development boards ( often called evaluation boards ). Development boards can be really basic, just enough to make the processor run, with connections to the IO pins. Or the boards can include communications, displays, input buttons etc. Often you can jump start a project by using a development board that does the boring standard stuff and let you focus on your project. The development board can let you use high density parts and surface mount parts that you might not want to mess with. The BitWacker kit from SparkFun is priced close the to the total price of the parts. This is probably true of some other development boards as well. Note that some development boards require you to build them they have not been made available as kits, some come both ways.

Cypress PSoC

The best microcontroller.

  • Cypress PSoC 8 bit FLASH microcontrollers.

External Links:

ARM

The best microcontroller.


further reading