Device Programmers Review

Device Programmers



A Device programmer, alias Chip programmer, Circuit programmer, IC programmer, or just EPROM burner, is a unit of hardware used for transferring 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 a stand-alone workstation, computer-controlled, or production unit.

There are 4 common types of device programmers:

  • Gang/Set (or Production) programmers - to program numerous circuits in mass manufacturing. A gang or set programmers are used to program some devices simultaneously. A gang programmer can program some devices with the same data for all devices. A set programmer can program some devices with different data for each device.
  • Universal programmers - for development and short-series production. They can be used as Device Programmers with the ability to test and identify TTL and CMOS family ICs.
  • Pocket programmers - hand-held programmers for advancement and field service.
  • Specialized programmers - for specific circuit kinds only, e.g., EPROM programmers.

Some sources also single out (according to the device capabilities) such devices:

  • Single socket programmers - are used for programming one device at a time.
  • In-circuit programmers - to program chips already installed in a computer system, without the need to unplug the chip.
  • Erasers - are chip erasers, such as EPROM Eraser or EEPROM Eraser.

Early device programmers ranged the size of a shoebox and weighed several kg; some of them are still produced and find their purchasers. Present-day device programmers weigh only 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 years 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 a range of manufacturers, which 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?

Device Programmers (software)

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 the 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 environmental 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, 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