Před lety jsme s Frantou OK2JNJ zveřejnili seriál o vývoji frekvenčního čítače FC-1300, který používáme dodnes. Původní čítač byl klasické konstrukce: po dobu nastaveného Gate time počítal vstupní impulzy a z jejich počtu se pak vypočítal kmitočet nebo perioda. Tento článek je dalším pokračováním našeho společného vývoje čítače kmitočtu v amatérských podmínkách. Nejde jen o nový displej. Postupně vzniká prakticky nový čítač, který má jinak měřit, uchovávat výsledky a ukázat z nich více informací.
Klasický čítač je pro běžné měření stále dobře použitelný, ale jeho rozlišení se při počítání v GATE okně mění podle měřeného kmitočtu a délky okna. Chtěli jsme proto postavit přístroj, který nebude jen počítat impulzy, ale bude souvisle zachycovat časové značky hran. Z nich lze frekvenci určit recipročním způsobem, sledovat její průběh, ukládat výsledky a později z nich vyhodnotit další informace. Právě proto jsme začali stavět čítač s FPGA.


Stav projektu dnes je rozdělený na několik částí. Ve FPGA je rozpracované reciproční měření s časovými značkami hran a navazujícími měřicími okny. Pro jemnou část časové značky navrhujeme TDC přímo ve FPGA. Na řídicí desce se STM32H757 běží grafické rozhraní, USB konzole a ukládání dat do externí paměti. Část obrazovek zatím používá návrhová nebo simulační data, protože napojení skutečných dat z FPGA ještě není dokončeno. Dva rovnocenné měřicí kanály a fázové porovnání patří do návrhu nové desky.
Definitivní jméno přístroje zatím nemá. Nechceme ho vybírat dřív, než bude jasná výsledná podoba celého systému. Cílem není postavit další čítač, který jednou za sekundu ukáže jedno číslo. Chceme navázat na původní přístroj, ale doplnit měření časového rozdílu a fáze, ukládání dat a jejich dlouhodobé zpracování. V dalších dílech proto vždy rozliším, co je už ověřené, a co zatím patří jen do návrhu.
Od GATE hradla k FPGA
Klasický frekvenční čítač je snadno pochopitelný přístroj. Otevře se měřicí okno, GATE hradlo propustí vstupní impulzy do čítače a po uplynutí zvoleného času se výsledek zobrazí na displeji. Na tomto principu jsme postavili i náš starší FC-1300. Je přehledný, funguje a pro řadu měření stále úplně stačí.
Časovou základnou původního FC-1300 byl referenční kmitočet 10 MHz, který odpovídá periodě 100 ns. Při klasickém přímém čítání ale rozlišení frekvence určuje především délka GATE okna. Nejmenší změna výsledku je jeden započítaný impulz, tedy 1 Hz při GATE 1 s. Při nejdelším okně 1000 s klesne tento krok na 0,001 Hz. Zaplatí se za to čekáním na výsledek po celou dobu měřicího okna.
Současná koncepce vychází z hodin odvozených od kmitočtového normálu. Podle zvolené varianty může FPGA pracovat s kmitočtem 100, 200 nebo 400 MHz. Bez další interpolace odpovídá jeden krok časové značky 10 ns při 100 MHz, 5 ns při 200 MHz a 2,5 ns při 400 MHz. Vyšší kmitočet tedy zjemní hrubé časové rozlišení, sám o sobě ale ještě neurčuje přesnost celého přístroje.
TDC je zkratka Time to Digital Converter, tedy převodník času na číslo. Hrubý čítač určí počet celých period referenčních hodin a TDC změří jemnou polohu měřené hrany uvnitř jedné periody. Při měření intervalu se jemný čas určí pro první i poslední hranu a k hrubému počtu period se připočte jejich rozdíl. Ve FPGA k tomu chceme použít kalibrovaný zpožďovací řetězec. Cílem je rozlišení přibližně 100 ps, nejde však o hotový ani zaručený parametr. Výsledek bude nutné ověřit na konkrétním FPGA a korigovat kalibrací.
Při prvních úvahách jsme zvažovali také čtyřfázový vernier, ale od této cesty jsme upustili. Vyžadoval by další kmitočet a velmi přesné udržení vzájemných fázových vztahů. Výsledek by proto závisel nejen na měřeném signálu, ale také na jitteru a dlouhodobé stabilitě pomocných hodin. V amatérském přístroji by se tím zbytečně zvýšila složitost i počet míst, která by bylo nutné kalibrovat a kontrolovat.
| Oblast | FC 1300 | Nový čítač s FPGA |
|---|---|---|
| Princip | počítání impulzů v GATE okně | reciproční měření časových značek |
| Zobrazení | čtrnáctimístný 14segmentový displej | grafické rozhraní 800 × 480 |
| Vstupy | měření frekvence jedné měřené cesty | dva rovnocenné kanály v návrhu nové desky |
| Výsledky | aktuální hodnota a základní stav | hodnota průběh statistiky |
| Rozlišení frekvence | krok 1/TGATE tedy 0,001 Hz při GATE 1000 s | z časových značek za zvolený interval |
| Časový krok | 100 ns při referenci 10 MHz | 10 ns při 100 MHz 5 ns při 200 MHz a 2,5 ns při 400 MHz bez interpolace cíl TDC přibližně 100 ps |
Starý čítač proto nechceme prezentovat jako něco překonaného nebo špatného. Naopak ukazuje, co bylo možné postavit klasickým způsobem. Nový návrh na něj navazuje a využívá dnešní FPGA, výkonný mikrokontrolér a grafické rozhraní. Rozdíl není jen v počtu barev na displeji. Je především v množství informací, které bude možné během měření zachytit a později vyhodnotit.
Na první fotografii je původní FC-1300 s čtrnáctimístným 14segmentovým displejem. Druhá fotografie ukazuje grafické rozhraní nové verze na displeji 800 × 480. Nejde jen o rozdíl ve vzhledu. Starý přístroj zobrazuje především výslednou hodnotu, zatímco nová koncepce má pracovat také s průběhem měření, statistikami a uloženými daty. Některé údaje na nové obrazovce jsou zatím návrhové nebo simulační a neznamenají hotové měření.
Co se změnilo ve vývoji
Na starším čítači je dobře vidět výsledek doby, kdy jsme museli jednotlivé části nastudovat a postupně spojit vlastními silami. Dnes je možné v amatérských podmínkách zvládnout podstatně rozsáhlejší celek. Základ se ale nezměnil. Přesnost nakonec určuje časová základna, vstupní obvod, způsob zpracování hran i kontrola výsledku. FPGA samo o sobě nezaručí přesný údaj. Jen umožní měřit a ukládat více informací, než bylo rozumné u klasického čítače. Neznamená to ale, že se složité části vyřeší samy. Rychlejší je především hledání variant a práce s dokumentací. O správnosti stále rozhoduje měření, kontrola návrhu a skutečný hardware.
Při programování používám Claude jako pracovní nástroj. Pomáhá mi rozdělit problém, připravit návrh kódu, porovnat možnosti a hledat chyby. Odpověď ale může být přesvědčivá a přitom pro konkrétní zapojení chybná. Proto jsem musel mnoho návrhů opakovaně kontrolovat, upravovat a ověřovat na desce. To se týká hlavně míst, kde se potkává FPGA, STM32, hodinové signály a konkrétní hardware. Tam nestačí, že program projde překladem. Musí odpovídat také schématu, časování a tomu, co se skutečně děje na pinech.
Jak bude seriál pokračovat
Jednotlivé části rozdělíme do kratších článků. Každý z nich vysvětlí jednu oblast a na konci odkáže na podrobnější technické texty.
- Od principu GATE k FPGA
- Řídicí deska STM32H757
- Koncepce recipročního měření
- Návrh FPGA měřicího jádra
- Vstupní modul a dva měřicí kanály
- Matematické zpracování naměřených dat
- Kalibrace a časová základna GPSDO
- Firmware a grafické rozhraní přístroje
- Webové rozhraní a SCPI
- Vývoj s pomocí umělé inteligence
- Dekapsulace klíčových součástek a jejich vnitřní architektura
- Ověření přístroje a další vývoj
V dalších dílech se proto postupně vrátíme ke koncepci měření, FPGA, vstupnímu modulu, STM32, matematickému zpracování a práci s daty. Samostatně popíšeme také vývoj programu s pomocí AI a webové rozhraní.