ICSP

Fra HTX Arduino
Spring til navigation Spring til søgning

ICSP står for In Circuit Serial Programming, altså det princip, at man kan programmere noget (i dette tilfælde PIC-en) ved at sende serielle signaler til den, og at man kan gøre det mens den sidder i kredsløbet.

For at dette kan lade sig gøre, så er der nogle specielle forudsætninger der skal være opfyldt.

ICSP kredsløb

Selv ICSP-porten er stikket SV3, der har forbindelse til PICkit 2-brænderen. Ben 2 har forbindelse til +5V og brænderen kan faktisk forsyne PIC-kredsløbet, hvis der ikke trækkes for meget strøm. Ben 3 er en stelforbindelse. Brændespændingen på 12,5 V kommer fra ben 1, og selve den serielle kommunikation foregår på ben 4 og 5.

SV1 er port-stikket til port A, og en del af benene i port A kan bruges uden begrænsninger. Pin_A2 er helt uden begrænsninger, og pin_A4 og pin_A5 skal blot konfigureres til at fungere, for at de kan anvendes (det har vi normalt i vores programmer).

De 3 sidste ben skal bruges med omtanke.
Pin_A3 kan kun være input, så det er ikke den store begrænsning, at der sidder 10k i serie med signalet. Man skal dog også være opmærksom på, at det man slutter til skal kunne holde at der kommer 12,5V brændespænding.

Pin_A0 og pin_A1 kan både være input og output, men fordi brænderen skal kunne overtage disse ben ved programmeringen, så er der sat en modstand i serie med hvert af signalerne.
Hvis man anvender dem som input betyder det ikke så meget, man skal bare være opmærksom på at det måske ikke er den korrekte spænding der kommer ind, hvis brænderen er koblet på.
Hvis man anvender dem som output så skal man være opmærksom på, at der sidder 4k7 i serie med signalet inden det kommer til portstikket, så hvis man f.x. ønsker at drive en lysdiode med dem, så kan der kun leveres lidt under 1 mA fra udgangen.

ICSP-kredsløb

Udsnit af kredsløbet omkring ICSP-porten

Selve den serielle programmering

Selve programmeringen skal man ikke spekulere det store på. Den foregår via PICkit 2-brænderen, og den styres fra software leveret sammen med brænderen.

Princippet i brændingen er, at man løfter brændespændingen op på 12,5V, hvorved PIC'en går i en speciel tilstand, hvor alle ben bliver til indgange, og den kan modtage data via de to programmeringsben. Det foregår via en velbeskrevet protokol defineret af microchip.

PIC
PIC-Typer PIC16F84 - PIC12F675 - PIC16F628 - PIC16F684 - PIC16F690 - PIC16F877 - PIC18F2550
Programmeringsbegreber Maskinkode - Mikrocontroller
Programmeringsmiljø PIC-brænder - UsbPicProg - Analog indgang - ICSP