Typická frekvence interního RC oscilátoru PIC 12Cxx je 4 MHz. Výrobce počítal s rozptylem parametrů při výrobě a teplotním driftem a proto umožnil dodatečnou kalibraci RC oscilátoru za běhu programu. Zápisem konstanty do jednoho ze speciálních registrů lze v jistých mezích „doladit“ hodinový kmitočet. Do každého vyrobeného čipu přednastavuje výrobce při testování takovou hodnotu, aby výsledná frekvence byla právě co nejblíže oněch 4 MHz.
U aplikací, kde není potřeba udržovat frekvenci RC oscilátoru na přesné hodnotě, se můžeme na konstantu od výrobce víceméně spolehnout a stačí ji pouze na začátku běhu programu přenést do kalibračního registru OSCCAL. Tam, kde požadujeme větší stabilitu po delší dobu, nebo předpokládáme větší teplotní výkyvy je třeba vnitřní oscilátor kalibrovat podle vhodného externího signálu.
Registr OSCCAL je osmibitový, ale významné jsou pouze nejvyšší čtyři bity u verzí 12C5XX, nebo vyšších šest bitů u verzí PIC12C5xxA. Následující text je zaměřen na „áčkovou“ verzi.
Firma Microchip je v popisu kalibračního registru poměrně skoupá. Z katalogového listu se dozvíme pouze, že při zvyšování zapsané hodnoty kmitočet oscilátoru roste a při snižování klesá. Pokud má vnější normálový kmitočet dostatečně dlouhé trvání, lze konečným počtem iterací zkalibrovat žádaný kmitočet. V situaci, kdy máme pro kalibraci k dispozici například jediný normálový impuls jsme v koncích. Pro řešení takového úkolu musíme znát nejen jak se kmitočet mění, ale i o kolik. Tuto informaci jsem nenašel ani v katalogovém listu, ani v aplikačních poznámkách, proto jsem závislost kmitočtu oscilátoru na obsahu kalibračního registru změřil a uvádím jej v následující tabulce.
Naměřené hodnoty
|
|
|
|
Měření jsem prováděl na vzorku PIC12C519A/JW při napájecím napětí 5V a při pokojové teplotě. Na obr. 1 jsou data z tabulky ve formě grafu.
Kalibrační konstanta pro jmenovitý kmitočet se samozřejmě mění kus od kusu. Pro testování jsem měl bohužel k dispozici pouze jeden čip, takže nemohu naměřené závislosti zevšeobecňovat. Uvedené hodnoty jsou zajímavé i pro informaci, v jakých mezích lze kmitočtový rozsah měnit.