Siūlome jau antrąjį straipsnį apie mėgėjų tarpe populiarių mikrovaldiklių PIC programavimą. Pirmajame straipsnyje rašėme apie mikrovaldiklių programavimo galimybes su C kalba, o dabar studijų programos “Elektronikos technika” dėstytojas doc. Š. Kilius papasakos, kaip gi parašytą programą galima įkelti į mikrovaldiklio atmintį. Jeigu tokios temos yra įdomios, rašykite apie tai komentaruose – galėsime daugiau ir plačiau papsakoti apie mikrovaldiklių programavimą, iškylančius rūpesčius ir jų sprendimo būdus.

Jeigu neskaitėtė pirmojo straipsnio, tą galite padaryti tiesiog dabar - jį surasite štai čia.

Programa į PIC mikrovaldiklį gali būti įrašyta iš kompiuterio per lygiagrečiąją LPT sąsają, nuosekliąją RS232 sąsają arba USB sąsają. Programavimas gali būti atliktas šiais būdais:

Visi PIC programatoriai veikia vienodai (išskyrus „bootloader“ atveju) – perduoda duomenis nuosekliu būdu per du išvadus – RB6 perduodami taktiniai impulsai, RB7 perduodami duomenys. Kai kuriuose mikrovaldikliuose, turinčiuose mažiau išvadų, programavimui gali būti skirti kiti išvadai.

Į programavimo režimą mikrovaldiklis gali būti pervestas keliais būdais – vadinamuoju HVP (high voltage programming) arba LVP (low voltage programming) būdu.

HVP – high voltage programming

Į MCLR išvadą padavus aukštą įtampą, mikrovaldiklis pereina į programavimo režimą. Senesniems mikrovaldikliams programavimui buvo naudojama 13,5 V įtampa. Naujesniuose mikrovaldikliuose maksimali MCLR išvado įtampa sumažinta iki 13,25 V arba netgi iki 9 V nanoWatt XLP technologijos mikrovaldikliams, todėl ir programavimo įtampa turėtų būti parinkta atitinkamai.

LVP – low voltage programming

Naujesni mikrovaldikliai palaiko LVP programavimą, t.y. į programavimo režimą gali pereiti padavus loginio vieneto įtampą į atitinkamą išvadą. Šio būdo trūkumas tai, kad programavimo režimo valdymo išvado nebegalima naudoti duomenų perdavimui. Visi nauji mikrovaldikliai, palaikantys LVP, gamintojo parduodami su pagal nutylėjimą įjungtu LVP. Šį režimą galima išjungti pakeitus konfigūracinius mikrovaldiklio bitus, tačiau tam reikia naudoti HVP programavimą.

Bootloader programa

Daugelis naujų mikrovaldiklių turi galimybę patys perrašyti Flash atmintį. Tam naudojama speciali programa, vadinama „bootloader“. Ši nedidelės apimties programa saugoma mikrovaldiklio programų atmintyje ir paprastai stebi USB arba USART prievadus. Jei pastebimas linijos aktyvumas po mikrovaldiklio perkrovimo per tam tikrą laiką, pavyzdžiui, vieną sekundę, tuomet priimami duomenys ir perrašoma flash atmintis, aišku, išskyrus tą dalį, kur saugoma pati bootloader programa.

ICSP – In circuit serial progamming

PIC mikrovaldikliai turi ICSP – In circuit serial progamming galimybę, t.y. gali būti užprogramuoti neišimant jų iš projektuojamo grandyno. Tam tereikia iš anksto įlituoti 5-6 kontaktų jungtį, prie kurios gali būti prijungiamas programatorius su ICSP laidu.

ICSP jungtis:

ICSP programavimo galimybė palengvina naujo įtaiso derinimą, jei tenka koreguoti programą ir perprogramuoti mikrovaldiklį daug kartų. Tai ypač aktualu, jei naudojamas mikrovaldiklis ne DIP korpuse, o, pavyzdžiui, SOIC ar TQFP.

Doc. dr. Šarūnas Kilius
Energetikos ir elektronikos katedra
Kauno technikos kolegija www.ktk.lt