Short description: Device that configures programmable integrated circuits
Engineering Universal Programmer with two socket.Pocket Programmer Galep-5 with a ZIF socketUniversal Gang Programmer with 16 socketsThe 3928, with up to seven sites, is made for programming large data devices, such as MCUs, eMMC HS400, NAND, NOR and Serial Flash devices. High-speed signals support devices up to 200 Mhz and the latest eMMC HS400 modes with data transfer rates of 2.5 nanoseconds per byte.
JTAG Connector-based On-Board Programmer for AVR microcontroller with USB Port interface
Programmer hardware has two variants. One is configuring the target device itself with a socket on the programmer. Another is configuring the device on a printed circuit board.
In the former case, the target device is inserted into a socket (usually ZIF) on top of 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
In the latter case, device programmer is directly connected to the printed circuit board by a connector, usually with a cable. This way is called on-board programming, in-circuit programming, or in-system programming.[6][7][8]
Afterwards the data is transferred from the programmer into the device by applying signals through the connecting pins. Some devices have a serial interface[9]: 232, pdf3
for receiving the programming data (including JTAG interface).[4]: 642, pdf15
Other devices require the data on parallel pins, followed by a programming pulse with a higher voltage for programming the data into the device.[10]: 125
Usually device programmers are connected to a personal computer through a parallel port,[1]: 364 USB port,[11]
or LAN interface.[12]
A software program on the computer then transfers the data to the programmer,[1]: 364 [13]: 430
selects the device and interface type, and starts the programming process to read/ write/ erase/ blank the data inside the device.[14][15]
Types
A Gang Programmer with a Set of 4 Sockets.
There are four general types of device programmers:
Automated programmers (multi-programming sites, having a set of sockets)[16] for mass production.[4] These systems utilize robotic pick and place handlers with on-board sites. This allows for high volume and complex output (such as laser marking, 3D inspection, Tape input/output, etc.)
Development programmers (usually single-programming site) for first article development and small-series production.[17]
Pocket programmers for development and field service.[17][18]
Historical Programmer; A shoebox sizePocket-sized & USB Port interfaced "ICE for MCU" & 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.[20]: 651 [21]: 40
But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.[22][23]
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.[24]: 261–262 [25][26]
Nowadays, EEPROMs are used for bootstrapping mechanism as BIOS, and no need to operate mechanical switches for programming.[27]: 45
Manufacturers
For each vendor's web site, refer to "External links" section.
↑Choi, S. J.; Han, J. W.; Jang, M. G.; Kim, J. S.; Kim, K. H.; Lee, G. S.; Oh, J. S.; Song, M. H. et al. (2009). "High Injection Efficiency and Low-Voltage Programming in a Dopant-Segregated Schottky Barrier (DSSB) FinFET SONOS for nor-type Flash Memory". IEEE Electron Device Letters30 (3): 265–268. doi:10.1109/LED.2008.2010720. ISSN0741-3106. Bibcode: 2009IEDL...30..265C.