Programmer (hardware)
Device that installs firmware on a device From Wikipedia, the free encyclopedia
In the context of installing firmware onto a device, a programmer, device programmer, chip programmer, device burner,[1]: 364 or PROM writer[2] is a device that writes, a.k.a. burns, firmware to a target device's non-volatile memory.[3]: 3




Typically, the target device memory is one of the following types: PROM, EPROM, EEPROM, Flash memory, eMMC, MRAM, FeRAM, NVRAM, PLD, PLA, PAL, GAL, CPLD, FPGA.
Connection

On-Board Programmer
for AVR microcontroller
with USB Port interface
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.[4]: 642, pdf15 If the device is not a standard DIP packaging, a plug-in adapter board, which converts the footprint with another socket, is used.[5]: 58
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.[6][7][8]
Transfer
Data is transferred from the programmer to the device as signals via connecting pins.
Some devices have a serial interface[9]: 232, pdf3 for receiving data (including JTAG interface).[4]: 642, pdf15 Other devices communicate on parallel pins, followed by a programming pulse with a higher voltage for programming the data into the device.[10]: 125
Usually, a programmer is controlled via a connected personal computer through a parallel port,[1]: 364 USB port,[11] or LAN interface.[citation needed] A program on the controlling computer interacts with the programmer to perform operations such as configure install parameters and program the device,[1]: 364 [12]: 430 [13][14]
Types

There are four general types of programmers:
- Automated programmers often have multiple programming sites/sockets[15] for mass production.[4] 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.[16]
- Pocket programmers for development and field service.[16][17]
- Specialized programmers for certain circuit types only, such as FPGA,[18] microcontroller,[4]: 642, pdf15 and EEPROM programmers.[13]
History

A shoebox size

Flash memory Programmer
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 0–25 Volts.[19]: 651 [20]: 40 But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.[21][22]
In the early days of computing, booting 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 codes 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.[23]: 261–262 [24][25] Nowadays, EEPROMs are used for bootstrapping mechanism as BIOS, and no need to operate mechanical switches for programming.[26]: 45
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.
- Minato Holdings
- 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 – Binary file format
- COFF – Binary file format
- Hardware description language
References
External links
Wikiwand - on
Seamless Wikipedia browsing. On steroids.