Programarea în circuit ( ing. programare în sistem , prescurtare ISP , de asemenea programare serială în circuit, ICSP ) este o tehnologie de programare a componentelor electronice ( FPGA , microcontrolere etc.) care vă permite să programați o componentă deja instalată în dispozitivul. Înainte de apariția acestei tehnologii, componentele erau programate înainte de a fi instalate în dispozitiv, necesitând să fie scoase din dispozitiv pentru a le reprograma.
Principalul avantaj al tehnologiei este capacitatea de a combina procesul de programare și testare în timpul producției, eliminând o fază separată de programare a componentelor înainte de asamblarea finală. De asemenea, tehnologia permite producătorilor de dispozitive să renunțe la achiziționarea de componente preprogramate, efectuând programarea chiar în procesul de producție. Acest lucru vă permite să reduceți costul de producție și să faceți modificări la partea programabilă a dispozitivului fără a opri producția.
Chipurile cu capacitate de programare în circuit au de obicei un circuit special care generează tensiunile necesare pentru programare dintr-o tensiune de alimentare normală, precum și un circuit pentru comunicarea cu programatorul prin intermediul unei interfețe seriale (majoritatea chipurilor utilizează variații ale protocolului JTAG ). Programarea prin interfața ISP are loc pe cinci linii de comunicație: MOSI, MISO, SCK , RESET și GND .
Există două metode principale pentru ISP:
Avantajul bootloader-ului este că este posibilă programarea MK-ului prin orice interfață pe care o are cu orice protocol convenabil (chiar și criptat, dacă bootloader-ul preia decriptarea). Bootloader-ul este, de asemenea, la îndemână atunci când actualizați firmware-ul MK de la distanță. Dezavantajul este că o parte a ROM-ului nu este disponibilă pentru a găzdui programul principal.
După ce bootloader-ul a scris firmware-ul în memoria microcontrolerului, fie lansează propriul program de aplicație, fie așteaptă o comandă din programul de control de pe computer, depinde de implementarea bootloader-ului specific.
Actualizarea firmware-ului microcontrolerului se poate face și de același bootloader, în timp ce acesta în sine nu este suprascris [1] (deși o astfel de posibilitate există).
Microcontrolere | ||||||||
---|---|---|---|---|---|---|---|---|
Arhitectură |
| |||||||
Producătorii |
| |||||||
Componente | ||||||||
Periferie | ||||||||
Interfețe | ||||||||
OS | ||||||||
Programare |
|