5) Some popular microcontrollers

    Some common microcontrollers are described below.  A common question
    is "what microcontroller should I use for...?"  Well, that's a tough
    one.  The best advice would be to choose a chip that has a full set
    of development tools at the price you can afford, and good
    documentation.  For the hobbyist, the Intel 8051, Motorola 68hc11, or
    Microchip PIC would all make suitable choices.

    8048 (Intel)

       The grandaddy of 'em all, the first microcontroller, it all
       started here!  Although a bit long in the tooth and a bit kludgey
       in design (at least by today's standards), it is still very
       popular due to its very low cost, availability, and wide range of
       development tools.

       Modified Harvard architecture with program ROM on chip with an
       additional 64 to 256 bytes of RAM also on chip.  I/O is mapped in
       its own space.

    8051 (Intel and others)

       The 8051, Intel's second generation of microcontrollers, rules the
       microcontroller market at the present time.  Although featuring a
       somewhat bizarre design, it is a very powerful and easy to program
       chip (once you get used to it).

       Modified Harvard architecture with separate address spaces for
       program memory and data memory.  The program memory can be up to
       64K.  The lower portion (4K or 8K depending on type) may reside on
       chip.  The 8051 can address up to 64K of external data memory, and
       is accessed only by indirect addressing.  The 8051 has 128 bytes
       (256 bytes for the 8052) of on-chip RAM, plus a number of special
       function registers (SFRs).  I/O is mapped in its own space.

       The 8051 features the so-called "boolean processor".  This refers
       to the way instructions can single out bits just about anywhere
       (RAM, accumulators, I/O registers, etc.), perform complex bit
       tests and comparisons, and then execute relative jumps based on
       the results.

       Piles of software, both commercial and free, are available for the
       8051 line.  Many manufacturers supply what must be a hundred
       different variants of this chip for any requirement.  Often
       featured in construction projects in the popular hobbyist

    80c196 (MCS-96)

       The third generation of Intel microprocessors, the 80c196 is a 16
       bit processor.  Originally fabricated in NMOS (8096), it is now
       mainly available in CMOS.  Intel Corp. has recently introduced a
       clock-doubled (50MHz) version of the 80c196.

       Among the many features it includes are: hardware multiply and
       divide, 6 addressing modes, high speed I/O, A/D, serial
       communications channel, up to 40 I/O ports, 8 source priority
       interrupt controller, PWM generator, and watchdog timer.

    80186,80188 (Intel)

       These chips are, in essence, microcontroller versions of the 8086
       and 8088 (of IBM/PC fame).  Included on the chip are: 2 channels
       of DMA, 2 counter/timers, programmable interrupt controller, and
       dynamic RAM refresh.  There are several variations including:  low
       power versions, variations with serial ports, and so on.

       One major advantage you gain by using one of these parts is that
       you can use standard PC development tools (compilers, assemblers,
       etc) for developing you applications.  If you are already familiar
       with PC software development, the learning curve will be short,
       since these chips have the same basic architecture as the original
       8088 (as used in the IBM/PC).

       Other advantages include high speed processing, a full megabyte
       addressing space, and powerful interrupt processing.

    80386 EX (Intel)

       The 80386 EX is of course a 386 in microcontroller clothing.
       Included on the chip are: serial I/O, power management, DMA,
       counter/timers, programmable interrupt controller, and dynamic RAM
       refresh.  And of course, all of the power of the 386

       One major advantage you gain by using one of these parts is that
       you can use standard PC development tools (compilers, assemblers,
       etc) for developing your applications.  If you are already
       familiar with PC software development, the learning curve will be
       short, since these chips have the same basic architecture as the
       original 8088 (as used in the IBM/PC).

       We're talking power here gang.  Now let's all wait for Microsoft
       to release a version of Windows for embedded and real-time
       applications (Windows ET?  Windows RT?  Windows 2000? :-).

    6805 (Motorola)

       The 6805 is based loosely on the manufacturer's earlier 6800, with
       some similarities to the 6502.  It has a Von-Neuman architecture
       in which instructions, data, I/O, and timers all share the same
       space.  Stack pointer is 5 bits wide which limits the stack to 32
       bytes deep.  Some members of this family include on chip A/D, PLL
       frequency synthesizer, serial I/O, and software security.

    68hc11 (Motorola and Toshiba)

       The popular 68hc11 is a powerful 8-bit data, 16-bit address
       microcontroller from Motorola (the sole supplier) with an
       instruction set that is similar to the older 68xx parts (6801,
       6805, 6809).  The 68hc11 has a common memory architecture in which
       instructions, data, I/O, and timers all share the same memory

       Depending on the variety, the 68hc11 has built-in EEPROM/OTPROM,
       RAM, digital I/O, timers, A/D converter, PWM generator, pulse
       accumulator, and synchronous and ansynchronous communications
       channels.  Typical current draw is less than 20ma.

    683xx (Motorola)

       The MC68EC300 series incorporates various peripherals into various
       68k family core processors.  These can be called "integrated
       processors".  They are really super-microcontrollers, very high
       performance, capable of high processing speeds, and able to
       address large amounts of memory.  A typical example from this line
       would be the 68331.  It is based on a 68020-like core and has
       about the same processing power as an Intel 80386.

    PIC (MicroChip)

       While watching my 8 year old daughter play with her Barbie Dolls
       (she has about 7 or so, including two that used to belong to Roz,
       my wife, when she was a girl) I noticed an interesting difference
       between the old dolls and the new dolls.  The old Barbies could
       only move their heads sideways, while the new Barbies not only can
       move their heads sideways, but also up and down.  AMAZING - the
       old Barbies were good girls - they could only say no.  The new
       Barbies however can also say yes.  Progress - isn't it wonderful!
       (Not to mention the gymnast Barbie that Dave Perry's daughter got
       for Christmas - "wait'll you see what *she* can do ;-)"

       Which leads me to an amazing fact.  Most everyone thinks of the
       PIC microcontroller line as being a recent introduction.  However,
       they've been popular for over 20 years.  What's the difference?
       Microchip (which was originally [owned by] General Instruments),
       seems to have recreated this microcontroller into a product
       universally regarded as a powerful and cost effective solution.
       The new chips are fabricated in CMOS, some features have been
       added, and new family lines have been introduced.

       The PIC microcontrollers were the first RISC microcontrollers.
       RISC generally implies that simplicity of design allows more
       features to be added at lower cost, and the PIC line is no
       exception.  Although having few instructions (eg. 33 instructions
       for the 16C5X line versus over 90 for the Intel 8048), the PIC
       line has a wealth of features included as part of the chip.
       Separate buses for instructions and data (Harvard architecture)
       allows simultaneous access of program and data, and overlapping of
       some operations for increased processing performance.  The
       benefits of design simplicity are a very small chip, small pin
       count, and very low power consumption.

       PIC microcontrollers are rapidly gaining in popularity.  They are
       being featured more and more often in construction projects in
       popular hobbyist magazines, and are chalking up a good number of
       design wins.  Due to their low cost, small size, and low power
       consumption, these microcontrollers can now be used in areas that
       previously wouldn't have been appropriate (such as logic
       circuits).  They are currently available in three lines:  the
       PIC16C5x, PIC16Cxx, and PIC17Cxx families.

       PSST!  Hey kid!  Want a naked Barbie Doll?!

    COP400 Family (National Semiconductor)

       The COP400 Family is a P2CMOS 4-bit microcontroller which offers
       512 bytes to 2K ROM and 32x4 to 160x4 RAM.  Packages are varied
       from  20 to 28 pin (DIP/SO/PLCC).  Functions include Microwire,
       timers counters, 2.3 to 6.0 Volt operation, ROMless modes, and OTP

       Far from being "old" technology - 4-bit microcontrollers are
       meeting significant market needs in more applications than ever
       before.  The reason for the continuing strength of the COP400
       family is its versatility.  Over 60 different, compatible devices
       are available for a wide range of requirements.  The first under
       $.50 microcontroller set a new standard of value for

    COP800 Family (National Semiconductor)

       The COP800 Basic Family is a fully static 8-bit microcontroller,
       fabricated using double metal silicon gate microCMOS technology.
       This low cost microcontroller contains all system timing,
       interrupt logic, ROM, RAM, and I/O necessary to implement
       dedicated control functions in a variety of applications.

       Depending on the device, features include:  8-bit memory mapped
       architect, MICROWIRE serial I/O, UART, memory mapped I/O, many 16
       bit timer/counters with capture registers, a multi-sourced
       vectored interrupt, comparator, WATCHDOG Timer and Clock monitor,
       Modulator/Timer (high speed PWM timer for IR transmission),
       8-channel A/D converter with prescaler and both differential and
       single-ended modes, brownout protection, halt mode, idle mode,
       high current I/O pins with 15mA sink capability, Schmitt trigger
       inputs and Multi-Input-Wake-Up.  Most devices operate over a
       voltage range from 2.5V to 6V.

       High throughput is achieved with an efficient, powerful
       instruction set operating at a 1uS per instruction rate (most
       instructions are single byte/single cycle) including true bit
       manipulation and BCD arithmetic instructions.  Most devices have
       military versions for -55C to +125C.

    HPC Family (National Semiconductor)

       The HPC Family of High Performance microControllers is a 16-bit
       controller fabricated using National's advanced microCMOS
       technology.  This process combined with an advanced architecture
       provides fast, flexible I/O control, efficient data manipulation,
       and high speed computation.

       With its 16x16 bit multiply and 32x16 bit divide, the HPC is
       appropriate for compute-intensive environments that used to be the
       sole domain of the microprocessor.  The architecture is a
       Von-Neuman architecture where the program and data memory share
       the same address space.

       Depending on the family member, features include: 16-bit
       memory-mapped architecture with software configurable external
       address/data bus, Microwire/Plus serial I/O, UART, 16-bit
       timer/counters with input capture capability, High-Level Data Link
       Control (HDLC) for ISO-standard data communications, 8-channel A/D
       converter with prescaler and both differential and single-ended
       modes, power-saving modes, Multiply/Accumulate Unit with built-in
       circular buffer management for low to medium DSP applications,
       software configurable chip-select outputs, 64KB address space
       directly addressable, low-voltage (3.3V) operation.

       High throughput is achieved with an efficient, powerful
       instruction set operating at a 50ns per instruction cycle (most
       instructions are single byte/single cycle) including true bit
       manipulation.  Key applications currently using the HPC family
       include: Anti-lock Braking Systems, Hard Disk drives for mass
       storage, telecommunications, security systems, laser printers, and
       some military applications.

    Project Piranha (National Semiconductor)

       Project Piranha is an internal code name for National
       Semiconductor's embedded RISC processor technology. The Piranha
       technology represents the first RISC processor specifically
       designed for the needs of embedded applications.  This was
       accomplished through examination of the needs of typical embedded
       applications, resulting in a technology which maintains the
       benefits of CISC while providing the performance of RISC.

       Specifically, some of these benefits are:
         compact code density     -->  smaller memory usage/
                                          lower system cost
         small core size          -->  more room for add-on system design
         scalable architecture    -->  a range of performance solutions
       from 8 to 64 bits             with a common architecture
         common instruction set   -->  you only face the learning curve
            and development tools         once
         modular design           -->  designed for easy integration of
                                          specialized functions into
                                          single chip

       This technology is initially being implemented in application
       specific products from National Semiconductor, with the first
       product being available in Q1, 1995.  For further information on
       this technology, please contact Mark Throndson at
       tmetsc@esd.nsc.com, or (408) 721-4957.

    Z8 (Zilog)

       A "loose" derivative of the Zilog Z80, the Z8 is actually a
       composite of several different achitectures.  Not really
       compatible with the Z80 peripherals.  Has a unique architecture
       with three memory spaces:  program memory, data memory, and a CPU
       register file.  On-chip features include UART, timers, DMA, up to
       40 I/O lines.  Some versions include a synchronous/asynchronous
       serial channel.  Features fast interrupt response with 37
       interrupt sources.  The Z8671 has Tiny Basic in ROM.  The Super-8
       is just that, a super version of the Z8 with more of everything.

       There seem to be quite a few new members of the zilog Z8 family
       arriving recently, including chips such as the Z86C95 which
       contains a fairly "normal" Z8 but with lots of registers (not the
       normal 128, but 236), and an internal 16 bit harvard architecture
       DSP with two data memory systems and one program memory system,
       and with a 24 bit accumulator.  The DSP unit has its memory
       systems accessible as additional banks of Z8 registers (the exact
       mechanism is very poorly explained in the documentation!) so the
       Z8 can be used to write the data and code for the DSP into the
       DSP's storage and then start the DSP running, etc.  There are the
       usual Z8 peripherals plus A/D and D/A (single channel, accessible
       by the Z8 and DSP CPUs).

       Zilog has also recently come out with some new OTP parts:
       part#    PDIP   EPROM      RAM       I/O     type         freq
       Z86E04  18 pin   1K     124 bytes  14 pins  xtal,LC,      8MHz
                                                   cer res,ext
       Z86E08  18 pin   2K     124 bytes  14 pins  xtal,LC,      12MHz
                                                   cer res,ext
       Z86E30  28 pin   4K     237 bytes  24 pins  xtal,LC,RC,   12MHz
                                                   cer res,ext
       Z86E31  28 pin   2K     124 bytes  24 pins  xtal,LC,RC,   8MHz
                                                   cer res,ext

       All parts come with real configurable RAM stack and interrupt
       systems, two fully programmable timers with interrupts, ROM
       protect, low-EMI modes, two analog comparator inputs with
       interrupt capability, low-power standby modes (as low as 1 uA) and
       45 easy instruction set.  There are no separate chip versions to
       do each of the oscillator types, one chip does them all.

    HD64180 (Hitachi)

       A powerful microcontroller with full Z80 functionality plus:
       extended memory management, two DMA channels, synchronous and
       asynchronous communications channels, timers, and interrupt
       controller.  Some versions of this chip also include EPROM, RAM,
       and PIO (programmable input/output).  It runs Z80 code in fewer
       clock cycles than the Z80 and adds in hardware multiply and a few
       other instructions.  Available in versions that run up to 18MHz.

    TMS370 (Texas Instruments)

       It is similar to the 8051 in having 256 registers,  A and B
       accumulators, stack in the register page, etc.  It also has a
       host of onboard support devices, some members have all of them
       while others have a subset, the peripherals include:  RAM, ROM
       (mask, OTP, or EEPROM), 2 timers (configurable as timers/
       counters/comparators/PWM output), watchdog timer, SCI (syncronous
       serial port), SPI (asynchronous serial port), A/D (8 bit, 8
       channel), interrupts.

       Instruction set is mostly 8 bit with some 16 bit support.  Has
       several addressing modes, 8x8 multiply, 16/8 divide.  Clock speeds
       are up to 20MHz which gives 5MHz for buss access and instruction
       cycles.  Pins mostly TTL compatible (except clock and reset).

       Packages include:
             28,40 DIP
             28 CLCC
             28,44,68 PLCC
             40,64 SDIP

       A developers/proto board is available.  It is a multi layer PCB
       about 12"x7" with RS-232 serial I/O, and monitor as well as access
       to all processor pins on a patch and proto area.  Support software
       includes IBM-PC monitor & loader, cross assembler (absolute only).
       A pure serial TTY monitor is also supported.  Sole power
       requirement is +5v.  Priced is about $500 or so.

       A relocating assembler and linker, and a C compiler are also

    1802 (RCA)

       This is a real old-timer.  The 1802 is the successor to the 1801
       (2 chip set) which was the first microprocessor implemented in
       CMOS.  Both products were called microprocessors by RCA, not
       microcontrollers.  However, since the 1801 was implemented in CMOS
       and therefore had low power requirements, it was often used in
       microcontroller applications.  The 1802, with its higher level of
       integration and ease of use, could actually be considered a true
       microcontroller.  The 1802 is radiation hard and used in a lot of
       deep space and satellite applications.

       The 1802 has a fairly clean instruction set, a bunch of
       general-purpose registers (more like a Z80 than an 8051 in that
       regard), and separate data and I/O address spaces.

    MuP21 (Forth chip)

       The MuP21 was designed by Chuck Moore, the inventor of Forth.
       With the MuP21, Forth can compile into machine code and still be
       Forth, because the machine code IS Forth.  The MuP21 freaks out at
       100 MIPS while consuming only 50 milliwatts.  Not only that, the
       chip includes a video generator, has only about 7000 transistors
       (that's right, 7000 and not 7,000,000), and costs about $20.

       The assembler on this chip is a sort of dialect of Forth, as the
       CPU is modeled after the Forth virtual machine.  MuP21 is a
       MINIMAL Forth engine.  In fact MuP21 was designed to run OKAD
       (Chuck Moore's VLSI CAD softare), and OKAD was designed to run on
       MuP21.  OKAD was run on a 486 to design MuP21, and MuP21 was
       designed to have just enough hardware to run OKAD about ten times
       as fast as a 486 on a very cheap chip (the MuP21).  That's the
       reason for the MuP21's on-chip video generator coprocessor.  The
       CPU programs the video generator and then just manipulates the
       video buffer.  It is composite video out, so it only needs one
       pin.  MuP21 is only a 40 pin chip.

       MuP21 chips, boards, software, manuals, and spec sheets are
       available from:
          Offete Enterprises
          1306 South B Street, San Mateo CA 94402
          (415) 574-8250
          Email:  tingch@ccmail.apldbio.com

    F21 (Next generation Forth chip)

       F21 will be bigger (10k vs 7k transistors for the MuP21!) but
       since it is going to implemented with a smaller geometry (.8
       micron vs 1.2) it will still be extremely small and low power, and
       low cost.  Although the specs on this chip aren't final yet,
       expected performance is in the range of 250 MIPS!!.  It will have
       multiple analog processors and a very high speed serial network
       coprocessor on chip.  F21 will also support a wider range of
       memory chips and have more I/O processors.

       Designed for cheap consumer multimedia and parallel processing,
       the F21 is planned for release some time in 1995.

       For more information on this project, contact: Jeff Fox