Myths and Facts

Frequently asked questions on device programming

What is a device programmer?

A device programmer, also called "chip programmer", "circuit programmer", "IC programmer" or just "EPROM burner", is a piece of hardware for transferring data into programmable integrated circuits, such as ROMs, EPROMs, EEPROMs, Flash Memory, GALs, PALs, PLDs, CPLDs, FPGAs, and microcontrollers. There are four general types of device programmers:

  • Gang programmers - for programming multiple circuits in mass production.
  • Universal programmers - for development and small-series production.
  • Pocket programmers - portable programmers for development and field service.
  • Specialized programmers - for certain circuit types only, f.i. EPROM programmers.

Early device programmers had the size of a shoe box and a weight of several kg; some of them are still manufactured and find their buyers. Modern device programmers weigh only a few hundred grams and fit in a jacket pocket. The ideal programmer combines the advantages of a universal pocket programmer with the possibility to connect several programmers to a gang programming cascade to the same PC. On this website you can find a device programmer comparison chart with the average prices and features of some popular programmers.

How many devices are supported?

Approximately 6500 different programmable devices exist today. Some devices are produced by several manufacturers, resulting in about 10.000 different device names. However programmer manufacturers advertise with 40.000, 50.000, or even more than 60.000 supported devices - how is that possible?

The answer is simple: The same device is just counted many times. For example, the same GAL16V8 from Lattice appears up to 400(!) times in the device list of an East European programmer manufacturer. Often nonexisting packages are also routinely added to the lists, such as DIL versions of devices that are not manufactured in DIL packages.

For these reasons, the advertised number of devices has little meaning for device programmer comparison. For better transparency, Conitec publishes several device numbers for the GALEP device lists:

  • 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.

An example: CAT93C46S, CAT93C46J, and CAT93C46K are only variants of CAT93C46 with the same programming algorithm, but CAT93C46-1.8 is a separate device with a different algorithm for low voltage.

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 easy to see how many devices are really supported. Estimating from samples, we found the device count of a China based manufacturer inflated by a factor about 10, while a manufacturer from Eastern Europe achieves even factors up to 40 with the methods above. As long as manufacturers don't publish their real algorithm count, the only way to find the right programmer is directly checking the published lists against the devices that you'll need.

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 will become especially important with the arrival of new low-power circuits from several manufacturers that require voltage levels down to 1.3V.

Internally the pin driver is either an especially designed integrated circuit (as in the GALEP programmer series), 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.

What is JTAG?

JTAG (Joint Test Access Group) is a programming and test interface for digital circuits, standardized as IEEE 1149.1. Originally developed for programmable logic, the JTAG interface is frequently also used for microcontrollers. The device is accessed through four serial lines (TMS, TCK, TDI, TDO) through which ports, memory, lock bits, registers etc. can be read and written in high speed.

JTAG standardizes device programming. Some device programmers, such as the current GALEP series, can program JTAG compatible devices even when they not yet entered the device list. For this the device compiler has to generate an SVF script that is then interpreted by the programmer and used to program the device in high speed. The SVF format is supported by many device target compilers; programs for generating SVF scripts are also usually available from the device manufacturer.

Besides programming, the JTAG interface also allows testing and debugging microcontrollers and their I/O ports. With a JTAG debugger you can develop software directly on the original board. The debugger triggers hardware and software breakpoints, interrupts the program and executes it in single step mode… without emulator and without additional hardware.

Not only specific JTAG debugging hardware, but also some device programmers such as the GALEP-5 series are able to debug JTAG microcontrollers - either in circuit or directly in the programming socket. The OpenOCD (On Chip Debuger) software currently supports ARM7, ARM9, XScale, und Cortex-M3 processors. Besides debugging, the software also allows in circuit testing of complete boards (Boundary Scan) through user-defined test algorithms. This way your device programmer can be used as a complete development, test, and production suite.

How reliable is a device programmer?

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 badly 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.

Sadly, some programmers on the market today, even by major manufacturers, don't meet the above reliability criteria. Ask the resellers about their experience with the reliability of a programmer series. They'll know.

What kind of support is offered?

Support is an important criteria for selecting a device programmer that often has to do its duty for up to 20 years. The most relevant question: How long will software updates and new device algorithms be developed and provided for a certain programmer?

Some manufacturers drop their programmer like a hot potato immediately after production end. On the other hand, Conitec provides regular free software updates not only during production of a programmer generation, but also for up to 12 years after production end. Currently, Conitec develops software updates for the programmers GALEP-3 (out of production since 2000), GALEP-4, GALEP-5, und GALEP-5D.

For all programmers, Conitec additionally offers a Preventive Maintenance service. It contains a complete unit test, possibly exchange of defect parts, recalibration, firmware or software update, and a 12 months warranty extension. We recommend to our clients that they send us their programmers for preventive maintenance 2 years after purchase at first, and then yearly. This ensures that one can always rely on a perfectly working programmer.

The GALEP-5/5D software is updated every one or two weeks, the GALEP-3 and GALEP-4 software about once every month. Updates are free and available on the download page.