
In the context of
installing firmware
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
onto a device, a programmer, device programmer, chip programmer,
device burner,
or PROM writer
[
] is a device that writes, a.k.a. burns,
firmware
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
to a target device's
non-volatile memory
Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data.
Non-volatile memory typ ...
.
[
]
Typically, the target device memory is one of the following types:
PROM,
EPROM
An EPROM (rarely EROM), or erasable programmable read-only memory, is a type of programmable read-only memory (PROM) integrated circuit, chip that retains its data when its power supply is switched off. Computer memory that can retrieve stored d ...
,
EEPROM
EEPROM or E2PROM (electrically erasable programmable read-only memory) is a type of non-volatile memory. It is used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as a separate chip d ...
,
Flash memory
Flash memory is an Integrated circuit, electronic Non-volatile memory, non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for t ...
,
eMMC,
MRAM,
FeRAM,
NVRAM,
PLD,
PLA,
PAL
Phase Alternating Line (PAL) is a color encoding system for analog television. It was one of three major analogue colour television standards, the others being NTSC and SECAM. In most countries it was broadcast at 625 lines, 50 fields (25 ...
,
GAL,
CPLD,
FPGA
A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
.
Connection

Generally, a programmer connects to a device in one of two ways.
Insertion
In some cases, the target device is inserted into a socket (usually
ZIF) on the programmer.
If the device is not a standard
''DIP packaging'', a plug-in adapter board, which converts the
footprint with another socket, is used.
[
]
Cable & port
In some cases, a programmer connects to a device via a cable to a connection port on the device. This is sometimes called ''on-board programming'', ''in-circuit programming'', or ''
in-system programming''.
[
][
][
]
Transfer
Data is transferred from the programmer to the device as signals via connecting pins.
Some devices have a serial interface
[
]
for receiving data (including
JTAG interface).
Other devices communicate on parallel pins, followed by a programming pulse with a higher voltage for programming the data into the device.
[
]
Usually, a programmer is controlled via a connected
personal computer
A personal computer, commonly referred to as PC or computer, is a computer designed for individual use. It is typically used for tasks such as Word processor, word processing, web browser, internet browsing, email, multimedia playback, and PC ...
through a parallel port,
[
]
USB
Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
port,
[
]
or
LAN interface.
A
program on the controlling computer interacts with the programmer to perform operations such as configure install parameters and program the device,
[
] [
]
Types

There are four general types of programmers:
# Automated programmers often have multiple programming sites/sockets
[
] for mass production.
Sometimes used with robotic pick and place handlers with on-board sites to support high volume and complex output such as laser marking, 3D inspection, tape input/output, etc.
# Development programmers usually have a single programming site; used for first article development and small-series production.
[
]
# Pocket programmers for development and field service.
[
]
# Specialized programmers for certain circuit types only, such as
FPGA
A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
,
[
] microcontroller
A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
,
and
EEPROM
EEPROM or E2PROM (electrically erasable programmable read-only memory) is a type of non-volatile memory. It is used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as a separate chip d ...
programmers.
History

Regarding old PROM programmers, as the many programmable devices have different voltage requirements, every pin driver must be able to apply different voltages in a range of 025 Volts.
[
][
]
But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.
[
][
]
In the early days of
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
,
booting
In computing, booting is the process of starting a computer as initiated via Computer hardware, hardware such as a physical button on the computer or by a software command. After it is switched on, a computer's central processing unit (CPU) h ...
mechanism was a mechanical devices usually consisted of switches and
LEDs. It means the ''programmer'' was not an equipment but a human, who entered
machine code
In computer programming, machine code is computer code consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). For conventional binary computers, machine code is the binaryOn nonb ...
s one by one, by setting the switches in a series of "on" and "off" positions. These positions of switches corresponded to the machine codes, similar to today's
assembly language
In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence bet ...
.
[
][
][
]
Nowadays,
EEPROM
EEPROM or E2PROM (electrically erasable programmable read-only memory) is a type of non-volatile memory. It is used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as a separate chip d ...
s are used for
bootstrapping
In general, bootstrapping usually refers to a self-starting process that is supposed to continue or grow without external input. Many analytical techniques are often called bootstrap methods in reference to their self-starting or self-supporting ...
mechanism as
BIOS
In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is a type of firmware used to provide runtime services for operating systems and programs and to perform hardware initialization d ...
, and no need to operate mechanical switches for programming.
[
]
Manufacturers
For each vendor's web site, refer to
"External links" section.
* Batronix GmbH & Co. KG
* BPM Microsystems
* Conitec Datasystems
* Data I/O Corporation
* DediProg Technology Co., Ltd
* Elnec s.r.o
* Elprosys Sp. z o.o.
* halec
* Hi-Lo System Research
* MCUmall Electronics Inc.
*
* Phyton, Inc.
* Xeltek Inc.
See also
*
Off-line programming
*
In-system programming
*
Debug port
*
JTAG interface
*
Common Flash Memory Interface
*
Open NAND Flash Interface Working Group
*
Atmel AVR#Programming interfaces
*
PIC microcontroller#Device programmers
*
Intel HEX – ASCII file format
*
SREC – ASCII file format
*
ELF
An elf (: elves) is a type of humanoid supernatural being in Germanic peoples, Germanic folklore. Elves appear especially in Norse mythology, North Germanic mythology, being mentioned in the Icelandic ''Poetic Edda'' and the ''Prose Edda'' ...
– Binary file format
*
COFF
The Common Object File Format (COFF) is a format for executable, object code, and shared library computer files used on Unix systems. It was introduced in Unix System V, replaced the previously used a.out format, and formed the basis for ext ...
– Binary file format
*
Hardware description language
In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, usually to design application-specific integrated circuits (ASICs) and to progra ...
References
External links
*Technical information
JEDEC - Memory Configurations: JESD21-CJEDEC - Common Flash Interface (CFI) Specification, JESD68.01, September 2003.Intel - Common Flash Interface (CFI) and Command SetsIEEE Std 1532-2002 (Revision of IEEE Std 1532-2001) - IEEE Standard for In-System Configuration of Programmable DevicesWhat is the IEEE 1532 Standard? Keysight TechnologiesJEDEC - STANDARD DATA TRANSFER FORMAT BETWEEN DATA PREPARATION SYSTEM AND PROGRAMMABLE LOGIC DEVICE PROGRAMMER: JESD3-C, Jun 1994JEDEC - JC-42 Solid State Memories
*Manufacturers
BPM Microsystems Conitec Datasystems Inc. Data I/O Corporation Elnec s.r.o. Elprosys Sp. z o.o. Dediprog halec Hi-Lo System Research Co. Ltd. MCUmall Electronics Inc. Minato Holdings Inc. Phyton, Inc. Xeltek Inc.
{{DEFAULTSORT:Programmer (Hardware)
Computer engineering
Integrated circuits
Non-volatile memory
Gate arrays