Title: Microcontrollers
1Microcontrollers
Image courtesy of http//o.mneina.googlepages.com/
what_is_microcontroller.htm
- by David Gitz and Steve Warren
2What is a Microcontroller?
- What are the components of a microcontroller?
- What are the different kinds of controllers?
- What languages are used?
- How can systems be simulated?
- What kinds of applications are there?
- What resources are there?
3What is a Microcontroller?
- Lets start off by describing what a
microcontroller is not. The term
microcontroller denotes a completely different
concept than microprocessor and so the two are
not interchangeable. - A microprocessor is a processing unit which lacks
any memory persistence beyond its own registers
and which must be connected to other subsystems
to be of use in any application. - A microcontroller is a system of electronic
devices which always includes at least one
microprocessor and the data structures necessary
to persist memory across specific periods of time
and under specific conditions. It is a
fully-functional unit which can be programmed to
perform specific tasks under the limits of its
operating parameters.
4What are the Components of a Microcontroller?
- Microcontrollers are complex devices with many
functionalities provided by different subsystems
within the provided package. The following
subsystems are present amongst almost all
microcontrollers - I/O ports/pins
- Program memory
- Data memory
- CPU (ALU Registers)
- Internal Clock Generator
5What are the Components of a Microcontroller?
(cont.)
- Some of the optional subsystems which may be
found in a microcontroller include - Analog-to-Digital Channels (A/D)
- Timers
- Capture/Compare Modules
- Serial Synchronous Ports
- Addressable USART
- Others
6What are the Different Kinds of Controllers?
- PIC Microcontrollers
- Parallax Propeller
- FPGA
- Including cRIO
- x86
7Comparison of Controllers
- PIC Microcontroller (C language)
- Many libraries built and for general use.
- Most commonly used.
- Usually, internal registers must be modified to
perform various functions. (i.e. A/D, Timing,
PWM). - Expensive hardware usually required for
programming. Field programming generally not
practical. - Very cheap (5)
8Comparison of Controllers (cont.)
- Parallax Propeller (SPIN Language)
- Multi-Core Controller
- Some good libraries built, general use
- Language is a variant of C
- Very easy to load program
- Limited memory
- Able to program in the field
- Fairly cheap (75)
9Comparison of Controllers (cont.)
- FPGA (vHDL or Verilog)
- More complicated language
- Not a whole lot of libraries available.
- Multi-thread operations
- Very applicable for digital processing
- Program Loading is fairly easy and are designed
for programming in the field. - Fairly cheap (100)
10Comparison of Controllers (cont.)
- cRIO FPGA (LabView)
- Has an FPGA internal. No requirement for
programming HDL and not much requirement for
understanding hardware constraints - Program Loading is somewhat difficult
- Graphical Language is very easy to learn and able
to perform very complex functions easily - Physical Device is much larger than others
- Extensive libraries available
- Much more expensive (gt 4000)
11Comparison of Controllers (cont.)
12What Languages Are Used?
- C/C
- Assembly (depending on processor)
- Propeller
- Propeller Assembly
- Propeller SPIN
- BASIC (for BASIC Stamp)
- FPGA
- VHDL or Verilog
- LabView
13How Can Systems Be Simulated?
- Propeller
- GEAR
- Propellent
- PIC
- MPLAB IDE
- FPGA
- Xlinx
- cRIO
- LabView
- X86
- Emu86
14What Kinds of Applications Are There?
- Data Acquisition
- Remote Monitoring
- Industrial Automation
- Automotive
- Robotics
- Image Processing
15What Resources Are There?
- Propeller/SPIN
- www.parallax.com
- cRIO/LabView
- www.ni.com/support
- FPGA
- PIC/C
- x86
16Conclusion
- Different Controllers are optimal depending on
their intended use, although there is a large
gray area where one is definitively better than
the other. Usually this is decided by other
constraints, such as what is available and the
operating budget.
17Example Code
18Example Code
19Example Code
20Example Code