Feature ICP (In-Circuit Programming) ISP (In-System Programming)
Full Name In-Circuit Programming In-System Programming
Purpose Programs a microcontroller while it is still on the circuit Programs a microcontroller without removing it from the system
Connection Requirement Requires access to programming pins on the circuit board Uses standard communication interfaces (SPI, UART, etc.)
Typical Usage Stage Manufacturing/test stage Field updates and development stage
System Power Often requires external programming power Uses system power (target board can be powered)
Microcontroller State Can be programmed even if microcontroller is blank Assumes microcontroller has a working bootloader or interface
Tools Used Dedicated programmer/debugger (e.g., JTAG, SWD) On-board bootloader, or external programmer via standard I/O
Flexibility Less flexible for field upgrades More flexible; supports firmware updates without disassembly
Hardware Complexity May require additional programming circuitry Minimal extra hardware required
Examples Programming via JTAG or SWD interfaces Programming via USB, UART, SPI using bootloader or firmware

ICP-dat

If ISP fails or UART is unavailable, consider using ICP via SWD with Nuvoton's Nu-Link debugger.

Target

ARM

AVR

STC

programmer

ref