SuperPro6100: USB interfaced stand alone Universal Programmer with plug-in Adapter Board
The 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.: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.: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.
Afterwards the data is transferred from the programmer into the device by applying signals through the connecting pins. Some devices have a serial interface:232, pdf3
for receiving the programming data (including JTAG interface).: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.:125
Usually device programmers are connected to a personal computer through a parallel port,:364USB port,
or LAN interface.
A software program on the computer then transfers the data to the programmer,:364:430
selects the device and interface type, and starts the programming process to read/ write/ erase/ blank the data inside the device.
A Gang Programmer with a Set of 4 Sockets.
Xertek SuperBot-2 16-Sockets Automated Gang Programmer
There are four general types of device programmers:
Automated programmers (multi-programming sites, having a set of sockets) for mass production. 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.
Pocket programmers for development and field service.
Specialized programmers for certain circuit types only, such as FPGA,microcontroller,:642, pdf15 and EEPROM programmers.
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.:651:40
But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.
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.:261–262
Nowadays, EEPROMs are used for bootstrapping mechanism as BIOS, and no need to operate mechanical switches for programming.:45
Choi, S. J.; Han, J. W.; Jang, M. G.; Kim, J. S.; Kim, K. H.; Lee, G. S.; Oh, J. S.; Song, M. H.; Park, Y. C.; Kim, J. W.; Choi, Y. K. (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 Letters. 30 (3): 265–268. doi:10.1109/LED.2008.2010720. ISSN 0741-3106.