In-circuit programmering ( eng. in-system programmering , forkortelse ISP , også in-circuit seriel programmering, ICSP ) er en teknologi til programmering af elektroniske komponenter ( FPGA , mikrocontrollere osv.), der giver dig mulighed for at programmere en komponent, der allerede er installeret i enheden. Før fremkomsten af denne teknologi blev komponenter programmeret, før de blev installeret i enheden, hvilket krævede, at de blev fjernet fra enheden for at omprogrammere dem.
Den største fordel ved teknologien er evnen til at kombinere processen med programmering og test under produktionen, hvilket eliminerer en separat fase af komponentprogrammering før den endelige montering. Teknologien giver også enhedsproducenter mulighed for at undvære indkøb af forprogrammerede komponenter ved at udføre programmeringen rigtigt i produktionsprocessen. Dette giver dig mulighed for at reducere produktionsomkostningerne og foretage ændringer i den programmerbare del af enheden uden at stoppe produktionen.
Chips med in-circuit programmeringsevne har normalt et specielt kredsløb, der genererer de spændinger, der er nødvendige for programmering fra en normal forsyningsspænding, samt et kredsløb til kommunikation med programmøren via en seriel grænseflade (de fleste chips bruger variationer af JTAG -protokollen ). Programmering via ISP-grænsefladen foregår over fem kommunikationslinjer: MOSI, MISO, SCK , RESET og GND .
Der er to primære ISP-metoder:
Fordelen ved bootloaderen er, at det er muligt at programmere MK'en gennem enhver grænseflade , den har med en hvilken som helst bekvem protokol (selv krypteret, hvis bootloaderen overtager dekrypteringen). Bootloaderen er også praktisk, når du fjernopdaterer MK-firmwaren. Ulempen er, at en del af ROM'en ikke er tilgængelig til at være vært for hovedprogrammet.
Efter at bootloaderen har skrevet firmwaren ind i mikrocontrollerens hukommelse, starter den enten selve applikationsprogrammet eller venter på en kommando fra kontrolprogrammet på computeren, det afhænger af implementeringen af den specifikke bootloader.
Opdatering af mikrocontrollerens firmware kan også udføres af den samme bootloader, mens den i sig selv ikke overskrives [1] (selvom en sådan mulighed eksisterer).
Mikrocontrollere | ||||||||
---|---|---|---|---|---|---|---|---|
Arkitektur |
| |||||||
Producenter |
| |||||||
Komponenter | ||||||||
Periferi |
| |||||||
Grænseflader | ||||||||
OS | ||||||||
Programmering |
|