In-system programming

from Wikipedia, the free encyclopedia
Usual PIN assignment for connecting a programming device

The in-system programming (ISP) allows you to program a logical circuit directly in the application system. A simple serial connection is usually used for this, e.g. B. JTAG or SPI . The advantage of in-system programming is that the circuit to be programmed no longer has to be removed from the target system. There is less mechanical stress on it and the entire programming process is faster.

Methods

Programming with serial interfaces

In-system programmer

For programming via additional serial interfaces, an in-system programmer (ISP), sometimes also an in-circuit programmer , is used, which usually represents a small piece of additional hardware with which the programmable electronic components designed for this purpose can be programmed in the installed state. Programming in this context means that a previously created program and / or data are written to the internal, non-volatile memory (e.g. an internal EEPROM or flash memory ) of an electronic component. Any higher programming voltage that may still be required takes place in the microprocessor itself.

Programming with bootloader

The much rarer and more complex reprogramming via USB is comparable to a (device) firmware upgrade, which is especially possible in consumer electronics products. It works without special hardware, but needs a boot loader , the program for loading programs and for USB communication. Before the first in-system programming with USB, it must be sent to the microcontroller in the conventional way via a programming device. However, it can be preprogrammed in the factory.

application

The components to be programmed are typically microcontrollers , system-on-a-chip components (SoC) or “simple” memories whose data are programmed. You have to z. B. from the outside, by the ISP, put into a programming mode.

An in-system programmer usually has a plug connection which is plugged onto the built-in module to be programmed or is plugged into a connection provided on the circuit board especially for this purpose . The in-system programmer usually gets its data from a PC to which it is also connected. Normally, software on the PC takes over the entire control of the programming process, so that the ISP can be kept quite simple and inexpensive. In this case it converts the voltage level from the PC into values ​​suitable for the component.

The control software on the PC is often integrated into a corresponding programming environment for creating software for the specific module. Often the ISP hardware and the PC software can also read out the data already present in the module, e.g. B. to control a programming process.

Features

Furthermore, special functions of the electronic module can be switched with an ISP, if available. For example, so-called fuse bits , which determine whether a program that has been written once is permanent, can no longer be overwritten, or whether the program can be read from outside.

impact

In-system programmability is an important property of systems, especially in the development phase and during maintenance. It saves the constant exchange, possibly even connected with desoldering, of the component to be programmed. Not all systems that can be programmed in system require an additional in-system programmer. With consumer hardware in particular, it has become common for the firmware of these devices to be 'flashed', i.e. re-imported, without additional hardware.

ISP was made possible by the integration of flash memory and microcontroller .

Examples

Examples of ISP-compatible modules:

See also

Individual evidence

  1. ISP on mikrocontroller.net
  2. AVR_In_System_Programmer on mikrocontroller.net
  3. USB DFU Bootloaders (PDF file; 853 kB) for AVR microcontroller from Atmel

Web links