In-System Programming
In-System Programming lub ISP – rozwiązanie konstrukcyjne stosowane w mikrokontrolerach, pamięciach EEPROM i układach PLD, umożliwiające zaprogramowanie układu scalonego bez jego demontażu z urządzenia, w którym pracuje.
Główną zaletą wynikającą ze stosowania ISP jest możliwość połączenia programowania i testowania w jednej fazie produkcyjnej, co sprzyja szybszemu projektowaniu urządzenia i ułatwia modyfikowanie prototypów. Technologia ta pozwala także producentowi obejść się bez zakupu już zaprogramowanych mikrokontrolerów czy układów PLD, gdyż proces programowania może odbywać się na linii produkcyjnej urządzenia. Ponadto ISP ułatwia serwisowanie oraz aktualizację oprogramowania.
Układy scalone wyposażone w ISP mają wewnętrzne obwody generujące napięcia, z typowego napięcia zasilającego, niezbędne do zaprogramowania wbudowanej pamięci, a także interfejs szeregowy umożliwiający komunikację z programatorem. Do komunikacji większość układów wykorzystuje protokół JTAG, choć są w tym celu wykorzystywane także inne protokoły, np. SPI.