Linking documentation to controller familyEdit
Since the inception of Microchip Technology in 1989 and the first PIC® microcontrollers, the PIC16C5X family, a fairly consistent pattern of documentation has emerged which has been retained as the 8-bit families grew and newer 16-bit and 32-bit families have been added.
The first step to getting the information you are seeking is to understand which family of product you intend to use. The 8-bit product family is especially confusing in this area since products with the same prefix, i.e. PIC12 or PIC16, are not necessarily all based upon the same underlying processor architecture.
The 8-bit family of RISC Havard-architecture microcontrollers are based upon four different processor architectures with a common core set of assembler instructions which are upwards compatible across the sub-families. In addition many devices share common peripherals, even across sub-families, providing an easy migration path for developers. The four sub-families are officially named:
- Base-Line - devices based upon a processor core using a 12-bit instruction set. Microcontrollers with the prefix PIC10, PIC12 or PIC16 could be base-line products.
- Mid-Range - devices based upon a processor core using a 14-bit instruction set. Microcontrollers with the prefix PIC12 or PIC16 could be mid-range products. The rfPIC12 devices (with integrated radio transmitter) also belong to this family.
- Enhanced Mid-Range - devices based upon a processor core using a 14-bit instruction set with extended instruction set, larger memory addressing and other improvements compared to mid-range products. Microcontrollers with the prefix PIC12F1 and PIC16F1 are extended mid-range products.
- High-End - devices based upon a processing core using a 16-bit instruction set, some of which may also have a high-level programming language optimised extended instruction set and data-memory addressing. Microcontrollers with the prefix PIC18 will be a high-end product.
|Documentation Search Challenges - When searching for documentation, nothing is more important than knowing which search term to use. Microchip has not been very consistent over the years with the naming of the underlying processor cores of their products. When searching the web or reading printed or PDF documentation you may find the following terms used:
|First Steps for Developers - With some microcontrollers using one of two different processing cores (PIC12 and PIC16) it is important to know which underlying processor architecture is being used as this affects which further documentation you need to download to support your development. When you have selected a microcontroller, locate and download its datasheet. It is unlikely that the underlying processor core will be named in the document, but by searching for the chapter on "Memory Organisation - Program Memory Organisation" and finding out how many bits per word of program memory there are you can easily tell to which sub-family an 8-bit microcontroller belongs. Sometimes the number of bits per instruction word will also be listed on the third page as part of the "CPU Features".|
The 16-bit family of RISC Havard-architecture products are split into two groups; MCU microcontrollers and DSC digital signal controllers. DSC is used as the acronym for devices featuring a digital signal processing unit (DSP) in the controller's core, with DSC being preferred over the more traditional DSP to highlight the devices suitability for embedded control applications and the demands they have compared to DSP products which a used in pure signal processing applications. The sub-families can be identified by their prefixes, namely:
- dsPIC30/dsPIC33 - 16-bit DSC with 24-bit instruction set and dual 16-bit data buses to support the MAC (multiply and accumulate) instructions.
- PIC24F/PIC24H - 16-bit MCU with 24-bit instruction set; featuring the same processor architecture as the dsPICs minus the DSP module and associated instructions. Multiplier is simplified supporting single cycle 17-bit x 17-bit multiplication. Single 16-bit data bus.
These controllers feature peripheral modules which are in many cases common to both sub-families and, in some cases, common to the 8-bit PIC18 controllers and the PIC32 products. Some dsPICs feature high-frequency PWM modules, making the suitable for the control of BLDC motors, AC Induction motors and integration in digital SMPS. Certain PIC24F devices feature a graphics controller making them suitable for the direct control of monochrome and colour STN and colour TFT LCD displays. Other features include USB (peripheral and host), CAN, and serial interfaces such as SPI, I2C and USART making them suitable for a wide range of consumer and industrial applications.
The 32-bit family of microcontrollers feature the MIPS® Technologies M4K® processor core, a high-performance, low-power RISC core, and are identified by the prefix PIC32. There are currently four sub-families:
- PIC32MX3 - General purpose 32-bit microcontroller featuring common embedded MCU peripherals
- PIC32MX4 - General purpose 32-bit microcontroller featuring common embedded MCU peripherals and USB 2.0 OTG interface, suitable for use as On-The-Go, USB peripheral or USB host
- PIC32MX5 - General purpose 32-bit microcontroller featuring common embedded MCU peripherals, USB 2.0 OTG interface (as the MX3) and CAN
- PIC32MX6 - General purpose 32-bit microcontroller featuring common embedded MCU peripherals, USB 2.0 OTG interface (as the MX3) and 10/100 Ethernet MAC
- PIC32MX7 - General purpose 32-bit microcontroller featuring common embedded MCU peripherals, USB 2.0 OTG interface (as the MX3), 10/100 Ethernet MAC and dual CAN interfaces
The general purpose peripherals on these devices are the same as those featured in the 16-bit family, and the devices are additionally pin-to-pin compatible with many of their 16-bit MCU family counterparts.
While searching for documentation, you may find documentation on the following controller products which are no longer recommended for new designs:
- PIC14000 - a RISC Harvard architecture CPU based "Mixed Signal Controller" with a 14-bit instruction set. A PIC16F883 is recommend as an alternative to this product.
- PIC17 - a RISC modified Harvard architecture CPU based microcontroller family with a 16-bit instruction set. PIC18 devices are recommended as an alternative to PIC17 products.