In-circuit programming ( angl. in-system programming , zkr. ISP , též in-circuit serial programming, ICSP ) je technologie pro programování elektronických součástek ( FPGA , mikrokontroléry atd.), která umožňuje naprogramovat součástku již nainstalovanou v zařízení. Před příchodem této technologie byly komponenty naprogramovány před instalací do zařízení, což vyžadovalo jejich odstranění ze zařízení, aby bylo možné je přeprogramovat.
Hlavní výhodou technologie je možnost kombinovat proces programování a testování během výroby, čímž odpadá samostatná fáze programování komponent před finální montáží. Tato technologie také umožňuje výrobcům zařízení obejít se bez nákupu předprogramovaných komponent a provést programování přímo ve výrobním procesu. To umožňuje snížit náklady na výrobu a provádět změny v programovatelné části zařízení bez zastavení výroby.
Čipy s možností in-circuit programování mají obvykle speciální obvod, který generuje napětí potřebná pro programování z běžného napájecího napětí, a také obvod pro komunikaci s programátorem přes sériové rozhraní (většina čipů používá varianty protokolu JTAG ). Programování přes ISP rozhraní probíhá přes pět komunikačních linek: MOSI, MISO, SCK , RESET a GND .
Existují dvě hlavní metody ISP:
Výhodou bootloaderu je, že je možné MK naprogramovat přes jakékoliv rozhraní , které má, s jakýmkoliv pohodlným protokolem (i šifrovaným, pokud bootloader převezme dešifrování). Bootloader je také praktický při aktualizaci firmwaru MK na dálku. Nevýhodou je, že část ROM není k dispozici pro hostování hlavního programu.
Poté, co bootloader zapíše firmware do paměti mikrokontroléru, buď spustí samotný aplikační program, nebo čeká na nějaký příkaz z ovládacího programu v počítači, záleží na implementaci konkrétního bootloaderu.
Aktualizace firmwaru mikrokontroléru může být provedena i stejným bootloaderem, přičemž samotný není přepsán [1] (i když taková možnost existuje).
Mikrokontroléry | ||||||||
---|---|---|---|---|---|---|---|---|
Architektura |
| |||||||
Výrobci |
| |||||||
Komponenty | ||||||||
Obvod |
| |||||||
Rozhraní | ||||||||
OS | ||||||||
Programování |
|