Konfigurisanje rada PIC mikrokontrolera
Svaki mikrokontroler ima svoje konfiguracione bite preko kojih se mogu podešavati razni parametri mikrokontrolera. Ti parametri mogu biti: zaštita programa od iščitavanja, zaštita iščitavanja eeprom-a, postavljanje mikrokontrolera u debug mod, uključivanje watchdog timer-a, izbor vrste oscilatora koji se koristi sa mikrokontrolerom,… i druge opcije. Opcije koje se mogu podešavati zavise isključivo od vrste mikrokontrolera i za konkretan spisak opcija treba pogledati uputstvo od mikrokontrolera sa kojim se radi.
Programski jezik C, kompanije HiTech, obezbeđuje nam makro funkciju __CONFIG
uz pomoć koje na jednostavan način možemo konfigurisati mikrokontroler. Ovaj makro ne ulazi u ANSI definiciju C jezika, nego je vezan za PIC mikrokontrolere. Koristi se na sledeći način:
__CONFIG(X);
Primetimo da na početku imena ovog makroa stoje dve donje crte, a X predstavlja konfiguracionu reč. Makro je definisan u biblioteci htc.h
i treba je uključiti kada se on želi koristiti.
Imenovane konstante opcija mikrokontrolera, koje se mogu podešavati preko ove makro funkcije, definisane su za svaki mikrokontroler ponaosob u njemu odgovarajućem h fajlu. Za detaljnije specifikacije ovih opcija potrebno je pogledati odgovarajuće uputstvo mikrokontrolera. Nazivi ovih opcija su uglavnom identični sa njihovim nazivima koji su dati u uputstvu.
Neki mikrokontroleri mogu imati i više konfiguracionih reči. One su poređane u nizu jedna za drugom. U tom slučaju potrebno je kreirati onoliko poziva makroa __CONFIG
koliko ima konfiguracionih reči. Svaki poziv makroa __CONFIG
modifikovaće podatke sledeće konfiguracione reči u nizu.
Primer korišćenja makro-a __CONFIG u programu
#include
__CONFIG(LVPDIS&HS&PROTECT&PWRTEN&WDTDIS);
void main(void) {
...
}
Konfiguracioni biti PIC mikrokontrolera
Izbor oscilatora
Oscilator mikrokontrolera može biti kreiran od otpornika i kondenzatora. Koristi se u slučajevima kada je potrebno kreirati izuzetno jeftin sistem u kojem nije bitna tačna učestanost rada mikrokontrolera. Mikrokontroleru se saopštava da radi sa ovakvim oscilatorom tako što se određeni biti konfigurišu preko makro __config
sa bitom:
- RC – RC oscilator(resistor/capacitor)
U slučajevima kada se koristi kristalni oscilator može se izabrati jedna od sledećih opcija za podeđavanje:
- HS – high speed crystal/resonator
- XT – crystal/resonator
- LP – low power crystal/resonator
Watchdog
Watchdog tajmer služi za nadgledanje ispravnog rada mikrokontrolera i njegovo uključivanje i isključivanje se vrši pomoću:
- WDTEN – Omogući watchdog tajmer
- WDTDIS – Onemogući watchdog tajmer
Power up timer
Ovaj tajmer omoućava odložen start izvršavanja programa mikrokontrolera za 72 milisekunde + 1024 ciklusa oscilatora.
- PWRTEN – Omogući power up tajmer
- PWRTDIS – Onemogući power up tajmer
Brown out reset
Ukoliko se detektuje pad napona napajanja i Brown out reset je uključen tada će mikrokontroler ući u reset stanje i ostati u tom stanju sve dok se napon napajanja ne stabilizuje.
- BOREN – Omogući brown out reset
- BORDIS – Onemogući brown out reset
Pad napona napajanje, za većinu PIC mikrokontrolera koji rade na 5V, sa kojim se uključuje brown-out reset treba da se nalazi oko 4V.
Low Voltage Programmable
PIC mikrokontroleri se mogu programirati i pri niskom naponu.
- LVPEN – Omogućeno programiranje pri niskom naponu
- LVPDIS – Onemogućeno programiranje pri niskom naponu
Data code protected
- DP – protect data code
Alternativno mogu se upotrebiti i opcije u obliku
- DPROT – koristiti DP
- DUNPROT – koristiti UNPROTECT
Flash memory write enable/protect
Program mikrokontrolera se može čitati preko EECON registara ukoliko je WRTEN omogućen.
- WRTEN – upis u fleš memoriju omogućen
- WRTDIS – upis u fleš memoriju onemogućen/zaštićen
Debug option
Ukoliko se želi koristiti neki debager sa mikrokontrolerom, tada je neophodno podesiti sledeće opcije:
- DEBUGEN – debager uključen
- DEBUGDIS – debager isključen
Ukoliko se ne koristi debager tada su pinovi RB7 i RB6 klasični ulazno/izlazni pinovi. U slučaju korišćenja debagera, RB6 i RB7 su specijalni pinovi, preko kojih se komunicira sa jezgrom mikrokontrolera i ne mogu se koristiti kao regularni pinovi.
Code protection
U nekim situacijama potrebno je zaštititi program koji se upisuje u mikrokontroler od naknadnog isčitavanja istog i bespravnog kopiranja. To se lako postiže na sledećim opcijama:
- PROTECT – onemogući eksterni pristup programskoj memoriji
- UNPROTECT – omogući eksterni pristup programskoj memoriji
Leave your response!
You must be logged in to post a comment.