Dvoukanálový čítač s PIC 16F628
Inspirací k celému čítači mi byla konstrukce na www.halicky.sk, kde mne velmi překvapila informace, že lze sestrojit s PIC 16F84 čítač schopný čítat teoreticky až do 50MHz. A to bez jakehokoliv dalšího obvodu (děličky). Jak se později ukázalo tak ani tato myšlenka nebyla původní a celý popis tohoto fíglu byl popsán na stránkách Microchip. Celá vychytávka vychází z toho, že na RA4 je připojena dělička uvnitř MCU, která má právě mezní kmitočet okolo 50MHz. Bohužel nelze přímo zjistit jaká je hodnota této předděličky. Zmíněná finta spočíva v tom, že připojením dalšího portu (RB0) na tento vstup mužeme ovládat vstupní stavy na RA4, protože signal je připojen jako mekčí zdroj a pokud je RB0 nastaven jako vystup nemá žádný vliv na čítání. Další vychytávka spočívá ve způsobu zjištění hodnoty v předděličce. To se provede přepnutím RB0 na výstup a začnou se generovat pulzy na RA4. V okamžiku kdy dojde k prerušení od předděličky víme dopočitáním kolik byla počáteční hodnota po ukončení čítání.
Protože jsem si chtěl celý program ošahat a pochopit začal jsem si ho celej pomaličku přepisovat a předělávat specielně některé věci, které jsem zvyklý dělat jinak. Protože jsem potřeboval především měřák a času na měření bylo docela dost nakonec mi vyšel čítač dvoukanalový s tím, že by asi nebyl problém jej rozšířit až na čtyřkanál.
Celá konstrukce je asi celkem jasná. Multiplex 4051 na přepínání vstupů, širokopásmový zesilovač s BFRkem a tvarovač s 74HC14. Diody D1 a D2 na schématu měly sloužit pro napájení sondy po koaxiálu, ale nakonec jsem je neosadil a sonda je napájená zvlášť.

Schéma čítače

Na dalším obrázku je zapojení sondy k čítači s přepínačem přímého čítání nebo čítáním s předděličkou.

sonda.gif (13004 bytes)

 

Teď samozřejmě to nejdůležitější a to program a include soubor. Pokud si budete chtít doladit čítač tak aby Vám ukazoval přesně je třeba jemně změnit počet prázdných cyklů v procedůře "cti" označené jako Z. Pokud Vám ujel krystal o hodně je třeba změnit celé časování čítací smyčky. Celkový čas se vypočte podle vzorce ((9*T1+4)*T2+4)*T3+1+9*T4+Z, kde T1,,T4 jsou konstanty v programu a Z je počet prázdných cyklů. Zde je excelovský soubor, ve kterém jsem si to cele přepočítával.
Teď bude následovat několik obrázků z praktické realizace celého čítače.
p6033894.jpg (15374 bytes)p6033892.jpg (17915 bytes)
p6033891.jpg (17111 bytes)
Zde je vidět, že čítač umí měřit i otáčky za minutu. Každý vstup je naprosto nezávislý a lze jej nastavit naprosto individuálně. Celé nastavení lze uložit tak, aby se při zapnutí pokaždé načetlo.
Na každém vstupu lze nastavit vynásobení nebo vydělení 2,4,8,32,64,128 a jednotky kHz,MHz,GHz nebo rpm. Měření otáček je realizováno vynásobením 64mi a korekcí čítacího času. 
p6033890.jpg (16717 bytes)
Tady je zase vidět jakým způsobem je čítač ovládán. Jsou použita dvě tlačítka pro rolování a třetí slouží pro výběr. Po volbě se menu vrací o úroveň výš. V režimu čítání stisknutím rolovacího tlačítka dojde ke krátkému zobrazení nastavených parametrů toho kterého vstupu.

Zde ještě schémata a PCB ve formatu Eagle 4.08r2.