Background
The PIC was originally a design of the company General Instruments. It was intended for simple control
applications, hence the name – Peripheral Interface Controller. In the late 1970s General Instruments produced
the PIC® 1650 and 1655 processors. Although the design was comparatively crude and unorthodox, it
was completely stand-alone, and contained some important and forward-looking features. The simple CPU
was a RISC structure, with a single Working register and just 30 instructions. The output pins could source
or sink much more current than most other microprocessors of the time. Already the trademarks of the PIC
were emerging – simplicity, stand-alone, high speed and low cost.
General Instruments sold off its semiconductor division to a group of venture capitalists, who must have
realised the immense potential of these odd little devices. Throughout the 1990s the range of available
PIC microcontrollers grew, and as they did so they gradually overtook many of their better-established
competitors. In many cases PIC microcontrollers could run faster, needed a simpler chip-set and were quicker
to prototype with than their competitors. Unlike many competitors, Microchip made their development tools
simple and low cost or free. Moreover, Microchip stayed firmly entrenched in the 8-bit world. Despite the
huge advances that have been made, we can still see features of the old General Instruments microcontroller,
even in the most recent designs.
PIC microcontrollers today
Looking at the range of PIC microcontrollers today, anyone can be forgiven for a sense of complete
bewilderment. There are literally hundreds of different devices, offered in different packages, for different
applications. Let us therefore try to identify the characteristics that all of these have in common. At the time
of writing, all PIC microcontrollers are low-cost, self-contained, 8-bit, Harvard structure, pipelined, RISC,
single accumulator (the Working or W register), with fixed reset and interrupt vectors.
Today, Microchip offers five main families of microcontrollers, whose features are summarised in Table 1.2.
It is possible to see clear evolution from one family to the other, so knowledge of one readily leads to
knowledge of another. Every member of any one family shares the same core architecture and instruction
set. The families are identified primarily by the first two digits of the device code. The alphabetic character
that follows gives some indication of the technology used. The ‘C’ insert implies CMOS technology, where
CMOS stands for Complementary Metal Oxide Semiconductor, the leading semiconductor technology for
implementing low-power logic systems. The ‘F’ insert indicates incorporation of Flash memory technology
(still using CMOS as the core technology). An ‘A’ after the number indicates a technological upgrade on
the first issue device. An ‘X’ indicates that a certain digit can take a number of values, the one taken being
unimportant to the overall number quoted.
For example, the 16C84 was the first of its kind. It was later reissued as the 16F84, incorporating Flash
memory technology. It was then reissued as the 16F84A, with certain further technological upgrades.
Microchip also used to give each family a name. Thus, their first family, the 16C5XX, was called the
‘baseline’ family. The development of this, with device numbers starting ‘16C’ or ‘16F’ (and a fourth digit
that was not 5), was called the ‘mid-range’ family. The powerful evolution of this, with codes starting ‘17C’,
was called the ‘high-end’ family. As the further families developed, with both very simple and advanced
architectures, this naming convention has lost prominence, although the terminology is still found. For
simplicity, to identify a PIC family, this book will refer to ‘12 Series’, ‘16 Series’, ‘18 Series’ and so on.
Let us survey each family in turn.
The 16C5X Series family
This PIC microcontroller family represents the most direct descendant of its General Instrument ancestors
and displays all the core features of the original PIC design. With only a two-level stack and no interrupts,
there is significant limitation on the program and hardware complexity that can be developed. Particularly
without interrupts there is restriction on the type of on-chip peripheral that can be included, as most
peripherals use interrupts to enhance their interface with the CPU. The 16C5X family has also been issued
with Flash memory, with 16F5X codes. While this family is well established, it has a limited number of
members and is not being given much prominence by Microchip.
The PIC 16 Series family
This, the ‘mid-range’ family, represents an improved version of the 16C5XX Series, in which interrupts
(albeit with a single interrupt vector) are introduced and the stack size increased. The instruction set is a
slight extension of that of the 16C5X. A very wide range of family members exists, with many different
peripherals and technical enhancements. The larger devices, with many peripherals and significant on-chip
memory, are both powerful and versatile.
The 12 Series family
The 12 series microcontrollers are designed for really tiny applications, being packaged in small ICs (for
example, 8- or 14-pin). They have a simple architecture and can be viewed as ‘stripped-down’ versions of
the 16C5XX series, with the same instruction set. Despite their small size, 12 Series microcontrollers carry
some interesting peripherals, including analog-to-digital converters and EEPROM (Electrically Erasable
Programmable Read-Only Memory) data memory. Although a small family, there is strong interest at this
end of the size range, and further interesting additions to the family can be expected.
The 17 Series family
This family was introduced to give a real step-up in CPU performance compared with any of the 16 Series
devices. While retaining the RISC strategy, the instruction set size is nearly doubled and the instruction
word size increased to 16-bit. Thus, some programming activities that are awkward in the mid-range family,
like table reads or data moves, are here much simpler. A hardware multiplier is also available. The single,
often overloaded, interrupt vector of the mid-range family becomes four. Although much more powerful
than the 16 Series, this family is limited in number, and Microchip appear to be focusing on the 18 Series
family to move forward developments at the more powerful end of their range.
The 18 Series family
In this family Microchip comes to grips with some of the issues of sophisticated processors. The instruction
set has increased again, now to 75 instructions, and is designed to facilitate use of the C programming
language. In certain versions there is also an ‘extended’ instruction set, with a further small set of instructions.
There are two interrupt vectors, which can be prioritised. This is an extremely powerful family of
microcontrollers and a number of new members can be expected in the future.
No comments:
Post a Comment