Tento frekventometr neboli ?íta? s AVR umo?ňuje mě?it frekvence od 0,45 Hz a? do 10 MHz a periodu od 0,1us a? do 2,2s v 7
automaticky volenych rozsazích. údaj zobrazuje na sedmimístném LED displeji.
Základem je mikroprocesor IO1 - Atmel AVR ATmega88 / ATmega88A / ATmega88P / ATmega88PA, program ke sta?ení je ní?e.
Nastavení bit? je na obr. 2. Princip mě?ení je jiny, ne? u p?edchozích dvou frekventometr?. Metoda prostého po?ítání pulz? po dobu p?esně 1s,
pou?itá u p?edchozích dvou frekventometr? (Frekventometr I.,
Frekventometr II.), toti? neumo?ňuje mě?ení na zlomky Hz. Proto jsem u tohoto mě?idla
zvolil metodu, která je sice zna?ně slo?itěj?í, ale umo?ňuje mě?it malé frekvence s rozli?ením a? na 0,000 001 Hz.
Frekventometr ?eká na nejbli??í nábě?nou hranu, poté za?ne po?ítat impulzy a zároveň za?ne odmě?ovat ?as.
Po cca 1s (tento ?as není pro p?esnost kriticky) za?ne opět ?ekat na nejbli??í nábě?nou hranu. S touto hranou p?estane po?ítat pulzy i mě?it ?as.
P?esnou frekvenci pak vypo?te podle rovnice f = po?et impulz? / namě?eny ?as.
Pokud je frekventometr p?epnut na mě?ení periody, vypo?te ji podle rovnice T = namě?eny ?as / po?et impulz?.
Poté se cyklus zase opakuje - frekventometr za?ne opět ?ekat na nejbli??í nábě?nou hranu, od které za?ne po?ítat pulzy a mě?it ?as.
Mě?eny signál vstupuje zároveň do vstup? ICP1 a T0, tedy do vstupu spou?tění funkce Input Capture 1 (umo?ňuje
mě?ení ?asu) a zároveň do vstupu externího taktování ?íta?e/?asova?e 0 (umo?ňuje po?ítání pulz?).
P?i p?ete?ení 8-bitového ?íta?e 0 je inkrementován pár 8-bitovych registr?, tak?e vznikne 24-bitovy údaj o po?tu pulz?.
?asova?/?íta? 1 (16 bitovy) také p?etéká do dvojice 8-bitovych registr?, tak?e vznikne 32-bitovy údaj o ?ase (1 LSB = 50ns).
P?i vypo?tu frekvence je 24-bitovy po?et pulz? vynásoben 48-bitovou konstantou (2e13), vzniklé 72-bitové ?íslo pak vyděleno 32-bitovym údajem o ?ase.
P?i vypo?tu periody je 32-bitová informace o ?ase vynásobena 16-bitovou konstantou (50 000), vzniklé 48-bitové ?íslo pak vyděleno 24-bitovym údajem o po?tu pulz?.
Vzniklá hodnota je v obou p?ípadech p?evedena do 13-ciferného dekadického (BCD) tvaru a p?ed 6. cifru je umístěna desetinná te?ka. ?íslo je pak posunuto první
platnou cifrou na za?átek displeje. Zobrazená frekvence je v?dy v Hz, perioda v us. Automatická volba rozsahu mění pozici desetinné te?ky,
není tedy t?eba indikátor metrickych p?edpon. Obnovovací frekvence je cca 1Hz (p?i mě?ení velmi malych frekvencí v ?ádu jednotek Hz m??e byt obnova pomalej?í).
Katody displeje jsou p?ipojeny na port D kromě PD4 a na PB4, anody na bity 0 a? 5 portu C a na PB5.
Sedmimístny displej m??e byt sestaven nap?. ze ?ty? dvojmístnych LD-D028UR-C (?ervené 7mm), LD-D036UR-C (?ervené 9mm) ?i LD-D036UPG-C
(zelené 9mm) s jednou cifrou nevyu?itou. V?echny vyjmenované jsou typy s velmi vysokou svítivostí.
Vysocesvítivy displej umo?ňuje vynechat obvyklé tranzistory pro zesílení proudu. Displej je ?ízen multiplexně (maticově),
frekvence multiplexu je cca 99,649 Hz. Odpory R1 a? R8 ur?ují proud displeje a tím i jeho jas. Jsou zvoleny tak, aby
nebyl p?ekro?en maximální proud vystupu (40mA). Spína? S1 slou?í k p?epínání mezi mě?ením frekvence (rozepnut) a mě?ením periody (sepnut).
P?lperioda mě?eného signálu musí byt del?í, ne? perioda krystalového oscilátoru (omezení dané architekturou AVR).
P?i st?ídě 50% tedy lze mě?it frekvence a? do 10 MHz. Pokud je vstup ?íta?e "ve vzduchu", m??e docházet k zobrazování
nesmyslnych hodnot, proto?e vstupní impedance je vysoká. Zabránit tomu lze nap?. p?ipojením odporu cca 100k mezi vstup a zem.
IO1 je taktován krystalem 20 MHz (jeho nejvy??í povolená frekvence). P?esnost mě?ení závisí v podstatě jen na tomto krystalu a kondenzátorech C1 a C2.
Tyto kondenzátory lze pro p?esné doladění nahradit kapacitními trimry. Obvod lze také upravit na externí zdroj taktování 20MHz. Změnu v zapojení
a nastavení konfigura?ních bit? znázorňuje obr. 3. Frekventometr se napájí ze zdroje 4,5 - 5,5V.
Odběr p?i 5V je cca 15-40mA v závislosti od po?tu svítících segment? (vět?ina odebíraného proudu p?ipadá na LED displej).
Kondenzátor C3 umístěte co nejblí?e k IO1.
Rozsahy mě?ení frekvence:
Rozsah 1 ... 0,450 000 Hz - 9,999 999 Hz, rozli?ení na 0,000 001 Hz.
Rozsah 2 ... 10,000 00 Hz - 99,999 99 Hz, rozli?ení na 0,000 01 Hz.
Rozsah 3 ... 100,000 0 Hz - 999,999 9 Hz, rozli?ení na 0,000 1 Hz.
Rozsah 4 ... 1 000,000 Hz - 9 999,999 Hz, rozli?ení na 0,001 Hz.
Rozsah 5 ... 10 000,00 Hz - 99 999,99 Hz, rozli?ení na 0,01 Hz.
Rozsah 6 ... 100 000,0 Hz - 999 999,9 Hz, rozli?ení na 0,1 Hz.
Rozsah 7 ... 1 000 000 Hz - 9 999 999 Hz, rozli?ení na 1 Hz.
Rozsahy mě?ení periody:
Rozsah 1 ... 0,100 000 - 9,999 999 us, rozli?ení na 0,000 001 us.
Rozsah 2 ... 10,000 00 - 99,999 99 us, rozli?ení na 0,000 01 us.
Rozsah 3 ... 100,000 0 - 999,999 9 us, rozli?ení na 0,000 1 us.
Rozsah 4 ... 1 000,000 - 9 999,999 us, rozli?ení na 0,001 us.
Rozsah 5 ... 10 000,00 - 99 999,99 us, rozli?ení na 0,01 us.
Rozsah 6 ... 100 000,0 - 999 999,9 us, rozli?ení na 0,1 us.
Rozsah 7 ... 1 000 000 - 2 200 000 us, rozli?ení na 1 us.
Cely program ke sta?ení:
zdrojovy kód v assembleru (ASM)
p?elo?eny v HEX souboru (2256 Bajt?)
Zapisování programu do AVR se podrobněji věnuji zde.