In-System Programming
In-System Programming lub ISP – rozwiązanie konstrukcyjne stosowane w mikrokontrolerach i układach PLD umożliwiające zaprogramowanie układu bez 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 modyfikacje 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 odbyć 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, niezbędne do zaprogramowania wbudowanej pamięci, z typowego napięcia zasilającego, 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.
Najprostszy programator do mikrokontrolerów Atmel AVR, programowalnych za pomocą SPI, można wykonać odpowiednio łącząc wyjścia portu szeregowego z nóżkami układu. Istnieje więc możliwość programowania ich przez amatorów, którzy nie muszą ponosić dużych nakładów finansowych. Dlatego, dla wielu osób, ISP stał się rewolucją w dziedzinie programowania mikrokontrolerów.
ISP Występuje między innymi w mikrokontrolerach AVR firmy Atmel.