In-circuit programmering ( eng. in-system programmering , förkortning ISP , även in-circuit seriell programmering, ICSP ) är en teknik för programmering av elektroniska komponenter ( FPGA , mikrokontroller , etc.) som låter dig programmera en komponent som redan är installerad i enheten. Före tillkomsten av denna teknik programmerades komponenter innan de installerades i enheten, vilket krävde att de togs bort från enheten för att omprogrammera dem.
Den största fördelen med tekniken är möjligheten att kombinera programmering och testning under produktionen, vilket eliminerar en separat fas av komponentprogrammering före slutmontering. Tekniken gör det också möjligt för enhetstillverkare att avstå från köp av förprogrammerade komponenter genom att göra programmeringen rätt i produktionsprocessen. Detta gör att du kan minska produktionskostnaden och göra ändringar i den programmerbara delen av enheten utan att stoppa produktionen.
Chips med kretsprogrammeringsmöjlighet har vanligtvis en speciell krets som genererar de spänningar som behövs för programmering från en normal matningsspänning, samt en krets för att kommunicera med programmeraren via ett seriellt gränssnitt (de flesta chips använder varianter av JTAG- protokollet ). Programmering via ISP-gränssnittet sker över fem kommunikationslinjer: MOSI, MISO, SCK , RESET och GND .
Det finns två huvudsakliga ISP-metoder:
Fördelen med bootloadern är att det är möjligt att programmera MK genom vilket gränssnitt den har med vilket bekvämt protokoll som helst (även krypterat, om bootloadern tar över dekrypteringen). Bootloadern är också praktisk när du uppdaterar MK firmware på distans. Nackdelen är att en del av ROM inte är tillgänglig för huvudprogrammet.
Efter att starthanteraren har skrivit in firmware i mikrokontrollerns minne, startar den antingen själva applikationsprogrammet eller väntar på något kommando från kontrollprogrammet på datorn, det beror på implementeringen av den specifika bootloadern.
Uppdatering av mikrokontrollerns firmware kan också göras av samma bootloader, medan den själv inte skrivs över [1] (även om en sådan möjlighet finns).
Mikrokontroller | ||||||||
---|---|---|---|---|---|---|---|---|
Arkitektur |
| |||||||
Tillverkare |
| |||||||
Komponenter | ||||||||
Periferi |
| |||||||
Gränssnitt | ||||||||
OS | ||||||||
Programmering |
|