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
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]
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.[12]
A program on the controlling computer interacts with the programmer to perform operations such as configure install parameters and program the device,[1]: 364 [13]: 430 [14][15]
Automated programmers often have multiple programming sites/sockets[16] 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.[17]
Pocket programmers for development and field service.[17][18]
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
^
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. Bibcode:2009IEDL...30..265C. doi:10.1109/LED.2008.2010720. ISSN0741-3106.