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
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
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
- 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 2 3
Mueller, Scott (2003). Upgrading and Repairing PCs. Que Publishing. p. 364. ISBN 9780789727459.
PROM programmer PC transfer.
- ↑ Cressler, John D. (2017). Silicon Earth: Introduction to Microelectronics and Nanotechnology, Second Edition. CRC Press. ISBN 9781351830201.
- ↑ Czerwinski, Robert; Kania, Dariusz (2013). Finite State Machine Logic Synthesis for Complex Programmable Logic Devices. Springer Science & Business Media. ISBN 9783642361661.
- 1 2 3 4 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.
- ↑
Edwards, Lewin (2006). So You Wanna Be an Embedded Engineer: The Guide to Embedded Engineering, From Consultancy to the Corporate Ladder. Elsevier. p. 58. ISBN 9780080498157.
plug-in adapters DIP packaging.
- ↑ "IEEE 1532-2002 - IEEE Standard for In-System Configuration of Programmable Devices". standards.ieee.org.
- ↑ "What is the IEEE 1532 Standard?". Keysight Technologies.
- ↑ Jacobson, Neil G. (2012). The In-System Configuration Handbook:: A Designer's Guide to ISC. Springer Science & Business Media. ISBN 9781461504894.
- ↑ 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. CiteSeerX 10.1.1.543.9943. doi:10.1145/371636.371739. ISBN 978-1581133646. S2CID 15929440.
- ↑ Ravichandran, D. (2001). Introduction To Computers And Communication. Tata McGraw-Hill Education. ISBN 9780070435650.
- ↑ "Review: XG autoelectric TL866CS MiniPro Universal USB Programmer". Gough's Tech Zone. 22 April 2016.
- ↑ "flash programmer with LAN - Google Search". www.google.com.
- ↑ International Validation Forum (1995). Validation Compliance Annual: 1995. CRC Press. ISBN 9780824794590.
- 1 2 "How to Read, Erase, & Write EProm EEProm Chips Electronic Fuel injection DIY Tuning GQ-4X Programmer". YouTube. 2 May 2014.
- ↑ "EPROMS: The minimum you need to know to burn your own". www.classic-computers.org.nz.
- ↑ "gang | Definition of gang in English by Oxford Dictionaries". Oxford Dictionaries | English. Archived from the original on March 17, 2018.
- 1 2 "EEVblog #411 - MiniPro TL866 Universal Programmer Review - Page 1". www.eevblog.com.
- ↑ "EPROM programmer for field service - Google Search". www.google.com.
- ↑ Pang, Aiken; Membrey, Peter (2016). Beginning FPGA: Programming Metal: Your brain on hardware. Apress. ISBN 9781430262480.
- ↑ Godse, Atul P.; Godse, Deepali A. (2008). Digital Techniques. Technical Publications. ISBN 9788184314014.
- ↑ Ball, Stuart (2002). Embedded Microprocessor Systems: Real World Design. Elsevier. ISBN 9780080477572.
- ↑ 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. ISSN 0741-3106.
- ↑ "Remembering the PROM knights of Intel | EE Times". EETimes. 2002-07-03.
- ↑ DuCastel, Bertrand; Jurgensen, Timothy (2008). Computer Theology: Intelligent Design of the World Wide Web. Midori Press LLC. ISBN 9780980182118.
- ↑ "Getting Started with Blinking Lights on Old Iron". Hackaday. 10 August 2017.
- ↑ Gooijen, Henk. "NOVA 3 console description". www.pdp-11.nl.
- ↑ Goel, Anita (2010). Computer Fundamentals. Pearson Education India. ISBN 9788131733097.
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