Programmer (hardware)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Pocket Programmer Galep-5 with a ZIF socket
SuperPro6100: USB interfaced stand alone Universal Programmer
with plug-in Adapter Board

Programmer (hardware), device programmer, chip programmer, device burner,[1]:364 or PROM writer[2] is an electronic equipment that arrange written software to configure programmable non-volatile integrated circuits, called programmable devices.[3]:3 The target devices include; PROM, EPROM, EEPROM, Flash memory, eMMC, MRAM, FeRAM, NVRAM, PLD, PLA, PAL, GAL, CPLD, FPGA, and MCU. These are terminologies in the field of computer hardware.

Function[edit]

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[edit]

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:

1) Gang programmers (multi-programming sites, having a set of sockets)[16] for mass production.[4]:642, pdf15
2) Development programmers (usually single-programming site) for development and small-series production.[17]
3) Pocket programmers for development and field service.[17][18]
4) Specialized programmers for certain circuit types only, such as FPGA,[19] microcontroller,[4]:642, pdf15 and EEPROM programmers.[14]

History[edit]

Historical Programmer;
A shoebox size
Pocket-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

Manufactures[edit]

For each vendor's web site, refer to "External links" section.

See also[edit]

References[edit]

  1. ^ a b c Mueller, Scott (2003). Upgrading and Repairing PCs. Que Publishing. ISBN 9780789727459. 
  2. ^ Cressler, John D. (2017). Silicon Earth: Introduction to Microelectronics and Nanotechnology, Second Edition. CRC Press. ISBN 9781351830201. 
  3. ^ Czerwinski, Robert; Kania, Dariusz (2013). Finite State Machine Logic Synthesis for Complex Programmable Logic Devices. Springer Science & Business Media. ISBN 9783642361661. 
  4. ^ a b c d Mazidi, Muhammad Ali; Naimi, Sarmad; Naimi, Sepehr (2011). The AVR microcontroller and embedded systems : using Assembly and C (PDF). Upper Saddle River, N.J.: Prentice Hall. ISBN 9780138003319. 
  5. ^ Edwards, Lewin (2006). So You Wanna Be an Embedded Engineer: The Guide to Embedded Engineering, From Consultancy to the Corporate Ladder. Elsevier. ISBN 9780080498157. 
  6. ^ "IEEE 1532-2002 - IEEE Standard for In-System Configuration of Programmable Devices". standards.ieee.org. 
  7. ^ "What is the IEEE 1532 Standard?". Keysight Technologies. 
  8. ^ Jacobson, Neil G. (2012). The In-System Configuration Handbook:: A Designer’s Guide to ISC. Springer Science & Business Media. ISBN 9781461504894. 
  9. ^ Ong, Royan H. L.; Pont, Michael J. (25 April 2001). "Empirical comparison of software-based error detection and correction techniques for embedded systems" (PDF). CODES '01 Proceedings of the ninth international symposium on Hardware/software codesign. ACM: 230–235. doi:10.1145/371636.371739. 
  10. ^ Ravichandran, D. (2001). Introduction To Computers And Communication. Tata McGraw-Hill Education. ISBN 9780070435650. 
  11. ^ "Review: XG autoelectric TL866CS MiniPro Universal USB Programmer". Gough's Tech Zone. 22 April 2016. 
  12. ^ "flash programmer with LAN - Google Search". www.google.com. 
  13. ^ International Validation Forum (1995). Validation Compliance Annual: 1995. CRC Press. ISBN 9780824794590. 
  14. ^ a b "How to Read, Erase, & Write EProm EEProm Chips Electronic Fuel injection DIY Tuning GQ-4X Programmer". 2 May 2014. 
  15. ^ "EPROMS: The minimum you need to know to burn your own". www.classic-computers.org.nz. 
  16. ^ "gang | Definition of gang in English by Oxford Dictionaries". Oxford Dictionaries | English. 
  17. ^ a b "EEVblog #411 - MiniPro TL866 Universal Programmer Review - Page 1". www.eevblog.com. 
  18. ^ "EPROM programmer for field service - Google Search". www.google.com. 
  19. ^ Pang, Aiken; Membrey, Peter (2016). Beginning FPGA: Programming Metal: Your brain on hardware. Apress. ISBN 9781430262480. 
  20. ^ Godse, A.P.; Godse, D. A. (2008). Digital Techniques. Technical Publications. ISBN 9788184314014. 
  21. ^ Ball, Stuart (2002). Embedded Microprocessor Systems: Real World Design. Elsevier. ISBN 9780080477572. 
  22. ^ 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. 
  23. ^ "Remembering the PROM knights of Intel | EE Times". EETimes. 2002-07-03. 
  24. ^ DuCastel, Bertrand; Jurgensen, Timothy (2008). Computer Theology: Intelligent Design of the World Wide Web. Midori Press LLC. ISBN 9780980182118. 
  25. ^ "Getting Started with Blinking Lights on Old Iron". Hackaday. 10 August 2017. 
  26. ^ Gooijen, Henk. "NOVA 3 console description". www.pdp-11.nl. 
  27. ^ Goel, Anita (2010). Computer Fundamentals. Pearson Education India. ISBN 9788131733097. 

External links[edit]