Device Programmers Review Apr. 6, 2015


A Device programmer, alias "Chip programmer", "Circuit programmer", "IC programmer" or just "EPROM burner", is a unit of hardware used to transfer data into programmable integrated circuits (i.e. to program nonvolatile memory), such as ROMs, EPROMs, EEPROMs, Flash Memory, GALs, PALs, PLDs, CPLDs, FPGAs, microcontrollers and other electrically programmable devices. The programmable device is inserted into a socket on the device programmer and its memory buffer content is transferred into the programmable device. Programmer kinds for device programmers can be stand-alone workstation, computer controlled or production unit.

There are 4 common kinds of device programmers:

  • Gang/Set (or Production) programmers - to program numerous circuits in mass manufacturing. Gang or set programmers are used to program some devices simultaneously. A gang programmer can program some devices with same data for all devices.  A set programmer can program some devices with different data for each device.

  • Universal programmers - used for development and short-series production. It can be used as a Device Programmer with the ability to test and identify TTL and CMOS family ICs.

  • Pocket programmers - handy programmers for advancement and field service.

  • Specialized programmers - for specific circuit kinds only, e.g. EPROM programmers.

Some sources also single out (in accordance to a device capabilities) such devices:

  • Single socket programmers - are used to program one device at a time.

  • In-circuit programmers - to program chips already installed in a computer systems, without the need to unplug the chip and

  • Erasers - are chip erasers, such as EPROM Eraser or EEPROM Eraser.

Early device programmers ranged the size of a shoe box and weighed several kg; some of them are still produced and find their purchasers. Present-day device programmers have weight of only a several hundred grams and fit in a jacket pocket. The perfect programmer integrates the advantages of a universal pocket programmer with the ability to connect several programmers to a gang programming cascade to the same PC.

Who uses a Device Programmer?

Anyone who tests, repairs, or programs any electronic device that uses a memory IC (embedded code). The market for this type of equipment has grown at a large rate over the past few year and continues to grow.

What Devices are Supported and How Many?

Devices supported by device programmers can be of numerous types.  These include Complementary Metal Oxide Semiconductor (CMOS), Programmable Read-Only Memory (PROM), Bipolar Programmable Read-Only Memory (BPROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), FLASH, Programmable Logic Device (PLD), Erasable Programmable Logic Device (EPLD), Complex PLD, Programmable Array Logic (PAL), Generic Array Logic (GAL), microcontrollers, and PIC series of microcontrollers.

More than  6000 various programmable devices exist. Some of them are produced by various manufacturers, that results in about 10.000 different device names. None-the-less programmer producers advertise with 40.000, 50.000 or even more than 60.000 supported devices - how is that possible?


The answer is easy: the same device is just counted a lot of times, e.g. GAL16V8 from Lattice appears up to 400(!) times in the device list of an East European programmer manufacturer. Often non-existing packages are also routinely added to the lists, such as DIL versions of devices that are not manufactured in DIL packages.

That’s why the advertised number of devices has little meaning for device programmer comparison. For better transparency, such manufacturers as EE Tools publish several device numbers for the device support list:

  • By Name - the real number of supported device algorithms.

  • By Package - including the supported device packages.

  • By Variants - including device variants that use the same programming algorithm.

The device numbers advertised by programmer manufacturers are usually based on the "by variants" count, while the real number of supported algorithms is kept secret. All claim nevertheless on their websites to offer the only honest device number, and lash out against the counting methods of their competitors. So it's not simple to see how many devices are really supported.

What is a Pin Driver?

A pin driver is an electronic circuit that controls a single socket pin. It provides logic levels, programming voltages, supply voltages, pullup/pulldown resistors, ground, clock, and logical input with adjustable threshold. The pin driver is the most essential factor for a device programmer's reliability, versatility, and speed.

An important feature is low voltage support. The lower the logical output voltage, the more low-voltage devices can be reliably programmed. This becomes especially important with the arrival of low-power circuits from several manufacturers that require voltage levels down to 1.3V.

Internally the pin driver is either a specifically designed integrated circuit or built from separate components such as transistors and resistor networks. Using a special driver IC has many advantages: minimum output capacitance, low ground bounce noise, faster clock rates, better signal forms. High integration also allows the design of small, lightweight, USB- or battery-powered portable programmers.

How to Choose a Proper and Reliable Programmer?

Important device performance specifications to consider for device programmers include number of pins, number of sockets, memory buffer, and file format supported.  The number of pins is the maximum number of pins supported.  The number of sockets is the number of devices that can be programmed in parallel.  The memory buffer is the amount of memory embedded in the programmer.  It is used to store temporarily the programmer output.  File formats that can be supported include Intel Hex, Intel Extended Hex, Intel 32-bit Hex, Motorola S-Record, binary, JEDEC, ASCII, and POF.

Device programmers are often used for series production where a failure would be fatal. But also in development you really don't want to contemplate whether a failure is caused by a design mistake or just by a poorly programmed PLD! Users rightfully expect a device programmer to be extremely reliable. Carefully designed and manufactured hardware, operation under a wide range of environment conditions and power supplies, and extensive production tests and burn-in cycles are paramount.

Pin drivers of a reliable programmer should produce a precisely defined signal. They should be protected against electrical damage and designed to detect and survive all sorts of misuse, such as wrongly inserted circuits. If a programmer is equipped with an own microprocessor, it should contain a separate circuit for controlling and monitoring the programming voltages in case of a software fault.

Some device programmers conform with the American requirements of the Federal Communication Commission (FCC) and with the European CE Marking (Conformite Europeene or European Conformity) system, which is helpful for exports to the countries of the European Economic Area (EEA). Operating humidity and operating temperature are important environmental operating conditions to consider.

Question And Answer