In the context of installing firmware onto a device, a programmer, device programmer, chip programmer, device burner,[1]: 364 or PROM writer[2] is a device that writes, a.k.a. burns, firmware to a target device's non-volatile memory.[3]: 3
Typically, the target device memory is one of the following types: PROM, EPROM, EEPROM, Flash memory, eMMC, MRAM, FeRAM, NVRAM, PLD, PLA, PAL, GAL, CPLD, FPGA.
Connection
Generally, a programmer connects to a device in one of two ways.
Insertion
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
Cable & port
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]
Transfer
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.[citation needed] A program on the controlling computer interacts with the programmer to perform operations such as configure install parameters and program the device,[1]: 364 [12]: 430 [13][14]
Types
There are four general types of programmers:
- Automated programmers often have multiple programming sites/sockets[15] 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.[16]
- Pocket programmers for development and field service.[16][17]
- Specialized programmers for certain circuit types only, such as FPGA,[18] microcontroller,[4]: 642, pdf15 and EEPROM programmers.[13]
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.[19]: 651 [20]: 40 But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.[21][22]
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.[23]: 261–262 [24][25] Nowadays, EEPROMs are used for bootstrapping mechanism as BIOS, and no need to operate mechanical switches for programming.[26]: 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
- ^ a b c
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.
- ^ 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. Archived from the original (PDF) on 2020-02-15. Retrieved 2018-03-16.
- ^
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". IEEE.
- ^ "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.
- ^ International Validation Forum (1995). Validation Compliance Annual: 1995. CRC Press. ISBN 9780824794590.
- ^ a b "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.
- ^ a b "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