![]() |
| Home > Electronics and Technology > microcontroller-faq > |
Embedded Processor and Microcontroller primer and FAQ |
Section 1 of 6 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6
Archive-name: microcontroller-faq/primer
Posting-Frequency: monthly
Last-modified: September 11, 1997
This article is a primer and general FAQ about embedded processors and
microcontrollers. Included is a collection of information sources.
The following topics are addressed:
0) Rantings and ravings (to make the FAQ zero-based)
1) ABOUT THIS FAQ
1.1) Who put this FAQ together?
1.2) How can I contribute to this FAQ?
1.3) What newsgroups will this FAQ be posted to?
1.4) May I distribute this FAQ or post it somewhere else?
2) MICROCONTROLLERS
2.1) What is a Microcontroller?
2.2) Applications
2.3) Flavors
3) THE MICROCONTROLLER MARKET
3.1) Shipments
3.2) Industrial applications
3.3) Deciding whose microcontroller to use
3.4) The players
4) MICROCONTROLLER FEATURES
4.1) Fabrication techniques
4.2) Architectural features
4.3) Advanced Memory options
4.4) Power Management and Low Voltage
4.5) I/O
4.6) Interrupts
4.7) Special microcontroller features
5) SOME POPULAR MICROCONTROLLERS
6) GETTING STARTED WITH MICROCONTROLLERS
6.1) Evaluation Kits/Boards
6.2) Easy chips to use
6.3) Software (cheap and easy)
7) MICROCONTROLLER PROGRAMMING LANGUAGES
7.1) Machine/Assembly language
7.2) Interpreters
7.3) Compilers
7.4) Fuzzy Logic and Neural Networks
8) DEVELOPMENT TOOLS
8.1) Simulators
8.2) Resident Debuggers
8.3) Emulators
8.4) Good Stereo System
9) FINDING OUT MORE ABOUT MICROCONTROLLERS
9.1) Books
9.2) Data and Reference Books
9.3) Periodicals
9.4) USENET newsgroups
9.5) Internet sources of information on specific microcontrollers
10) MICROCONTROLLER FREE SOFTWARE SOURCES
10.1) FTP sites
10.2) WEB pages
10.2) BBSs
10.3) Mailing lists
11) SOURCES FOR PARTS
0) Rantings and ravings
Disclaimer: Just so it is understood, the "rantings and ravings" are
my rantings and ravings. My readers are refined and sophisticated
and would never rant or rave. I, on the other hand, sit in front of
the TV in torn underwear and drink beer out of the bottle.
=====> OK, I know this FAQ is long. Very long. Well... it's
ridiculously long. If you are inconvenienced or strenuously object to
the posting of this FAQ, please DON'T FLAME me or send me nasty mail.
Just think what I have to go through. This FAQ takes a lot of my
time, of which I have very little to spare. I'm open for suggestions.
I've considered the following:
- splitting it up into smaller parts
- eliminating certain sections which may no longer be relevant -
the web and search engines certainly seem to make a lot of this
FAQ obsolete (or am I mistaken on this?)
- not posting it to the newsgroups and just turning this
whole mess into a [large] web page (the problem with this
is that I don't have a web site)
- forgetting about it all together and reminding my kids that I'm
their father (if you all tell me to go packing, I'll gladly
fold up shop and devote more time to family, friends, and
personal hygiene)
I would be happy to hear ideas on how this FAQ could be improved for
the reader. If it makes MY job easier, then that's even better.
OK, with that out of the way, let's get on with it...
Techno-Wimp, has announced the next generation of their wildly
successful MIL (Mother-In-Law) transducer. Dubbed the MIL-II, it now
includes Techno-Wimp's proprietary new breakthrough technology, MMX
(Mad Mother-in-law Extensions). Utilizing patented heuristic
algorithms, the MIL-II achieves a remarkable performance rating of 15
million MIPS (Mother-In-law Periphery Scans) per second. The
previous WOMF ("Whoa, outta my face!") technology has been updated
and improved, and together with MMX permits the MIL-II to
concurrently detect multiple stimuli. This provides the designer with
the necessary safety margin when using the MIL-II in mission critical
applications.
The MIL-II is implemented in Techno-Wimp's patented new fabrication
technique, 0.25 micron JMOS (Jello Mold On Silicon). The MIL-II also
features a new packaging technique called PSC/CEC (Plastic Slip
Covers with Card Edge Connector). PSC/CEC was designed to allow easy
upgrading to future products in the MIL transducer line.
I hate it when I'm stupid, and well, I really did it this time. I
omitted an important source of information - EDN magazine. Always
full of timely features, important design articles, and the popular
Design Ideas column. In addition, the 24th edition of the EDN
microprocessor directory is due out this fall. This directory is an
invaluable aid for designers. The EDN web site also has a lot of
important information and software, and is improving all the time.
Worth taking a look at: http://www.ednmag.com/
UMPS (Universal Microcontroller Program Simulator) is a new package
from Virtual Micro Design in France. It simulates the following
microcontrollers: 8051, 68HC705, PIC, ST62xx, and the 68HC11. The
main feature of UMPS is the ability to build a virtual
microcontroller board on screen by connecting various virtual
resources (switches, LEDs, displays, A/D, D/A, I2C devices, logic
functions, etc.) together with the desired processor. Then when
debugging your software, you can see "real results" without having to
worry about actually building the hardware.
Processors that are not supported can be added by the user using
Virtual Micro Design's toolkit. Additional virtual resources can be
added by writing your own DLL to support the desired device.
UMPS includes an integrated assembler/disassembler and debugger,
extensive documentation on the supported processors.
This is a very slick package. The English needs a lot of work, but
the software itself is first class, easy to use, and incredibly
powerful. For more information:
Virtual Micro Design
I.D.L.S.
Technopole Izarbel
64210 BIDART
FRANCE
++33-559-438-458 Fax: ++33-559-438-401
Email: p.techer@idls.izarbel.tm.fr
If you'd like to start learning about microcontrollers, but the
thought of finding all the parts and then building one scares you,
take a look at the line of boards available from American Educational
Systems. They have three boards: AES-51 (8051), AES-11 (68hc11), and
AES-88 (8088). All three boards are built along the same lines and
include RAM, ROM, LCD display, keypad, A/D, serial ports, digital I/O
ports, and logic probe. Also included is a full bookshelf of
documentation. These boards are ridiculously easy to use and program
- you can get started experimenting right away.
This is a perfect system for students and hobbyists. Even
professionals will find this system useful as a prototyping tool and
test bed. Highly recommended.
For more information, contact:
American Educational Systems
970 West 17th St.
Santa Ana, CA 92706 USA
(800)730-3232 or (714)550-8094 Fax: (714)550-9941
Check out Peter H. Anderson's web site. Lots of good microcontroller
interfacing ideas and plans, PIC projects, and miscellaneous
electronics.
http://www.access.digex.net/~pha
Barry Kauler, of GOOFEE fame, has done it again. He's written another
RTOS, called CREEM. (He must stay up weeks thinking up names for this
stuff. The names probably come to him in nightmares.) As hes says
about this new system, "It's very unusual and very easy to use. It is
probably the easiest way yet that anyone has come up with to do
concurrent (multitasking) programming on a microcontroller." The
first version is for the 8051 and is only 560 bytes and will run in a
chip with only the internal RAM.
Read the intro page and download CREEM (with source code) from the
GOOFEE web site:
http://www.goofee.com/creem.htm
Point your browser at http://www.debco.com/ and take a look at what
the gang at Debco has to offer. Lots of parts, kits, and assorted
computer hardware. The best part is the series of Electronic
Experimentors Journals that they've made available on-line. Chock
full of project plans, ham radio topics (antennas and QRP), and
computer questions and answers, these on-line journals are (IMHO) one
of the highlights of the web. The gang at Debco should be commended.
Recommended reading.
Michael Dolinsky, Ph.D. and his team at Scaryna's Gomel State
University in Belarus, have been doing research in embedded systems
development tools. This research proposes methods, tools, and
application results for integrated design of embedded
hardware-software systems. Methods include tuning on selected
hardware and designing hardware in parallel with the software.
For information on this research, entitled, "High-Level Design Of
Embedded Hardware-Software Systems", check out the following web
sites:
http://alcatraz.gmd.de:9422/castle/inter/inter.htm
http://www.internet.no/kennethi/belarus/companies/sprl/
Their Inter Demo Version is available by anonymous ftp at:
borneo.gmd.de (129.26.12.20)
cd pub/SYDIS/inter
Microtec announces a new quarterly newsletter, "Newbits" as a forum
for their customers to share ideas:
http://www.mri.com/newbits/newbits.html
Take a peak at Magnus Danielson's collection of CPU stuff at:
http://www.it.kth.se/~e93_mda/electronics/logic/cpu/
Good news... After reading about the 1 bit powerhouse (MC14500) in
this FAQ, Christian Brunschen checked out Motorola's web site. "lo
and behold I found,at
, a
document called 'Commercial Components' with a remark 'Effective
date: July 5, 1997'. On page 5 (of 10) there is a line stating
MC14500BCP CMOS 1-BIT ICU
plus some codes, stating that this was a Proprietary device, part of
something called the 'Phoenix Program', and that the $200 order
minimum was waived -- but nothing about it being out of production.
Rather, the'effective date' of july 5, 1997, would indicate that the
chip is actually being produced as I am writing this. Also, the
'Phoenix Program' sounds like it could be some sort of 'let's revive
some chips which we took out or production, just because' (Phoenix
was the bird who died by fire every evening, and reborn from the
ashes in the morning, if I recall correctly), so this could very well
mean that production of this chip has been reinstated. Alas, I have
not been able to find out any more info on Motorola's site as to what
this 'Phoenix Program'_actually_ is."
And you won't believe this, but Scott Finneran ALSO wrote about the
14500. Looks like we'll have to start a USENET newsgroup on this
chip.
Scott writes...
"The Motorolla 14500 is alive and well down-under. I recently (about
a year ago) performed some contract work for an Australian power
station called Loy-Yang 'B'. They have a system manufactured in the
early 1980's consisting of amongst other things hundreds of modules
containing 14500 processors. These little beasts run at a whopping
speed of 1KHz (liquid nitrogen coolant system was not necessary!!)
and are used to control the start-up sequencing logic for firing up
the power station boilers and turbines. The processor module in this
system contained three 4-bit EPROMs in parallel (the early PICs were
12-bit I believe... spooky!). The first EPROM contained the op-code
for the processor while the other two contained an 8-bit operand.
Note: the operand was never fed into the processor (remember it is a
single bit device) but directly out onto a parallel bus to select
from a variety of digital inputs and outputs whose value was fed into
the 1-bit data-bus of the processor.
"My work involved reverse engineering their compiler to run on an
MS-DOS platform. The "language" was basically boolean logic equations
with little features such as software based flip-flops and hardware
based timers. The compiler produced 14500 assembly language which was
fed into the assembler that I also wrote as part of the package. With
only sixteen instructions and 1 addressing mode, the assembler wasn't
exactly a lot of work to produce.
The system (and my compiler) are still in use today. The only
problems are apparently the occasional timing capacitor goes dry in
the 1KHz clock generator circuit (yes it's a 555)."
Well, let's all scrap our '51 and hc11 projects and move to the
14500. Looks like we've got a trend here. Who knows, maybe Motorola
will release a new generation 2-bit version? :-))
Embedded.com is the on-line union of three embedded information
sources, Embedded Systems Programming Magazine, Miller Freeman
Directories, and the Embedded Systems Conferences. There is no charge
to users of this site, which contains hands-on articles, editorials,
and code downloads.
http://www.embedded.com
Vasu Srinivasan recommends the book "Using the M68HC11
Microcontroller: A Guide to Interfacing and Programming" from
Prentice-Hall. He says this book is useful if you're considering
using the 68HC11EVB. See section 9.1 in this FAQ more information on
this book.
Take care of yourselves,
Uncle Russ
1) ABOUT THIS FAQ
1.1) Who put this FAQ together?
From time to time, general questions about microcontrollers and
embedded processors (from beginners to experienced designers) pop up
in the newsgroups. It seemed that a general primer/FAQ might be
useful.
Much of this document could be considered as a sort of a primer on
microcontrollers, with some material on embedded processors being
slowly added. For those of you with previous experience, sections 9
and 10 might be of special interest (especially for those of you
looking for that elusive "free COBOL compiler for the 1802").
1.2) How can I contribute to this list?
I please ask that if you have any suggestions or additions, or you
would like to correct any of the information contained herein, please
send me a note.
My Email address is: russ@shani.net
My Smail address is:
Russ Hersch
HaVradim 11
Ginot Shomron
ISRAEL
Thanks to recent contributors:
Magnus Danielson
Marius Gafen (NSI, Israel)
Michael Dolinsky, Ph.D. (Scaryna's Gomel State University,
Belarus)
Barry Kauler (the GOOFEE guy)
Christian Brunschen
Michael Markowitz (EDN magazine)
Mark Meyer (American Educational Systems)
Philippe Techer (Virtual Micro Design)
Thomas Vegeby
Ron Fredericks (editor, Software Forum Newsletter)
Leticia Smith (webmaster, embedded.com)
Bo Eriksson (Uppsala University, Sweden)
Henry Spencer
Mihai-Costin Manolescu
Vasu Srinivasan
Scott Finneran
Tarjei T. Jensen
John Doe (Techno-Wimp)
Very special thanks to Robin L. Getz (National Semiconductor) who
probably could be considered an honorary co-author of this FAQ. :-)
Also, thanks to those who have posted questions and to those who have
posted answers. Thanks to "all my net friends" who send suggestions
and encouragement, as well as the occasional question. Special
thanks to my mother-in-law, who thankfully doesn't know this FAQ
exists ;-).
1.3) What newsgroups will this FAQ be posted to?
This FAQ will be posted to the following newsgroups:
comp.arch.embedded
comp.robotics.misc
comp.realtime
sci.electronics.design
alt.comp.hardware.homebuilt
comp.answers
sci.answers
alt.answers
news.answers
I will post once a month - on or about the 26th of each month.
1.4) May I distribute this FAQ or post it somewhere else?
I am putting no restrictions on the use of this FAQ except - It must
be distributed in its entirety with the copyright notice, and no
financial gain may be realized from it. After all, I have spent, and
continue to spend, a lot of time on this.
For this reason I have appended a copyright statement to the end of
this FAQ. I feel pretty silly doing this, but I just want to protect
myself. The copyright does not limit the use of this list for
noncommercial purposes. I hereby give my permission to one and all
to pass this list around and post it wherever you want - as long as
it is not for financial gain.
Thank you.
2) MICROCONTROLLERS AND EMBEDDED PROCESSORS
2.1) What is a Microcontroller?
A controller is used to control (makes sense!) some process or aspect
of the environment. A typical microcontroller application is the
monitoring of my house. As the temperature rises, the controller
causes the windows to open. If the temperature goes above a certain
threshold, the air conditioner is activated. If the system detects
my mother-in-law approaching, the doors are locked and the windows
barred. In addition, upon detecting that my computer is turned on,
the stereo turns on at a deafening volume (for more on this, see the
section on development tools).
At one time, controllers were built exclusively from logic
components, and were usually large, heavy boxes (before this, they
were even bigger, more complex analog monstrosities). Later on,
microprocessors were used and the entire controller could fit on a
small circuit board. This is still common - you can find many [good]
controllers powered by one of the many common microprocessors
(including Zilog Z80, Intel 8088, Motorola 6809, and others).
As the process of miniaturization continued, all of the components
needed for a controller were built right onto one chip. A one chip
computer, or microcontroller was born. A microcontroller is a highly
integrated chip which includes, on one chip, all or most of the parts
needed for a controller. The microcontroller could be called a
"one-chip solution". It typically includes:
CPU (central processing unit)
RAM (Random Access Memory)
EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
I/O (input/output) - serial and parallel
timers
interrupt controller
By only including the features specific to the task (control), cost
is relatively low. A typical microcontroller has bit manipulation
instructions, easy and direct access to I/O (input/output), and quick
and efficient interrupt processing. Microcontrollers are a "one-chip
solution" which drastically reduces parts count and design costs.
2.2) What is an embedded controller?
Hah! Why not ask an easy question like "Did Adam have a navel?" or
"Did Eve?"
Simply (and naively stated) an embedded controller is a controller
that is embedded in a greater system. A rigid definition is
difficult if not impossible to formulate, since the usual response is
"most embedded controllers are...". The problem here is "most". We
can't seem to shake that word from the definition. No matter how
clever you feel your definition is, some wiseguy will come along and
find an exception, or two, or 50.
You COULD say that an embedded controller is a controller (or
computer) that is embedded into some device for some purpose other
than to provide general purpose computing. Of course, someone will
eventually prove you wrong, but who cares?
A common example of a general purpose computer, would be a typical PC
clone. The x86 processor in this machine can't really be considered
an embedded controller, since the machine is typically used for
general purpose computing. However, what is general purpose
computing? Take this same PC clone, turn it into a multi-media
machine, and voila! You have an appliance - much on the order of a
microwave oven or television. Is the x86 processor now considered an
embedded controller Or, is the PC clone itself now considered an
embedded controller, controlling the multi-media peripherals? Hey -
I don't know about you, but I'm getting too old for this nonsense.
Is a microcontroller an embedded processor? Is an embedded processor
a microcontroller? What's the difference between an embedded
processor and a microcontroller? Well, today - not much. With the
continuing process of high scale integration continuing at a dizzying
pace, many standard architecture processors are turning up as
microcontrollers. A few such examples are the Motorola 68EC300,
Intel 386 EX, and the IBM PowerPC 403GB. These chips could be called
super-microcontrollers.
So, what's the difference between an embedded processor and a
microcontroller? I wouldn't touch that question with a ten foot
logic probe.
We might be safe by stating that an embedded processor controls
something (for example controlling a device such as a microwave oven,
car braking system, or a cruise missile). Is this always true?
Maybe. Maybe not. You know, it just doesn't end.
The main thing is not to get to hung up on precise definitions.
Black and white? Hell no, we've got grey scale, dithering,
diffusion, you name it! Same thing goes here with embedded
controllers, just go with the flow. It all depends on your point of
view.
Alright, if you really must insist, we'll take a stab at defining
what an embedded controller is - realize however that there will be
many exceptions. Embedded controllers adhere to a philosophy similar
to that of microcontrollers, high integration. By including [many]
features necessary for the task at hand, an embedded controller
(processor) can be a powerful yet cost effective solution. However,
where a microcontroller [almost by definition] is a computer on a
chip, an embedded controller might need external components before it
is considered a "computer." This is especially true regarding RAM.
Since including large amounts of RAM (megabytes) on a processor is
not really practical (due to cost and available silicon real estate)
and because many embedded controllers are real powerhouses requiring
large amounts of RAM, the RAM is often external to the processor.
2.3) Applications
In addition to the above home monitoring system, embedded processors
and microcontrollers are frequently found in: appliances (microwave
oven, refrigerators, television and VCRs, stereos), computers and
computer equipment (laser printers, modems, disk drives), automobiles
(engine control, diagnostics, climate control), environmental control
(greenhouse, factory, home), instrumentation, aerospace, and
thousands of other uses. In many items, more than one processor can
be found.
Microcontrollers are typically used where processing power isn't so
important. Although some of you out there might find a microwave
oven controlled by a Unix system an attractive idea, controlling a
microwave oven is easily accomplished with the smallest of
microcontrollers. On the other hand, if you're putting together a
cruise missile to solve the problem of your neighbor's dog barking at
3 in the morning, you'll probably need to use processors with a bit
more computing power.
Embedded processors and microcontrollers are used extensively in
robotics. In this application, many specific tasks might be
distributed among a large number of controllers in one system.
Communications between each controller and a central, possibly more
powerful controller (or micro/mini/mainframe) would enable
information to be processed by the central computer, or to be passed
around to other controllers in the system.
A special application that microcontrollers are well suited for is
data logging. Stick one of these chips out in the middle of a corn
field or up in a ballon, and monitor and record environmental
parameters (temperature, humidity, rain, etc). Small size, low power
consumption, and flexibility make these devices ideal for unattended
data monitoring and recording.
2.4) Flavors
Embedded processors come in many flavors and varieties. Depending on
the power and features that are needed, you might choose a 4, 8, 16,
or 32 bit microcontroller. Standard microprocessors (such as the
Motorola 68000 or National 32032) are frequently used as powerful
embedded controllers. In addition, specialized processors are
available which include features specific for communications,
keyboard handling, signal processing, video processing, and other
tasks.
3) THE MICROCONTROLLER MARKET
Thanks to Robin Getz of National Semiconductor for supplying much of
the material in this section.
3.1) Shipments
WorldWide Microcontroller Shipments (in millions of dollars)
'90 '91 '92 '93 '94 '95 '96 '97 '98 '99 '00
4-bit 1,393 1,597 1,596 1,698 1,761 1,826 1,849 1,881 1,856 1,816 1,757
8-bit 2,077 2,615 2,862 3,703 4,689 5,634 6,553 7,529 8,423 9,219 9,715
16-bit 192 303 340 484 810 1,170 1,628 2,191 2,969 3,678 4,405
WorldWide Microcontroller Shipments (in Millions)
'90 '91 '92 '93 '94 '95 '96 '97 '98 '99 '00
4-bit 778 906 979 1036 1063 1110 1100 1096 1064 1025 970
8-bit 588 753 843 1073 1449 1803 2123 2374 2556 2681 2700
16-bit 22 38 45 59 106 157 227 313 419 501 585
Source: WSTS & ICE - 1994
If you were wondering why you should bother learning about
microcontrollers - well, the tables above should fairly scream the
answer at you. Microcontrollers will be *BIG* business - we're
talking piles of cash - billions!
Notice that even the lowly 4-bit device is holding its own - what use
is a 16-bit part in a toaster oven? Also notice that the 8-bit
market just keeps growing, and will probably continue to grow. 8-bit
devices account for over half of the market, and will eventually grab
even more. Now do you understand why every silicon manufacturer is
really pushing their 8-bit microcontrollers?
3.2) Industrial applications
Average Semiconductor Content per Passenger Automobile (in Dollars)
'90 '91 '92 '93 '94 '95 '96 '97 '98 '99 '00
$ 595 634 712 905 1,068 1,237 1,339 1,410 1,574 1,852 2,126
Source: ICE - 1994
The automotive market is the most important single driving force in
the microcontroller market, especially at it's high end. Several
microcontroller families were developed specifically for automotive
applications and were subsequently modified to serve other embedded
applications.
The automotive market is demanding. Electronics must operate under
extreme temperatures and be able to withstand vibration, shock, and
EMI. The electronics must be reliable, because a failure that causes
an accident can (and does) result in multi-million dollar lawsuits.
Reliability standards are high - but because these electronics also
compete in the consumer market - they have a low price tag.
Automotive is not the only market that is growing. DataQuest says
that in the average North American's home there are 35
microcontrollers. By the year 2000 - that number will grow to 240.
Consumer electronics is a booming business.
3.3) Deciding whose microcontroller to use
When deciding which devices to implement in a design, there are lots
of things to consider besides who else is using these devices (and
how many are they using).
- Can I expect help when I am having problems?
- What development tools are available and how much do they cost?
- What sort of documentation is available (reference manuals,
application notes, books)?
- Can I work a deal by purchasing more devices at one manufacturer?
That is, purchasing not only the microcontroller, but also
peripherals (A/D, memory, voltage regulator, etc.) from one
company).
- Do they support OTPs, windowed devices, mask parts?
3.4) The players
MICROPROCESSORS
Rank Sales ($ millions)
1995 1994 Company 1995 1994
-----------------------------------------------
1 1 Intel $10,800 $8,036
2 3 AMD 881 992
3 2 Motorola 781 827
4 11 IBM 468 297
5 6 TI 219 202
6 4 Cyrix 210 240
7 5 Hitachi 188 66
8 7 NEC 100 82
9 8 LSI Logic 58 51
10 10 IDT 45 25
Source: In-Stat Inc.
MICROCONTROLLERS
Rank Sales ($ millions)
1995 1994 Company 1995 1994
-----------------------------------------------
1 1 Motorola $1,781 $1,511
2 2 NEC 1,421 1,208
3 4 Mitsibishi 945 708
4 3 Hitachi 899 782
5 5 Intel 835 605
6 6 TI 807 534
7 8 Philips 524 345
8 7 Matsushita 500 413
9 10 Lucent (AT&T) 492 275
10 9 Toshiba 400 328
Source: In-Stat Inc.
Section 1 of 6 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6
| Back to category microcontroller-faq - Use Smart Search |
| Home - Smart Search - About the project - Feedback |
© allanswers.org | Terms of use