Home

ICSP

ICSP, short for In-Circuit Serial Programming, is a programming interface used to program microcontrollers while they remain installed in the target circuit. It is most closely associated with Microchip's PIC family, but similar in-circuit programming techniques are used by other vendors.

The ICSP interface exposes a small set of signals: Vdd (power), Vss (ground), PGD (data), PGC (clock),

Using ICSP, the tool can erase or program the device’s flash and configuration words, read device IDs,

Tools range from inexpensive USB programmers to full-featured debuggers. In-circuit debugging or emulation capabilities (ICD/ICE) are

ICSP has been integral to Microchip's programming ecosystem since the 1990s and remains a standard means of

and
Vpp/MCLR
(programming
voltage).
Some
devices
also
provide
PGM
for
low-voltage
programming.
In
practice,
a
5-
or
6-pin
header
is
wired
between
the
target
board
and
a
programming
tool
such
as
a
PICkit,
MPLAB
REAL
ICE,
or
third-party
programmers.
The
protocol
is
built
around
a
serial
data
stream
delivered
over
PGD
with
timing
driven
by
PGC,
and
the
tool
supplies
the
necessary
MCLR
Vpp
to
enter
programming
mode.
verify
written
data,
and
in
some
devices
modify
fuses
or
oscillator
settings.
Programming
is
typically
performed
with
the
MCU
powered
and
in-circuit,
though
some
devices
require
powering
through
the
programmer
or
using
high-voltage
programming
modes.
related
concepts
but
provide
interactive
debugging
beyond
basic
programming.
firmware
updates
and
recovery
for
PIC
microcontrollers
and
compatible
devices.