www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Kalibracija internega oscilatorja na 12F675

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.41

PrispevekObjavljeno: Pon Dec 17, 2007 10:20 pm    Naslov sporočila:  Kalibracija internega oscilatorja na 12F675 Odgovori s citatom

Imel sem cel kup "povoženih" 12F675, zato sem spisal en kratek program za kalibracijo internega oscilatorja. Potrebujemo samo programator in frekvencmeter.

Priključitev:
1-vdd (icsp)
2-tipka dol (kontakt na vss)
3-clkout (meritev frekvence, =fosc/4)
4-vpp/reset (icsp)
5-tipka gor (kontakt na vss)
6-icspclk
7-icspdat
8-vss (icsp)

Postopek kalibracije poteka takole:
-sprogramiramo čip
-s tipkama gor/dol (GP2 in GP5) nastavimo frekvenco, čim bližje 1MHz. Korak je odvisen od posameznega čipa, približno 0.01MHz (tipk v bistvu ne rabimo, dovolj je košček žice in protoboard Wink)
-preberemo eeprom, kalibracijska vrednost je na naslovu 0 (oz. 0x2100)
-sprogramiramo novo kalibracijsko vrednost:
--z ICD2 lahko to kar iz MPLAB-a: v nastavitvah (Programmer->Settings, Calibration Memory tab) odkljukamo "Allow ICD2 to program calibration memory", vnesemo prebrano vrednost iz eeproma, ter ponovno sprogramiramo čip. To opcijo je najboljše nato takoj izklopit, da ne bomo naslednjič po nesreči prepisali kalibracije...
--z navadnimi programatorji moramo "peš" nastaviti vrednost na zadnji programski lokaciji in nato vpisati nov program: na naslov 0x03ff vpišemo vrednost 34xx, kjer je xx vrednost iz eeproma, nato sprogramiramo na novo. Programator bo vprašal, če uporabimo vrednost iz bufferja za OSCCAL, to potrdimo (če tega ne vpraša, bo ga pametno zamenjati)
-po ponovnem programiranju bi morala biti prava frekvenca na CLKOUT

ICD2 klon pride prav, ker lahko direktno napaja vezje...

Vse tole seveda nima smisla, če kasneje v "pravem" programu ne preberemo te vrednosti:
Koda:
bsf STATUS, RP0 ;Bank 1
call 0x3FF ;Get the cal value
movwf OSCCAL ;Calibrate
bcf STATUS, RP0 ;Bank 0


Napako mi je pri vseh uspelo spraviti pod 0.005MHz oz. 0.5%



osccal.zip
 Opis:
hex

Download
 Ime datoteke:  osccal.zip
 Velikost datoteke:  329 Bytov
 Downloadano:  7 krat


_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group