Conitec  
 
 
 

 
  OVERVIEW
     
       
 
 
  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; modern device programmers weigh only a few 100 g 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 5000 different programmable devices exist today. Some devices are produced by different manufacturers, resulting in about 7000 different device names. However many programmer manufacturers advertise with 20.000, 30.000, or even more than 40.000 supported devices - how is that possible? The answer is simple: The same device is just counted several times. For instance, the same GAL16V8 from Lattice appears up to 400(!) times in some manufacturer's device lists. Due to this cheap method to inflate the lists, the advertised number of devices has little meaning for device programmer comparison.

For better transparency, Conitec distinguishes several device numbers for the GALEP device lists:

  • By Name - the real number of supported devices.
  • By Package - including supported device packages.
  • By Variants - including device variants that use the same programming algorithm.

Example: CAT93C46S, CAT93C46J, and CAT93C46K are only variants of CAT93C46 (same programming algorithm), but CAT93C46-18 is a separate device (different algorithm).

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

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.

What's the price of a universal device programmer?

Universal device programmers come at prices between 350 and 3500 US$. However this price doesn't mean much - you have to add the prices of the Adapters or Modules for the package types you'll need to program (adapters are put into the DIL socket, while modules replace the socket). Programmable devices come in about 60 different usual package types. So after purchasing 60 adapters or modules together with your device programmer, you can program all existing devices... or can you?

Unfortunately, no. At least not with all programmers. As you can see in the device lists of some manufacturers, you'll sometimes need up to 1000(!) different adapters for the listed devices. Several differently wired adapters for the same package type are required when the programmer lacks the number or 'universality' of pin drivers. On the other hand, programmers with many really universal pin drivers - such as the GALEP-5D - only require a minimum number of modules and thus reduce overall costs remarkably. For device programmer comparison, also calculate your adapter or module costs from the device lists.

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.

Some programmers on the market today, even by major manufacturers, don't meet the above reliability criteria. For instance, the programmers of a certain manufacturer are 'famous' for their failure rate of up to 20% per year. To be sure that you can rely on your device programmer and on the manufacturer support, check if the programmer is CE, UL and RoHs compliant and if its manufacturer is ISO 9001 certified. Ask the reseller about their experience with the reliability of a programmer series. They'll know.

 

 


 
 

 

Conitec Datasystems, Inc · 5000 Thorne Drive · La Mesa, CA 91941                                                   |