from Wikipedia, the free encyclopedia
A 16-bit microcontroller (PIC24) in a 28-pin PDIP housing

In PICmicro is a microcontroller family, by the company Microchip Technology Inc. is established.


The 1655, the first ROM-based PIC (still from GI)

The microcontroller family was derived from the PIC1650, which was originally developed by the microelectronics department at General Instrument (GI). The term PIC is no longer used as an abbreviation by Microchip; the PIC1650 stood for Programmable Intelligent Computer . The original version of the PIC was intended as a ROM-based, external extension of the 16-bit CPU CP1600 (also from GI) in order to improve its rather mediocre I / O performance. A simple microcode , which was stored in a ROM , was used as the command format .

In 1989 GI sold the microelectronics division and the new owners terminated almost all product lines. The PIC, on the other hand, was equipped with an EPROM to turn it into a user-programmable microcontroller. Extensions and variations of the internal peripherals , component shape and speed resulted in a very large product family that provides microcontrollers for many areas of application.


Some older EPROM based PIC
Some of the smallest PIC from the Baseline family, 3x PIC12F509, 2x PIC10F206 (1x flipped)

PIC are 8, 16 or 32 bit RISC microcontrollers that were originally developed with a focus on a small instruction set and ease of use. The instruction set comprises around 33 (for the Baseline family) to over 70 instructions (for the Enhanced family). Due to the large variety of different types, a suitable PIC can be found for practically every application. The microcontrollers are designed in such a way that, depending on requirements, they can get by with very little wiring (many PICs also have an internal RC oscillator ).

The PIC32 family is new, here Microchip has used a controller core from MIPS Technologies. At the current product presentation and announcement in November 2007, the first samples, hardware development tools, C compilers and extensive literature are already available. The well-known development tools ICD2, Real-ICE and MPLAB-IDE from version 8.0 onwards can still be used, as they also support the new product family. PICmicros are available in several housing variants, which only differ in the number of their pins: "PIC10 ..." stands for 6 pins, "PIC12 ..." for 8 and "PIC16 ..." for 14 to 64 pins.

The following families (more precisely: performance classes) are offered:

  • Baseline : 8-bit PICmicro with 12-bit command width, only a few features (timer and, with the latest products, also comparators or AD converters), no interrupt support, 33 commands, maximum 5 MIPS. The family includes the products with the designations PIC10F2xx, PIC12F (C) 5xx and PIC16F (C) 5x in packages from 6 to 40 pins.
PIC16F877 in various housing variants
  • MidRange : 8 bit PICmicro with 14 bit command width, standard features (partly also with LCD controller or low-speed USB ), interrupt support, 35 commands, maximum 5 MIPS. This family includes the PIC12F (C) 6xx and PIC16F (C) xxx as well as the PIC14000 with 8 to 64 pins.
  • High performance : 8-bit PICmicro with 16-bit command width, standard features, a maximum of approx. 8 MIPS. This family includes the products with the designation PIC17Cxxx with 40 to 84 pins, it should no longer be used for new designs and is therefore no longer described in more detail in the following sections.
  • High Performance Enhanced : 8 bit PICmicro with 16 bit command width, linear command and data memory addressing, 79 (or more with the current products of this family) commands, lots of powerful peripherals, e.g. B. CAN , USB , Ethernet , special motor control units, etc. Furthermore, an 8x8-bit hardware multiplier, the arithmetic unit of a signal controller, 16-bit command width. A maximum of 10 MIPS computing power is typical, but new products with up to 16 MIPS have been announced for 2007. The commands of the C programming language (e.g. loop commands ) can in part be executed much more effectively by the hardware. Products of the enhanced family are the PIC18F (C) xxx, with 18 to 100 pins.
Some 16 bit PIC and dsPIC
  • 16 bit microcontroller, PIC24 and dsPIC
All four families below have the same CPU core, ie they can be processed with the help of the same tools, such as C compilers or C debuggers.
  • PIC24F : 16-bit PICmicro, standard features , 24-bit command width, maximum 16 MIPS, 2.0 to 3.6 volts. Currently (2007) the family includes products from 16 kB to 128 kB Flash in packages from 28 to 100 pins. New versions with up to 256 kB Flash and some with integrated USB OTG (On the Go) are now also available.
  • PIC24H : 16 bit PICmicro, extended features, 24 bit command width, maximum 40 MIPS, only 3.3 volts. This product family is largely identical to the dsPIC33 family, it is only reduced by the DSP features. Currently (2007) the family includes products from 16 kB to 256 kB Flash in packages from 20 to 100 pins.
  • dsPIC30 : 16-bit signal controller, 24-bit command width, maximum 30 MIPS, 2.5 (3) - 5.5 volts operating voltage
Three subfamilies:
  • dsPIC33 : 16-bit signal controller , 24-bit command width, maximum 40 MIPS, 3 - 3.6 V operating voltage
Two subfamilies:
  • Standard family, some with AC97 / I²S interface, CAN etc. 16 to 256 kB flash, 20 to 100 pins, others with up to 144 pins and up to 512 kB flash are planned.
  • Motion control family, with interface for quadrature encoder, special motor control PWM, CAN, etc. 16 kB to 256 kB flash, 20 to 100 pins, others with up to 144 pins and up to 512 kB flash are also planned.
  • PIC32 : 32 Bit PICmicro with MIPS M4K CPU core . A maximum of 80 MIPS computing power is typical. Some PIC32 support DMA data transfer. Products of the PIC32 family are the PIC32MX, with 32 to 512 kB Flash, 8 kB to 128 kB RAM and 64 to 100 pins. There are now other products with USB on-the-go and Ethernet with otherwise comparable properties in this family. This product family can be programmed and debugged with the currently marketed pickit3, which enables a very cost-effective entry.

Hobby and personal use

Relatively inexpensive products and inexpensive development tools with partly free C compilers from the beginning of the 1990s to the present day favored the diverse distribution of PIC among amateur electronics enthusiasts. The first PIC that were used here were the PIC16C83 and its successors PIC16F83 and PIC16F84 due to their already existing flash memory . These PICs are still available today, but are now relatively expensive. The AVR controllers from Atmel can be seen as an alternative to the 8-bit PIC .

The products of the Enhanced family (PIC18Fxx) are intended for more extensive tasks. The linear address space (see below) is intended to make it easier for developers to develop a working program. The older PICkit2 or the newer PICkit3, which can program most of the current 8 and 16 bit PICs, and the ICD2 debugger from Microchip are available as programming devices.

Below is a small selection of PIC products with 5 volts supply voltage, available in a DIL housing and pin-compatible with one another with the same number of pins.

  • 8 pin : PIC12F615, no 8 pin PIC18Fxx is available and programming for such small products is usually done in assembler . The types PIC12F675 and PIC12F683 are also available.
  • 14 pin : PIC16F684 (with pulse width modulation ) or the PIC16F688 (more memory and UART ). No PIC18Fxx products are available in this housing either.
  • 18 pin or replacement for the above-mentioned PIC16F84: PIC16F628A, PIC16F819, PIC16F88 or the PIC18F1320 from the enhanced family.
  • 20 pin : PIC16F690. For designs in which a PIC18Fxx is to be used, 18 or 28 pin microcontrollers from the PIC family are ideal.
  • 28 or 40 pin : PIC16F886 or alternatively from the Enhanced family the PIC18F2620 (standard type, with 64 kByte flash memory), PIC18F2680 (standard type with CAN , also with 64 kByte flash memory) or PIC18F2550 (standard type with USB , but only with 32 kByte flash memory). The product names of the 40 pin housings are (in the same order) PIC16F887, PIC18F4620, PIC18F4680 or PIC18F4550.
Especially for 28 or 40 pin z. B. a 16 bit dsPIC30F4012 (28 pin) or dsPIC30F4011 (40 pin) can be used. A pin compatibility with the 8bit PIC is no longer given here. The PIC16F876A is also possible.

The following PICs are widely used in free do-it-yourself projects: PIC12F675, PIC12F683, PIC16F84A, PIC16F627A, PIC16F628A, PIC16F876A

In order to avoid using the more expensive PIC16F84, existing assembler code can be replaced by an added patch routine (which switches off analog peripherals that are not available on the 16F84 and then jumps back to the main program) and moving RAM variables to the one with twice as many Memory-equipped PIC16F628A can be made compatible.

Simple programming devices

There are numerous circuits on the Internet for the self-construction of simple PIC programming devices, which often consist of a few components and are therefore inexpensive to manufacture yourself. However, these do not always work reliably with every PC and every PIC.

  • PIC Development Programmer for Windows and Linux. Freeware programmer software for a variety of PICs like 10F, 12F, 16F, 18F and dsPIC30F. Supports various programmer hardware such as B. JDM, Tait, AN589, ...
  • "JDM" programmer for the RS232 port
  • "David Tait" programmer for the LPT port
  • "Sprut burner" for the LPT port and USB port, with newly developed and stable hardware and software which supports almost all current flash-based PIC types. Board layouts, tips, and manuals are also available.
  • "ICD2 Clones", MPLAB-compatible replicas of the Microchip ICD2 In-Circuit Debugger, which can program and debug many current Flash-based PICs in the target circuit

Commercial use

  • Processor chip cards of the type gold and silver card
  • Alarm systems and access control systems from Security Products
  • Linyang power meters
  • Management of (electrical) energy in BMW cars
  • Lighting systems from Insta Elektro GmbH from Lüdenscheid
  • Modchips for the Playstation, PS2 and Nintendo Wii

PIC derivatives:


Layout compatibility
of 8, 14 and 20 pin

Microchip-PIC are available from 6 to 100 pins, of which 8 to 40 pins are available in "dual-in-line" as well as various SMD variants . The smallest package is in SOT-23, all packages from 44 pin upwards are in TQFP . In addition to the SO and SSOP (both from 8 to 28 pin), there are also the so-called QFN (MLF) housings from 8 to 44 pins for particularly space-critical applications . It is not a matter of course that almost all PICmicro in the same housing also have a compatible “pinout”. However, there are small differences when switching from 8-bit to 16-bit controllers. So a PIC18F4620 fits z. B. also on a layout of a PIC16C74 and vice versa. The small controllers also offer compatibility, the 14 or 8-pin versions also fit on a socket or a layout for a 20-pin, so the developer can start with 20 pins and, if necessary, a more cost-effective alternative Use only 14 or 8 pins without changing the layout if the smaller number of pins is sufficient.

Memory allocation

The memory allocation for all 8 and 16 bit families of the PICmicros is based on the Harvard architecture , i. H. Program and data memories are addressed via separate buses.

The program memories of the PIC are organized differently, with the Baseline family there are up to four pages of 512 × 12 bits each. H. depending on the type up to a maximum of 2048 words (this corresponds to 3 kB or 2048 possible commands). The MidRange family also has up to four pages, but these each contain 2 K × 14 bits d. H. depending on the type up to a maximum of 8192 words (corresponds to 14 kB or 8192 possible commands).

With the enhanced architecture, also called PIC18, as well as the 16-bit families PIC24 and dsPIC, there is no longer this memory division in blocks or pages, the program memory is linearly addressable. With the PIC18, the upper limit on the chip is 128 kB (64 K command words à 16 bit) and can be extended externally to up to 2 MB with some very large variants . For the 16-bit families, the upper limit is currently around 256 kB Flash (approx. 86 K command words with 24 bits each), external memory is currently not possible, but both larger memories of up to 512 kB and externally connectable memories are in Planning.

Depending on the design of the program memory , different types are distinguished:
  • Flash type (EEPROM program memory, code letter F)
These are now the most frequently used components; they can be erased and rewritten in the circuit. The cumbersome removal from the circuit and insertion into a programming device can thus be omitted. In this way, soldered-in components can also be programmed.
Most of these components can also be debugged without removing them from the circuit. This means that the program running in the controller can be interrupted at any point or run in single step mode. Every internal register and the internal memory can be observed on a connected PC screen. For this purpose, five pins of the PIC are connected to the PC via additional electronics (via which the PIC can also be programmed) and then via USB or RS232. These five pins are initially the positive and negative voltage, as well as the reset input of the controller. There are also two function pins (PGC and PGD), which are available as an alternative function on a port pin. This works with larger controllers from the PIC16F818 / 819 (18 pins). Each and every one of these controllers can be debugged as it is. For smaller controllers there are special test adapters that also have these pins.
  • OTP type (One Time Programmable; code letter C without suffix / JW)
These can only be programmed once and are only suitable for mass productions where low costs are important.
The of the 16C57
  • EPROM type (UV-erasable through quartz glass window; code letter C with suffix / JW)
The JW types represent the expensive development tool for the OTP types. Like EPROMs, they can only be erased by UV radiation. With the appearance of Flash PICs that are exactly compatible with OTP / EPROM types, EPROM types can be dispensed with in the development phase and, for example, the code for a 12C508A can be developed on a 12F508 instead of a 12C508A / JW.
  • ROM type (mask version; code letter R)
The ROM types represent the cheapest class of PICmicros, they are only used for very high-volume applications, as the controllers are 'programmed' directly in the factory during manufacture by diffusing the program into the chip. It is no longer possible to change or delete products that have already been manufactured.

The data memory of the PICs of the Baseline family is divided into one to eight banks of 32 bytes each. It contains all special registers, called SFR (Special Function Register) and standard RAM registers, called GPR (General Purpose Register); A maximum of 134 bytes of RAM are possible here.

The MidRange family uses the same principle, but up to a maximum of four banks of 128 bytes SFR and GPR; a maximum of 368 bytes of RAM are possible here.

The enhanced architecture also has up to 16 banks of 256 bytes each, but the memory can also be addressed linearly with certain commands; up to approximately 3.9 kB RAM. In the 16-bit families, the memory can be expanded linearly up to a maximum of 64 kB, but now only a maximum of 30 kB (including 2 kB dual-port RAM for the partially existing DMA controller) is used, plus a 2 kB memory area for the SFR. An area of ​​32 kB can be used to enable very fast read access to the flash memory.

The stack can only be used by the CPU and only as a memory for the program counter at the baseline and at the MidRange family. In the event of subroutine calls or an interrupt (only applies to MidRange), it accepts the return address including the page information and is only two (baseline family) or eight (MidRange family) elements deep. It is in special stack registers, not in RAM. In the enhanced family, the stack is 32 elements deep and can also be used by the program with load commands (e.g. PUSH and POP), but it is also located in separate memory cells. Only with the 16 bit families is the stack free in the RAM.

Command structure

As mentioned above, it concerns with PIC to RISC - processors , so they have a very small but effective command set . A command or a command word in the program memory, these are between 12 and 24 bits (see above), corresponds to a complete command including arguments, every command except the commands for program branching is processed within one cycle. The only exceptions to this are the enhanced family with five commands, which can consist of two words, and the 16-bit controllers, which also have only a few two-word commands. The ALU in the eight-bit PIC is a one-address machine. For commands that require two arguments, one is always the W (Work) register. The enhanced PIC, on the other hand, can also transfer data from one memory cell to another memory cell (MOVFF adr1, adr2; adrx = RAM or SFR, requires two words and two cycles).

The 16-bit controllers have a set of 16 × 16-bit registers that are available for most commands, but some of them also have special tasks, e.g. B. for the stack or for DSP commands.

Interrupt handling

In contrast to many other controllers, the 8-bit PIC has no (Baseline), one (MidRange) or two (Enhanced) interrupt vectors that are jumped to when any interrupt is triggered . Its address is 0004 h for the MidRange PIC, 0008 h for the byte-addressed Enhanced PIC (this corresponds to the word address 0004 h for the MidRange PIC) and 0018 h. Restricted priority control is only possible with the enhanced PIC, otherwise this must be taken over by the interrupt routine itself. The 16-bit families have their own, up to 118 interrupt vectors for almost every periphery or special function; one of 8 different priority levels can be freely assigned to these.

Internal peripherals

There is a wide variety of different types of PICs. These contain many different internal peripheral units. The most common are:

  • Timer - in some cases, two 16-bit timers each have to be used as 32-bit timers with the PIC24 and dsPIC
  • A / D converter , 8, 10 or 12 bits are possible depending on the variant. The PIC24H and dsPIC33 sometimes have two A / D converters that work independently of one another; these can be programmed and used by the user in various operating modes with fast 10 bits or more precise 12 bits. The fastest A / D converters are currently found in the dsPIC30 of the SMPS subfamily with up to approx. 2  MSPS (million A / D conversions per second)
  • Analog comparators , many PICs have one or two comparators, they can also be interconnected as a "window comparator". The fastest comparators can be found in the SMPS subfamily dsPIC30. They have a switching time of approx. 20 ns
  • PWM is available in many PICs, newer models mostly have so-called "Enhanced PWM" with the option of controlling a so-called dead time between the quasi-simultaneous switching, this is particularly required for electrical motor and voltage controls. The fastest PWMs are currently found in the dsPIC30 of the SMPS subfamily with a bit cycle time of only approx. 1.1 ns. This corresponds to a frequency of approx. 960 MHz. B. a PWM with 10 bit resolution at approx. 950 kHz is possible
  • Standard communication interfaces (serial, e.g. RS232 , SPI , I²C , ...) are available on most controllers. New controllers usually have a so-called "EnhancedUART", this designation means that the hardware also fully supports the LIN protocol
  • USB , with the enhanced micros of the subfamilies PIC18Fxx [J] 5x there are different products with a USB function (slave) for a maximum of 12 Mbit / s, full-speed USB. New products with a USB OTG on chip are also available for the PIC24F family; the names should be PIC24FJxxxGB1xx. In the PIC32 family, new products with USB OTG should also come by summer 2008.
  • CAN , both with the enhanced micros of the subfamilies PIC18Fxx8x, as well as with the PIC24 and dsPIC, there is a large number of different controllers with support for CAN 2.0B
  • Watchdog timer is available in all microcontrollers, usually also with their own, low-frequency oscillator on the chip, e.g. B. 32 kHz or 512 kHz
  • LCD drivers can only be found with the MidRange and Enhanced 8 Bit Micros, products are all PIC16F9xx and PIC18Fxx [J] 9x. You can control small, single-color displays with up to 48 elements or multiplex up to 196 elements
  • Ethernet controllers are a new feature in the Enhanced series in the PIC18FxxJ6x subfamily and contain both the MAC and the PHY for 10BASE-T (IEEE 802.3i). Microchip offers a free Ethernet stack for these controllers in the form of an application note

These peripherals are addressed via SFRs (special function register) and can trigger different interrupts depending on the function.


The options for the oscillator (s) are as diverse as the PICmicros and their product families themselves. The oldest PICmicros generally did not have their own oscillator on the chip. Later the PIC12 were the first to have their own 4 MHz RC oscillator on the chip. Then new concepts with more flexibility were added for PIC with more pins. Today most current PIC and dsPIC have very extensive on-chip oscillator options. Only on the particularly small or inexpensive types, PIC10F2xx or PIC18FxxJxx, there is only a limited on-chip oscillator with 32 kHz or 4 MHz. However, these RC oscillators usually have a limited accuracy of only approx. 1% to 5%. For more precise applications, for example with asynchronous communication (RS232, USB, CAN), this is not sufficient, and an external quartz or oscillator must be connected.

Program development

Real-ICE, emulator, debugger and programming device
ICD2, Debugger and Programmer from Microchip
PICkit2, low cost programming device from Microchip
PICstart +, programming device from Microchip
Development board for the dsPIC30 from Microchip

In order to be able to use the microcontroller in an application, the developer must first develop a program. The program development can be done using assembler or a high-level language , e.g. B. C , BASIC or other compilers happen. For the smaller microcontrollers , assembler is still common today in order to keep the code as efficient and small as possible, which under certain circumstances enables the use of smaller, cheaper microphones. In the case of microphones with a larger memory or for more demanding tasks, C is mostly used in industry today, as it makes it easier to maintain the program code later.

  • Programming in assembler
All PICs can be programmed with the appropriate assembler in the free MPLAB software from Microchip. In addition to the assembler, this MPLAB software also provides a simulator for testing the code and the interfaces to the various development tools.
  • Programming in C
Microchip also offers free C compilers for the Enhanced (PIC18) family, for the 16-bit families (PIC24 and dsPIC) and for the new PIC32 family as the so-called Students Edition (LITE). Further C compilers are available from various providers, see web links .
  • Troubleshooting - Debugging
For debugging, you can use the free simulator in MPLAB or you can use additional hardware, debugger or emulator, to monitor the program flow directly in the circuit and correct errors.
  • Debugger
In addition to other providers, Microchip itself offers a range of debugging tools. The most widespread is the ICD2, but the much cheaper PICkit2 can now do this with a few PICs. The recently available, much more powerful and also more expensive Real-ICE can currently only debug the 16 and 32 bit products and some products of the PIC18 family, but this is to be extended to the other product families in the medium to long term. All three products mentioned here can also be used to program (burn) the PIC. There are numerous circuits on the Internet to build an ICD2 replica yourself, which is MPLAB compatible. These replicas are tolerated by Microchip despite the use of copyrighted program code
  • emulator
There are also emulators from other manufacturers as well as from Microchip itself. There is currently an ICE2000 for the PIC10 to PIC18, as well as an ICE4000 for the PIC18 and dsPIC30. The current LowVoltage versions PIC18FxxJxx, PIC18FxxKxx, PIC24, dsPIC33 and also the new PIC32 are not supported by any of these emulators; one of the debuggers above must be used for troubleshooting. The emulators cannot program (burn) a finished program.
  • programming
This process is also known as burning . This means that information (e.g. a compiled program, also called firmware) is saved on the internal EPROM or flash memory of the component. Most PIC microcontrollers offer a so-called ICSP interface, which can also be used to transmit the machine code if the chip has already been built into the circuit. This process can then be carried out with a programming device. In addition, most 16 and 32-bit controller families can also be programmed using the integrated JTAG interface .

Free compiler

Microchip itself offers free and free C compilers based on the GNU C Compiler (gcc) for download on their homepage.

Two are the so-called student versions of the three professional and paid versions, C30 (for all PIC24 and dsPIC) and C32 (for all PIC32). Compared to the professional version, these student versions only have those restrictions that are hardly of any consequence for home users. They may not only be used by students, but by everyone. The compilers can be used stand-alone or integrated into the free MPLAB development environment.

The extensive libraries that go beyond the C standard are only semi-free , however , as they may not be used for commercial purposes. This is where they differ from free software .

The PIC18 compiler is based on a different code base . In the free student version, as a restriction compared to the full version, the existing code optimization is not freely configurable, but is carried out according to the default scheme, which represents a compromise between code size and speed.

Another semi-free compiler is the CC5X compiler, which can also be freely used for non-commercial applications.

The free "Small Device C Compiler" supports processors of the PIC16 and PIC18 families.

Security and copy protection

OTP -based PICmicro microcontrollers are not sufficiently protected against non-invasive and invasive attacks, since the read-out protection can often be reset by specifically irradiating certain areas of the chip die with UV light. However, this phenomenon can also be found in some OTP-based microcontrollers from other manufacturers. The PICmicro family is not suitable for high security applications such as secure smart cards .

To reset the read-out protection fuses, the plastic housing is first removed by grinding and decomposing with acid above the semiconductor chip. The location of the readout protection fuses on the chip are then located under a microscope and the remaining part of the semiconductor is covered with an opaque material. The read protection fuse is then reset by ultraviolet radiation .

With the PIC16C71, it was possible to draw conclusions about the content of the program memory non-invasively and without operating it outside of the specifications through a cryptographic vulnerability that was found by Dejan Kaljević. However, certain commands have to be guessed or determined according to the context.

Attacks on flash-based models of the PICmicro series can sometimes be carried out through intentional fluctuations in the supply voltage, the programming voltage and the clock rate and through invasive actions (microprobing, FIB editing).

The EEPROM-based PIC16C84 is particularly easy to read due to non-invasive attacks such as fluctuations in the supply voltage. There are many hobby programming devices that provide for reading from copy-protected PIC16C84 as standard. However, the successor, the flash-based PIC16F84 (A), has fixed this problem.

The manufacturer Microchip installs precautions such as metal protective shields or metal nets in some newer models and revisions. A protective shield prevents the resetting or falsification of readout protection fuses by means of UV light, while a metal net is supposed to prevent or make microprobing more difficult. However, an experienced attacker can cut the metal net in the top layer using a laser or "drill it" using an FIB .

PIC-compatible microcontrollers and replicas

  • Ubicom , formerly Scenix, made the SX series. These functionally similar microcontrollers were much faster than the PIC baseline architecture. As of 2005, the SX series microcontrollers were sold exclusively by Parallax, so the newer series had a Parallax manufacturer logo. Since Ubicom had no or too few resources for the production of the SX series, Ubicom supplied Parallax with the finished and sawn silicon wafers, while Parallax had the dies mounted in housings and sold them exclusively. However, since Ubicom ceased production of the dies in 2009, there are only those "Lifetime Buy" stocks that Parallax bought from Ubicom. New SX controllers are no longer manufactured, and there is no replacement with the same function.
  • Holtek, a Taiwanese semiconductor manufacturer, offers microcontrollers that are very similar to the PIC architecture, but not completely compatible.
  • G-Alantic Enterprises, a Taiwanese manufacturer, produces not only PC cases but also microcontrollers of the MTD series, which are described as PIC-compatible.

In addition, there are other replicas of less well-known semiconductor manufacturers from the Far East, which are almost always limited to the baseline series and only have OTP-EPROM or mask ROM memories. These microcontrollers are primarily designed for mass production.


  • Anne König, Manfred König: The great PIC-Micro manual. On CD-ROM: MPLAB, PIC programs, sample code . 2007, ISBN 3-7723-4265-5 .
  • Stefan Lehmann, Wolfram Harth: PIC microcontroller programming . 2007, ISBN 3-8266-1763-0 .
  • Günter Schmitt: PIC microcontroller - programming in assembler and C - circuits and application examples for the families PIC18, PIC16, PIC12, PIC10 . 2008, ISBN 978-3-486-58597-1 .

Web links

Commons : PIC microcontrollers  - collection of pictures, videos and audio files
PIC portals with lots of information and do-it-yourself projects


  1. ^ General Instrument Corporation, Microelectronics - 1977 Data Catalog . Page 10C-2
  2. Smallest version
  3. Microchip 32Bit Homepage
  4. MIPS M4K Homepage ( Memento of the original from October 29, 2007 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / www.mips.com
  5. Product overview of the PIC32 family
  6. pickit3 programmer & debugger for USB port
  7. PICPgm
  8. Chip cards with PIC, Elektor November 2006 [1]  ( page no longer available , search in web archivesInfo: The link was automatically marked as defective. Please check the link according to the instructions and then remove this notice.@1@ 2Template: Dead Link / www.elektor.de  
  9. ^ NESS Security Products
  10. Linyang power meters
  11. BMW energy management
  12. Insta lighting systems
  13. PDF document on various program memories [2] (PDF; 3.3 MB)
  14. a b MPLAB C Compiler
  15. Compiler license
  16. PIC18 compiler
  17. CC5X compiler
  18. ^ SDCC
  19. "Copy protection in modern microcontrollers" A detailed description of various attack methods on microcontrollers
  20. Dejan Kaljević's program 'CrackPic' ( memento of the original from August 9, 2010 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. (Mirror of the meanwhile deleted original page), a non-invasive attack on the 16C71 and an explanation of how it works @1@ 2Template: Webachiv / IABot / www.dejankaljevic.org
  21. G-Alantic ( Memento of the original from July 23, 2008 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. , a manufacturer of PIC replicas @1@ 2Template: Webachiv / IABot / www.g-alantic.com.tw