Engineering:Programmer (hardware)




A programmer, device programmer, chip programmer, device burner,[1]:364 or PROM writer[2] is a piece of electronic equipment that arranges written software or firmware 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, PLDs, PLAs, PALs, GALs, CPLDs, FPGAs, and microcontrollers.
Function

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

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]
- Specialized programmers for certain circuit types only, such as FPGA,[19] microcontroller,[4]:642, pdf15 and EEPROM programmers.[14]
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.[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.
- Batronix
- BPM Microsystems
- DiagProg4: CodiProg
- Xeltek Inc.
- Conitec Datasystems
- MCUmall Electronics Inc.
- Data I/O
- Elnec
- DediProg Technology Co., Ltd
- Minato Holdings (ja)
- Hi-Lo System Research
- Phyton, 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
- ↑ 1.0 1.1 1.2 Mueller, Scott (2003) (in en). Upgrading and Repairing PCs. Que Publishing. p. 364. ISBN 9780789727459. https://archive.org/details/upgradingrepairi00mue_qq3. "PROM programmer PC transfer."
- ↑ Cressler, John D. (2017) (in en). Silicon Earth: Introduction to Microelectronics and Nanotechnology, Second Edition. CRC Press. ISBN 9781351830201. https://books.google.com/books?id=i-5HDwAAQBAJ&q=PROM+writer&pg=SA6-PA17-IA1.
- ↑ Czerwinski, Robert; Kania, Dariusz (2013) (in en). Finite State Machine Logic Synthesis for Complex Programmable Logic Devices. Springer Science & Business Media. ISBN 9783642361661. https://books.google.com/books?id=SVBEAAAAQBAJ&q=programmable+devices&pg=PA3.
- ↑ 4.0 4.1 4.2 4.3 Mazidi, Muhammad Ali; Naimi, Sarmad; Naimi, Sepehr (2011). The AVR microcontroller and embedded systems : using Assembly and C. Upper Saddle River, N.J.: Prentice Hall. ISBN 9780138003319. http://www.microdigitaled.com/AVR/Articles/AVR_v1_online.pdf.
- ↑ Edwards, Lewin (2006) (in en). So You Wanna Be an Embedded Engineer: The Guide to Embedded Engineering, From Consultancy to the Corporate Ladder. Elsevier. p. 58. ISBN 9780080498157. https://archive.org/details/pdfy-MKFMCCNbqENoR3Ft. "plug-in adapters DIP packaging."
- ↑ "IEEE 1532-2002 - IEEE Standard for In-System Configuration of Programmable Devices". https://standards.ieee.org/findstds/standard/1532-2002.html.
- ↑ "What is the IEEE 1532 Standard?". Keysight Technologies. https://www.keysight.com/main/editorial.jspx?&ckey=2052199.
- ↑ Jacobson, Neil G. (2012) (in en). The In-System Configuration Handbook:: A Designer's Guide to ISC. Springer Science & Business Media. ISBN 9781461504894. https://books.google.com/books?id=H53aBwAAQBAJ&q=programmer&pg=PA135.
- ↑ Ong, Royan H. L.; Pont, Michael J. (25 April 2001). "Empirical comparison of software-based error detection and correction techniques for embedded systems". Proceedings of the ninth international symposium on Hardware/Software codesign - CODES '01. ACM. pp. 230–235. doi:10.1145/371636.371739. ISBN 978-1581133646. https://www.researchgate.net/publication/221656717.
- ↑ Ravichandran, D. (2001) (in en). Introduction To Computers And Communication. Tata McGraw-Hill Education. ISBN 9780070435650. https://books.google.com/books?id=EHNOHAjXdQcC&q=PROM+programmer&pg=PA125.
- ↑ "Review: XG autoelectric TL866CS MiniPro Universal USB Programmer". 22 April 2016. http://goughlui.com/2016/04/22/review-xg-autoelectric-tl866cs-minipro-universal-usb-programmer/.
- ↑ "flash programmer with LAN - Google Search" (in en). https://www.google.com/search?q=flash+programmer+with+LAN.
- ↑ International Validation Forum (1995) (in en). Validation Compliance Annual: 1995. CRC Press. ISBN 9780824794590. https://books.google.com/books?id=a55oaroHFI8C&q=PROM+programmer+transferring&pg=PA430.
- ↑ 14.0 14.1 "How to Read, Erase, & Write EProm EEProm Chips Electronic Fuel injection DIY Tuning GQ-4X Programmer". 2 May 2014. https://www.youtube.com/watch?v=vUDP1XTmF9A.
- ↑ "EPROMS: The minimum you need to know to burn your own". https://www.classic-computers.org.nz/blog/2012-10-21-eproms.htm.
- ↑ "gang | Definition of gang in English by Oxford Dictionaries". https://en.oxforddictionaries.com/definition/gang.
- ↑ 17.0 17.1 "EEVblog #411 - MiniPro TL866 Universal Programmer Review - Page 1". https://www.eevblog.com/forum/blog/eevblog-411-minipro-tl866-universal-programmer-review/.
- ↑ "EPROM programmer for field service - Google Search" (in en). https://www.google.com/search?q=EPROM+programmer+for+field+service.
- ↑ Pang, Aiken; Membrey, Peter (2016) (in en). Beginning FPGA: Programming Metal: Your brain on hardware. Apress. ISBN 9781430262480. https://books.google.com/books?id=X4fJDQAAQBAJ&q=programmer&pg=PA305.
- ↑ Godse, Atul P.; Godse, Deepali A. (2008) (in en). Digital Techniques. Technical Publications. ISBN 9788184314014. https://books.google.com/books?id=F6Vor58f9FYC&q=PROM+programmer+25V&pg=PA651.
- ↑ Ball, Stuart (2002) (in en). Embedded Microprocessor Systems: Real World Design. Elsevier. ISBN 9780080477572. https://books.google.com/books?id=6738mXhY4igC&q=PROM+programmer+12V&pg=PA40.
- ↑ 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 Letters 30 (3): 265–268. doi:10.1109/LED.2008.2010720. ISSN 0741-3106. Bibcode: 2009IEDL...30..265C.
- ↑ "Remembering the PROM knights of Intel | EE Times". 2002-07-03. https://www.eetimes.com/document.asp?doc_id=1144961.
- ↑ DuCastel, Bertrand; Jurgensen, Timothy (2008) (in en). Computer Theology: Intelligent Design of the World Wide Web. Midori Press LLC. ISBN 9780980182118. https://books.google.com/books?id=zLh5CIwvTyMC&q=bootstrap+mechanical+switch&pg=PA262.
- ↑ "Getting Started with Blinking Lights on Old Iron". 10 August 2017. https://hackaday.com/2017/08/10/getting-started-with-blinking-lights-on-old-iron/.
- ↑ Gooijen, Henk. "NOVA 3 console description". http://www.pdp-11.nl/dg/nova3/nova3.html#system%20console.
- ↑ Goel, Anita (2010) (in en). Computer Fundamentals. Pearson Education India. ISBN 9788131733097. https://books.google.com/books?id=zyOYs2EqZDgC&q=BIOS+bootstrap+EEPROM&pg=PA45.
External links
- Technical information
- JEDEC - Memory Configurations: JESD21-C
- JEDEC - Common Flash Interface (CFI) Specification, JESD68.01, September 2003.
- Intel - Common Flash Interface (CFI) and Command Sets
- IEEE Std 1532-2002 (Revision of IEEE Std 1532-2001) - IEEE Standard for In-System Configuration of Programmable Devices
- What is the IEEE 1532 Standard? | Keysight Technologies
- JEDEC - STANDARD DATA TRANSFER FORMAT BETWEEN DATA PREPARATION SYSTEM AND PROGRAMMABLE LOGIC DEVICE PROGRAMMER: JESD3-C, Jun 1994
- JEDEC - JC-42 Solid State Memories
- Manufactures
![]() | Original source: https://en.wikipedia.org/wiki/Programmer (hardware).
Read more |