programmer (hardware)

{{Short description|Device that installs firmware on a device}}

Image:NuProg-E2-wsocket.png

Image:Programmer conitec galep5.jpg socket]]

Image:NPP16-FrontSide-wso-wobg.png

File:BPM 3928 Automated Programming System.jpg

In the context of installing firmware onto a device, a programmer, device programmer, chip programmer, device burner,{{rp|364}} or PROM writer

{{cite book|last1=Cressler|first1=John D.|title=Silicon Earth: Introduction to Microelectronics and Nanotechnology, Second Edition|date=2017|publisher=CRC Press|isbn=9781351830201|url=https://books.google.com/books?id=i-5HDwAAQBAJ&q=PROM+writer&pg=SA6-PA17-IA1|language=en}}

is a device that writes, a.k.a. burns, firmware to a target device's non-volatile memory.

{{cite book|last1=Czerwinski|first1=Robert|last2=Kania|first2=Dariusz|title=Finite State Machine Logic Synthesis for Complex Programmable Logic Devices|date=2013|publisher=Springer Science & Business Media|isbn=9783642361661|url=https://books.google.com/books?id=SVBEAAAAQBAJ&q=programmable+devices&pg=PA3|language=en}}

{{rp|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

File:Adafruit TinyISP AVR Programmer.jpg Connector-based
On-Board Programmer
for AVR microcontroller
with USB Port interface]]

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.{{rp|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.

{{cite book|last1=Edwards|first1=Lewin|title=So You Wanna Be an Embedded Engineer: The Guide to Embedded Engineering, From Consultancy to the Corporate Ladder|date=2006|publisher=Elsevier|isbn=9780080498157|url=https://archive.org/details/pdfy-MKFMCCNbqENoR3Ft|page=[https://archive.org/details/pdfy-MKFMCCNbqENoR3Ft/page/n66 58]|quote=plug-in adapters DIP packaging.|language=en}}

{{rp|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.

{{cite web|title=IEEE 1532-2002 - IEEE Standard for In-System Configuration of Programmable Devices|url=https://standards.ieee.org/ieee/1532/3366/|website=IEEE}}

{{cite web|title=What is the IEEE 1532 Standard?|url=https://www.keysight.com/main/editorial.jspx?&ckey=2052199|publisher=Keysight Technologies}}

{{cite book|last1=Jacobson|first1=Neil G.|title=The In-System Configuration Handbook:: A Designer's Guide to ISC|date=2012|publisher=Springer Science & Business Media|isbn=9781461504894|url=https://books.google.com/books?id=H53aBwAAQBAJ&q=programmer&pg=PA135|language=en}}

Transfer

Data is transferred from the programmer to the device as signals via connecting pins.

Some devices have a serial interface

{{cite book|last1=Ong|first1=Royan H. L.|last2=Pont|first2=Michael J.|title=Proceedings of the ninth international symposium on Hardware/Software codesign - CODES '01 |chapter=Empirical comparison of software-based error detection and correction techniques for embedded systems |date=25 April 2001|pages=230–235|doi=10.1145/371636.371739|chapter-url=https://www.researchgate.net/publication/221656717|publisher=ACM|isbn=978-1581133646|citeseerx=10.1.1.543.9943|s2cid=15929440}}{{rp|232, pdf3}}

for receiving data (including JTAG interface).{{rp|642, pdf15}}

Other devices communicate on parallel pins, followed by a programming pulse with a higher voltage for programming the data into the device.

{{cite book|last1=Ravichandran|first1=D.|title=Introduction To Computers And Communication|date=2001|publisher=Tata McGraw-Hill Education|isbn=9780070435650|url=https://books.google.com/books?id=EHNOHAjXdQcC&q=PROM+programmer&pg=PA125|language=en}}

{{rp|125}}

Usually, a programmer is controlled via a connected personal computer through a parallel port,

{{cite book|last1=Mueller|first1=Scott|title=Upgrading and Repairing PCs|date=2003|publisher=Que Publishing|isbn=9780789727459|url=https://archive.org/details/upgradingrepairi00mue_qq3|url-access=registration|page=[https://archive.org/details/upgradingrepairi00mue_qq3/page/364 364]|quote=PROM programmer PC transfer.|language=en}}

{{rp|364}}

USB port,

{{cite web|title=Review: XG autoelectric TL866CS MiniPro Universal USB Programmer|url=http://goughlui.com/2016/04/22/review-xg-autoelectric-tl866cs-minipro-universal-usb-programmer/|website=Gough's Tech Zone|date=22 April 2016}}

or LAN interface.{{cn|date=September 2024}}

A program on the controlling computer interacts with the programmer to perform operations such as configure install parameters and program the device,{{rp|364}}

{{cite book|author1=International Validation Forum|title=Validation Compliance Annual: 1995|date=1995|publisher=CRC Press|isbn=9780824794590|url=https://books.google.com/books?id=a55oaroHFI8C&q=PROM+programmer+transferring&pg=PA430|language=en}}

{{rp|430}}

{{cite web|title=How to Read, Erase, & Write EProm EEProm Chips Electronic Fuel injection DIY Tuning GQ-4X Programmer| website=YouTube |url=https://www.youtube.com/watch?v=vUDP1XTmF9A|date=2 May 2014}}

{{cite web|title=EPROMS: The minimum you need to know to burn your own|url=https://www.classic-computers.org.nz/blog/2012-10-21-eproms.htm|website=www.classic-computers.org.nz}}

Types

File:Sp 5004gp transp.png

There are four general types of programmers:

  1. Automated programmers often have multiple programming sites/sockets{{cite web|title=gang {{!}} Definition of gang in English by Oxford Dictionaries|url=https://en.oxforddictionaries.com/definition/gang|archive-url=https://web.archive.org/web/20180317102217/https://en.oxforddictionaries.com/definition/gang|url-status=dead|archive-date=March 17, 2018|website=Oxford Dictionaries {{!}} English}}

for mass production.{{cite book|last1=Mazidi|first1=Muhammad Ali|last2=Naimi|first2=Sarmad|last3=Naimi|first3=Sepehr|title=The AVR microcontroller and embedded systems : using Assembly and C|date=2011|publisher=Prentice Hall|location=Upper Saddle River, N.J.|isbn=9780138003319|url=http://www.microdigitaled.com/AVR/Articles/AVR_v1_online.pdf|access-date=2018-03-16|archive-date=2020-02-15|archive-url=https://web.archive.org/web/20200215060436/http://www.microdigitaled.com/AVR/Articles/AVR_v1_online.pdf|url-status=dead}} 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.

  1. Development programmers usually have a single programming site; used for first article development and small-series production.

{{cite web|title=EEVblog #411 - MiniPro TL866 Universal Programmer Review - Page 1|url=https://www.eevblog.com/forum/blog/eevblog-411-minipro-tl866-universal-programmer-review/|website=www.eevblog.com}}

  1. Pocket programmers for development and field service.

{{cite web|title=EPROM programmer for field service - Google Search|url=https://www.google.com/search?q=EPROM+programmer+for+field+service|website=www.google.com|language=en}}

  1. Specialized programmers for certain circuit types only, such as FPGA,{{cite book|last1=Pang|first1=Aiken|last2=Membrey|first2=Peter|title=Beginning FPGA: Programming Metal: Your brain on hardware|date=2016|publisher=Apress|isbn=9781430262480|url=https://books.google.com/books?id=X4fJDQAAQBAJ&q=programmer&pg=PA305|language=en}}

microcontroller,{{rp|642, pdf15}} and EEPROM programmers.

History

File:Universal Prom Programmer.jpg

File:78K0R Cool-It.jpg

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{{endash}}25 Volts.{{cite book|last1=Godse|first1=Atul P.|last2=Godse|first2=Deepali A.|title=Digital Techniques|date=2008|publisher=Technical Publications|isbn=9788184314014|url=https://books.google.com/books?id=F6Vor58f9FYC&q=PROM+programmer+25V&pg=PA651|language=en}}

{{rp|651}}

{{cite book|last1=Ball|first1=Stuart|title=Embedded Microprocessor Systems: Real World Design|date=2002|publisher=Elsevier|isbn=9780080477572|url=https://books.google.com/books?id=6738mXhY4igC&q=PROM+programmer+12V&pg=PA40|language=en}}

{{rp|40}}

But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.

{{cite journal|last1=Choi|first1=S. J.|last2=Han|first2=J. W.|last3=Jang|first3=M. G.|last4=Kim|first4=J. S.|last5=Kim|first5=K. H.|last6=Lee|first6=G. S.|last7=Oh|first7=J. S.|last8=Song|first8=M. H.|last9=Park|first9=Y. C.|last10=Kim|first10=J. W.|last11=Choi|first11=Y. K.|title=High Injection Efficiency and Low-Voltage Programming in a Dopant-Segregated Schottky Barrier (DSSB) FinFET SONOS for nor-type Flash Memory|journal=IEEE Electron Device Letters|date=2009|volume=30|issue=3|pages=265–268|doi=10.1109/LED.2008.2010720|bibcode=2009IEDL...30..265C |issn=0741-3106}}

{{cite web|title=Remembering the PROM knights of Intel {{!}} EE Times|url=https://www.eetimes.com/document.asp?doc_id=1144961|website=EETimes|date=2002-07-03}}

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.

{{cite book|last1=DuCastel|first1=Bertrand|last2=Jurgensen|first2=Timothy|title=Computer Theology: Intelligent Design of the World Wide Web|date=2008|publisher=Midori Press LLC|isbn=9780980182118|url=https://books.google.com/books?id=zLh5CIwvTyMC&q=bootstrap+mechanical+switch&pg=PA262|language=en}}

{{rp|261{{endash}}262}}

{{cite web|title=Getting Started with Blinking Lights on Old Iron|url=https://hackaday.com/2017/08/10/getting-started-with-blinking-lights-on-old-iron/|website=Hackaday|date=10 August 2017}}

{{cite web|last1=Gooijen|first1=Henk|title=NOVA 3 console description|url=http://www.pdp-11.nl/dg/nova3/nova3.html#system%20console|website=www.pdp-11.nl}}

Nowadays, EEPROMs are used for bootstrapping mechanism as BIOS, and no need to operate mechanical switches for programming.

{{cite book|last1=Goel|first1=Anita|title=Computer Fundamentals|date=2010|publisher=Pearson Education India|isbn=9788131733097|url=https://books.google.com/books?id=zyOYs2EqZDgC&q=BIOS+bootstrap+EEPROM&pg=PA45|language=en}}

{{rp|45}}

Manufacturers

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

  • Batronix GmbH & Co. KG
  • BPM Microsystems
  • Conitec Datasystems
  • Data I/O Corporation
  • DediProg Technology Co., Ltd
  • Elnec s.r.o
  • Elprosys Sp. z o.o.
  • halec
  • Hi-Lo System Research
  • MCUmall Electronics Inc.
  • {{ill|Minato Holdings|ja|ミナトホールディングス}}
  • Phyton, Inc.
  • Xeltek Inc.

See also

References

{{reflist}}