Programación en el sistema
Programación en el sistema (ISP por las siglas del inglés: In-system programming), también conocido como Programación serie en circuito (ICSP por las siglas del inglés : In-Circuit Serial Programming), es la habilidad de algunos dispositivos lógicos programables, microcontroladores y otros circuitos electrónicos, de ser programados mientras están instalados en un sistema completo, en lugar de requerir que el chip sea programado antes de ser instalado dentro del sistema.
La principal ventaja de esta característica es de permitir a los fabricantes de dispositivos electrónicos el integrar la programación y las pruebas en un solo paso, en vez de ser un paso de programación anterior al ensamble. También permite a los fabricantes programar los circuitos integrados en sus propias líneas de producción en lugar de adquirir circuitos pre-programados por su fabricante o distribuidor, haciendo posible aplicar cambios de código o de diseño durante la fase de producción.
Típicamente, los chips que soportan ISP tienen circuitería interna que les permite generar el voltaje de programación necesario desde la línea de alimentación convencional y comunicarse con el dispositivo programador mediante un protocolo serial. Muchos dispositivos lógicos programables usan una variante del protocolo JTAG para el ISP, esto es para facilitar la integración con procedimientos de prueba automatizada. Otros dispositivos usan protocolos propietarios o protocolos definidos por antiguos estándares.