Měření závislosti kmitočtu oscilátoru na napájecím napětí

Datum 7. 12. 2015 v 21:56 | Rubrika: Elektronika

     Byla jsem zvědavá, jak moc ovlivňuje napájecí napětí kmitočet krystalového oscilátoru v procesoru Atmel ATtiny2313-20PU. Takže jsem nechala několik hodin běžet čítač a zdroj a zapojila procesor na nepájivém poli tak, že má zapojené napájení a oscilátor. Nic jiného připojeného není. V procesoru je program, který jej oživí a změní na jednoduchý čítač a zároveň vyvede na jeden vývod kmitočet oscilátoru. To proto, abych sondou nezatěžovala vlastní krystal, protože i sonda 1:10 jej velmi zatíží a změní jeho kmitočet.

Aktualizace 8. 12. 2015: oprava tabulky a doplnění grafu.
Aktualizace 12. 12. 2015: Doplněná druhá tabulka a graf.
     Program pro procesor si můžete stáhnout z diskusního fóra, nebo si jej opsat z tohoto výpisu:

:1000000012C0189518951895189518951895189563
:100010001895189518951895189518951895189578
:100020001895189518958FED8DBFC0ECE8EA4E2E07
:10003000DD275D2EA89584B7082E877F84BF88E1D1
:10004000992781BD91BDEEE7F0E0A0E6B0E08827FA
:100050008D933197E9F766248FEF87BB80E081BBF2
:100060007FEF72BB88B3839588BBFCCFF894FFCF3A
:100070003197F1F70895689462F80895E89462F86A
:020080000895E1
:00000001FF


     Jak vidíte, program je krátký a zabírá jen malinkatou část paměti procesoru. Při programování je důležité nastavit „pojistky“ tak, aby procesor přivedl na výstupní pin CLKOUT kmitočet oscilátoru. Pokud se nastaví jinak, je nutné měřit na výstupech portu B, kde je však kmitočet vydělen deseti.

     Měření je vlastně jednoduché, stačí jen nastavit napětí a odečíst kmitočet na čítači. Šlo to docela snadno, jen poněkud zdlouhavě, ale to je daň za přesné nastavování napětí na zdroji.

Napětí Kmitočet Chyba
AbsolutníRelativní
5,00V4000001Hz1Hz0,000250,25ppm
4,97V4000000Hz0Hz00ppm
4,90V3999998Hz -2Hz-0,0005-0,5ppm
4,80V3999994Hz -6Hz-0,0015-1,5ppm
4,70V3999990Hz-10Hz-0,0025-2,50001ppm
4,60V3999986Hz-14Hz-0,0035-3,50001ppm
4,50V3999981Hz-19Hz-0,00475-4,75002ppm
4,40V3999976Hz-24Hz-0,006-6,00004ppm
4,30V3999971Hz-29Hz-0,00725-7,25005ppm
4,20V3999966Hz-34Hz-0,0085 -8,50007ppm
4,10V3999960Hz-40Hz-0,01-10,0001ppm
4,00V3999956Hz-44Hz-0,011-11,0001ppm
3,90V3999952Hz-48Hz-0,012-12,0001ppm
3,80V3999949Hz-51Hz-0,01275-12,7502ppm
3,70V3999947Hz-53Hz-0,01325-13,2502ppm
3,60V3999945Hz-55Hz-0,01375-13,7502ppm
3,50V3999945Hz-55Hz-0,01375-13,7502ppm
3,40V3999945Hz-55Hz-0,01375-13,7502ppm
3,30V3999946Hz-54Hz-0,0135-13,5002ppm
3,20V3999947Hz-53Hz-0,01325-13,2502ppm
3,10V3999950Hz-50Hz-0,0125-12,5002ppm
3,00V3999953Hz-47Hz-0,01175-11,7501ppm
2,90V3999956Hz-44Hz-0,011-11,0001ppm
2,80V3999961Hz-39Hz-0,00975-9,7501ppm
2,70V3999966Hz-34Hz-0,0085-8,50007ppm
2,60V3999973Hz-27Hz-0,00675-6,75005ppm
2,50V3999981Hz-19Hz-0,00475-4,75002ppm
2,40V3999992Hz -8Hz-0,002-2ppm
2,30V4000007Hz 7Hz0,001751,749997ppm
2,20V4000028Hz 28Hz0,0076,999951ppm
2,10V4000059Hz 59Hz0,0147514,74978ppm
2,00V4000100Hz100Hz0,02499924,99938ppm
1,90V4000145Hz145Hz0,03624936,24869ppm
1,80V4000184Hz184Hz0,04599845,99788ppm
1,70V4000234Hz234Hz0,05849758,49658ppm
1,60V4000245Hz245Hz0,06124661,24625ppm
1,50V4000115Hz115Hz0,02874928,74917ppm


     Musím se přiznat, že mne měření poněkud překvapilo. A nejvíce mne překvapil obrat změny frekvence při napětí cca 2,4 voltu. A také nejmenší změna kmitočtu při napětí kolem 3,5 voltu. Vypadá to, že to je nejlepší napětí při požadavku na nejpřesnější časování procesoru.

Originální obrázek
Obr. 1 - Data z tabulky hezky v grafu.


     A proč je v tabulce napětí 4,97 voltu? Při pokusech s oscilátorem jsem měla nastavenou hodnotu napětí na zdroji na 5 voltů a pomocí trimru jsem doladila frekvenci. Při vlastním měření jsem použila externí voltmetr. Každý voltmetr měří s určitou chybou a tady je to krásně vidět.

     Měření jsem prováděla v běžném prostředí mé "laboratoře" během asi půl hodiny. Teplota 20°C řízená termostatem bytu. Kolísání teploty během té půl hodiny jsem neměřila, zajímala mne hlavně změna frekvence při změně napětí a teplotu jsem považovala za stabilní, byť by ji někdo mohl považovat za jednu z proměnných. Přísně vzato by měl pravdu.

     Jak naložím s údaji v tabulce ještě nevím, ale třeba se budou někomu hodit. Jen doufám, že jsem ve výpočtech chyby opět neudělala chybu, to by byla docela slušná ostuda.

Aktualizace 12. 12. 2015:

     Nedalo mi to a udělala jsem ještě nějaká měření. Vzala jsem všechny procesory ATtiny2313 co tu mám, nahrála jsem do nich zkušební program a zkusila je změřit. A protože jsem našla i jednu 90S2313, udělala jsem s ní totéž. Bohužel tento procesor nemá výstup signálu oscilátoru, tak jsem jej musela změřit až na výstupu portu a tudíž je kmitočet dělen deseti. Do grafu jsem vložila hondnoty vynásobené deseti.

NapětíKmitočet
2313-20PU (1)2313-20PU (2)2313-20PU (3)90S2313
5,00V4000,003kHz3999,995kHz4000,008kHz400,068kHz
4,90V4000,000kHz3999,993kHz4000,005kHz400,067kHz
4,80V3999,997kHz3999,991kHz4000,003kHz400,067kHz
4,70V3999,995kHz3999,990kHz4000,000kHz400,066kHz
4,60V3999,993kHz3999,989kHz3999,998kHz400,066kHz
4,50V3999,992kHz3999,988kHz3999,997kHz400,066kHz
4,40V3999,991kHz3999,987kHz3999,996kHz400,065kHz
4,30V3999,991kHz3999,987kHz3999,995kHz400,065kHz
4,20V3999,990kHz3999,988kHz3999,994kHz400,065kHz
4,10V3999,990kHz3999,988kHz3999,994kHz400,064kHz
4,00V3999,991kHz3999,988kHz3999,994kHz400,064kHz
3,90V3999,991kHz3999,989kHz3999,994kHz400,063kHz
3,80V3999,991kHz3999,990kHz3999,995kHz400,063kHz
3,70V3999,993kHz3999,991kHz3999,996kHz400,063kHz
3,60V3999,994kHz3999,992kHz3999,996kHz400,063kHz
3,50V3999,995kHz3999,994kHz3999,997kHz400,062kHz
3,40V3999,996kHz3999,995kHz3999,999kHz400,062kHz
3,30V3999,998kHz3999,996kHz4000,000kHz400,061kHz
3,20V3999,999kHz3999,997kHz4000,001kHz400,062kHz
3,10V4000,001kHz3999,999kHz4000,002kHz400,062kHz
3,00V4000,003kHz4000,000kHz4000,004kHz400,062kHz
2,90V4000,004kHz4000,003kHz4000,005kHz400,062kHz
2,80V4000,006kHz4000,005kHz4000,007kHz400,062kHz
2,70V4000,009kHz4000,008kHz4000,009kHz400,062kHz
2,60V4000,012kHz4000,012kHz4000,012kHz400,062kHz
2,50V4000,016kHz4000,016kHz4000,015kHz400,063kHz
2,40V4000,021kHz4000,023kHz4000,020kHz400,063kHz
2,30V4000,028kHz4000,032kHz4000,026kHz400,063kHz
2,20V4000,040kHz4000,046kHz4000,035kHz400,063kHz
2,10V4000,058kHz4000,068kHz4000,049kHz400,064kHz
2,00V4000,088kHz4000,107kHz4000,073kHz400,065kHz
1,90V4000,132kHz4000,157kHz4000,117kHz400,066kHz
1,80V4000,189kHz4000,209kHz4000,176kHz400,067kHz
1,70V4000,256kHz4000,252kHz4000,242kHz0kHz
1,60V4000,266kHz4000,248kHz4000,262kHz0kHz
1,50V4000,141kHz4000,158kHz4000,135kHz0kHz


Originální obrázek
Obr. 2 - Data z druhé tabulky hezky v grafu.


     Je zajímavé, že průběh změny kmitočtu je u všech třech zkoušených procesorů stejný, takže to bude jejich vlastnost. Zajímavé je také to, že procesor 90S2313 má průběh této změny zcela jiný a výrazně menší. Třeba se toto zjištění bude na něco hodit.

     Během měření ukazoval teploměr teplotu 21 až 22°C. Když jsem zkusila nechat oscilátor běžet a zapnulo se topení, stoupla indikovaná teplota na 25,4°C a kmitočet měřeného oscilátoru klesl o 2 Hz. Rtuťový teploměr přiložený přímo k procesoru ukazuje teplotu maličko přes 24°C (teploměr má dělení po 0,5°C).

     Časem by to chtělo udělat podobné měření v závislosti na teplotě, ale to nevím, jak bych udělala. Chtělo by to klimatickou komoru. Tu zatím ale nemám. Takže jestli k takovému pokusu dojde, nikdo neví. Pokud si někdo chce hrát s naměřenými daty a nechce je opisovat, může si stáhnout přílohu, kde je XLS soubor do kterého jsem zapisovala údaje při měření. Pokud se někomu XLS nelíbí, tak si může data opsat



Článek pochází z webu Žirafoviny.cz
https://www.zirafoviny.cz

URL tohoto článku je:
https://www.zirafoviny.cz/modules/news/article.php?storyid=218