Elektronikos mėgėjams. Programų įrašymas į PIC mikrovaldiklį (1)
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.
Prisijunk prie technologijos.lt komandos!
Laisvas grafikas, uždarbis, daug įdomių veiklų. Patirtis nebūtina, reikia tik entuziazmo.
Sudomino? Užpildyk šią anketą!
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:
-
programatoriumi;
-
ICSP (In Circuit Serial Programming) – programuoti mikrovaldiklį neišėmus jo iš grandyno;
-
„bootloader“ programos pagalba, kuri leidžia perrašyti programų atmintį.
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:
-
MCRL – HVP programavimo įtampa
-
VDD – mikrovaldiklio maitinimo įtampa
-
GND – žemė
-
PGD – programavimo duomenų linija, RB7 išvadas
-
PGC – programavimo taktiniai impulsai, RB6 išvadas
-
PGM – LVP programavimo valdymas, RB3/RB4 išvadas
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