Na
ovoj stranici htio bih Vam obratiti pažnju na jednu stvar : a to je kalibracija
unutarnjeg oscilatora ovih mikrokontrolera.
Svaki
ovaj kontroler ima tvornički zapisan podatak za kalibraciju oscilatora
na posljednjoj programskoj lokaciji. Tu vrijednost je moguće pročitati,
promijeniti ili izbrisati. Moj savjet je da prije prvog programiranja kontrolera,
pročitate sadržaj programske memorije i zapišete si negdje vrijednost sa
posljednje adrese, u slučaju ako je kasnije nehotice izbrišete. Mikrokontroler
će raditi i bez tog podatka ( ako se u programu ne izvršava kalibracija
oscilatora ), samo što će "clock" biti podešen srednju vrijednost ( 3480h
), i vjerojatno će odstupati od frekvencije 4MHz. To Vam za neke uređaje
možda i neće predstavljati problem, ali ako Vam je potreban što točniji
"clock", morat ćete u programu izvršiti kalibraciju i bit će Vam potreban
ovaj podatak sa zadnje programske adrese.
Neki
moji programi koriste taj podatak za kalibraciju, i ako ste obrisali tu
vrijednost sa posljednje programske lokacije, program će se zaustaviti
kod kalibracije i uređaj neće funkcionirati.
|
|
podatak
za kalibraciju u ovom slučaju "34A0".
Ustvari,
to je naredba retlw ( return with literal in W), sa kojom se vraća podatak
u W registru ( A0h).
Svaki
mikrokontroler ima različit podatak za kalibraciju. |
|
Ako
koristite ovaj program za programiranje, kod programiranja imat ćete ovakav
upit ( slika desno ).
Obavezno
pritisnite "No", tj. da ne želite koristiti podatak sa hex programa (3FFFh),
već mikrokontrolerovu tvornički zapisanu vrijednost ( 34xxh).
Ako
bi pritisnuli "Yes", izbrisali bi taj podatak za kalibraciju. |
|
Druga
stvar kod programiranja su "fuses" :
-
Kod uključene
opcije "CP", program će vjerojatno javiti grešku "Verify failed at address
0000h!", jer ne može napraviti verifikaciju programa - znači, isključite
opciju "CP".
Ako
želite isprogramirati mikrokontroler sa uključenom opcijom "CP" - Code
Protected, tada u < Options > < < Programing > selektirajte opciju
"Verify during programming" - slika desno.
ako
hardverski koristite pin GP3 (mclr), kao ulazni
za
nešto, isključite opciju "MCLR". Kod uključene
ove
opcije, taj pin (GP3) morate koristiti za
externi
reset .
|
|
-
Postoji
mogućnost da nakon programiranja mikrokontrolera, više ga nije moguće ponovno
isprogramirati.
To
se događa u situaciji ako je uključen unutarnji oscilator i isključen "MCLR",
a Vaš programator nema kontrolu VDD-a ( +5v ).
-
Prema
specifikaciji (slika desno), programiranje se vrši tako da su linije VDD,
DATA, CLOCK na logičkoj "0", dok se na liniju VPP (MCLR) dovodi napon programiranja
( 9 - 13.5 V ) - tek tada se dovodi kontroler u fazu programiranja.
-
ako je
napon napajanja (+5V) prisutan prije VPP, a mikrokontroler je bio već isprogramiran
sa postavkama <IntOsc> i <MCLR - off>, tada nije moguće isprogramirati
kontroler, jer je on već u režimu rada i neće reagirati na programiranje.
Provjerite način programiranja Vašeg programatora.
|
|
Evo
to bi bile male upute oko programiranja ovih mikrokontrolera, i nadam se
da će nekome od Vas biti od koristi.
Ja
osobno ne koristim ovaj program, tako da Vam ne mogu u detalje objasniti
korištenje istog, samo sam Vam htio prikazati postavke isključivo na ovom
programu, jer smatram da većina od Vas koristi ovaj Ic-Prog. |
|
|