In-System programming (ISP) allows programmable devices such as some Flash memory, EEPROM, microcontrollers and programmable logic devices to be programmed whilst soldered onto a target circuit board.
Traditionally such devices would be programmed before being soldered to the board.
Allowing the programming of devices soldered to a board allows boards to be updated far more cost effectively and for new boards to be manufactured ready to be programmed at a later date. In-Circuit programming is an ideal solution.
In-System programmers use the I2C, SPI and JTAG interfaces to program ISP enabled devices.
Examples microcontrollers using ISP are ARM microcontrollers, Microchip PIC ICSP family, Atmel AVR and ATmega families