English version

Frekventometr III. do 10 MHz, rozlišení až 0,000 001 Hz

     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 volených 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 jiný, 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 kritický) 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ěřený čas. Pokud je frekventometr přepnut na měření periody, vypočte ji podle rovnice T = naměřený č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ěřený 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-bitových registrů, takže vznikne 24-bitový údaj o počtu pulzů. Časovač/čítač 1 (16 bitový) také přetéká do dvojice 8-bitových registrů, takže vznikne 32-bitový údaj o čase (1 LSB = 50ns). Při výpočtu frekvence je 24-bitový počet pulzů vynásoben 48-bitovou konstantou (2e13), vzniklé 72-bitové číslo pak vyděleno 32-bitovým údajem o čase. Při výpočtu periody je 32-bitová informace o čase vynásobena 16-bitovou konstantou (50 000), vzniklé 48-bitové číslo pak vyděleno 24-bitovým ú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 metrických předpon. Obnovovací frekvence je cca 1Hz (při měření velmi malých frekvencí v řádu jednotek Hz může být 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ístný displej může být sestaven např. ze čtyř dvojmístných 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ítivý 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 výstupu (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í být 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í nesmyslných 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.

Celý program ke stažení:
zdrojový kód v assembleru (ASM)
přeložený v HEX souboru (2256 Bajtů)
Zapisování programu do AVR se podrobněji věnuji zde.

Případným zájemcům mohu naprogramovaný mikroprocesor poslat. Více info zde.


Obr. 1 - Schéma frekventometru (měřiče frekvence) III. do 10MHz s ATmega88 / 88A / 88P / 88PA


Obr. 2 - Nastavení konfiguračních bitů frekventometru III. (krystal)


Obr. 3 - Úprava konfiguračních bitů a zapojení pro externí zdroj taktování 20 MHz. Při použití externího taktu se využije vývod XTAL1. XTAL2 je nevyužit.


Testování frekventometru III. v kontaktním poli.


Frekventometr na desce (displeje LD-D036UPG-C) se zdrojem 5V se 7805.


Zabudováváni do krabičky


Vypínač a volič frekvence / perioda.


Sedmiciferné zobrazení frekvence na frekventometru.


Hotový frekventometr v provozu.


Video - porovnání Frekventometru III. s Frekventometrem II.



Přidáno: 24. 3. 2014
zpět na úvodní stránku