Nanocounter – dokładny miernik częstotliwości wykorzystujący układy FPGA, STM32 oraz aplikację Android

Po określonym czasie przyrząd przestaje zliczać na następnym narastającym zboczu mierzonego sygnału. Zależność między czasem pomiaru, wartością obu liczników i związanej z nimi częstotliwości jest następująca:

07
Gdzie s oznacza sygnał mierzony, a ref to sygnał referencyjny.

Przekształcenie wzoru pozwala wyznaczyć częstotliwość próbkowania:

08
Zaletą tej metody jest błąd równy 1 okresowi zegara referencyjnego – jeśli zegar jest wystarczająco szybki, błąd można obniżyć do bardzo małej wartości.

Projekt mojego miernika częstotliwości

Po zapoznaniu się z powyższymi metodami wyznaczania częstotliwości  określiłem cele mojego miernika częstotliwości, który nazwałem Nanocounter:

  • Bardzo dokładne pomiary w zakresie od 1 do 50 MHz. To pokrywa zakres wszystkich oscylatorów w mikrokntrolerach, które chciałbym badać.
  • Wbudowane dokładne, ale niedrogie źródło referencyjne z opcją podłączenia zewnętrznego źródła zegara referencyjnego.
  • Zaawansowane opcje, takie jak rejestracja danych, tworzenie wykresów i kalibracja wbudowanego źródła referencyjnego.

To powinno wystarczyć na początek – zobaczmy, jak mi pójdzie. Ten projekt wymaga wielu różnych umiejętności, w tym projektowania obwodów elektrycznych, projektowania płytki PCB, lutowania powierzchniowego, projektowania FPGA, programowania w C++ i w Javie dla systemu Android – zatem nie będę się nudził.

Zdecydowałem się użyć metody zliczania ze stałą precyzją. Zatem schemat blokowy całego systemu wygląda następująco:

09

Stopień wejściowy

Projekt musi zapewniać obsługę bardzo różnych sygnałów wejściowych – przebiegów sinusoidalnych i prostokątnych ze sprzężeniem AC lub DC w zakresie amplitud typowych dla sygnałów zegarowych. Analogowy układ wejściowy musi obsłużyć te sygnały i przekształcić je na sygnał prostokątny w standardzie LVCMOS, który można następnie wprowadzić do układu FPGA.

Ten układ wejściowy trzeba będzie zdublować – jedna kopia będzie obsługiwać mierzony sygnał zegarowy, a druga – zewnętrzny zegar referencyjny.

10

Pętla fazowa (PLL)

Wbudowany zegar referencyjny będzie miał częstotliwość 10 MHz i taka sama wartość jest oczekiwana na wejściu zewnętrznego sygnału referencyjnego. Pętla fazowa posłuży do zwielokrotnienia częstotliwości wejściowej 10 MHz, aby uzyskać znacznie wyższą częstotliwość referencyjną, która zostanie wysłana do FPGA. Faktyczna częstotliwość referencyjna jest ograniczona przez szybkość zliczania układu FPGA oraz możliwości wybranego układu PLL.

11

Pętla fazowa wykorzystana w projekcie musi pracować z wieloma wejściami i mieć niski poziom jitteru, aby zapewnić bardzo wysoką dokładność miernika.

Układ FPGA

Układ wykonujący zasadniczą pracę. FPGA może liczyć bardzo szybko, równolegle oraz z dokładnością do cyklu zegara. Choć nawet najprostsze mikrokontrolery zapewniają przerwania wyzwalane zboczem, nie mogą w praktyce zliczać z dużą szybkością, którą potrafi uzyskać FPGA.

Mikrokontroler

Mikrokontroler zarządza wszystkimi pozostałymi elementami systemu. Komunikuje się z użytkownikiem i obsługuje wyświetlacz, programuje stan początkowy FPGA i przechowuje dane kalibracji systemu.

Schemat elektryczny

Na podstawie tych informacji powstał schemat elektryczny całego systemu. Nie będzie to najtańszy możliwy projekt. Wymagana wysoka dokładność oznacza wykorzystanie najwyższej jakości elementów. Na płytce pojawią się układy takich firm, jak Linear Technology czy Analog Devices.

Projekt w wersji PDF

Port USB i wejście zasilania

12

Moc jest dostarczana przez gniazdo USB mini typu B. Potencjalnie zaszumiona linia zasilania 5V jest filtrowana za pomocą kondensatorów i koralika ferrytowego. Z doświadczenia wiem, że układy FPGA mogą pobierać znaczną moc. Jeśli pobór prądu przekroczy 500 mA, urządzenia będzie można używać tylko z USB 3 lub wtyczkami ładującymi USB.

Zdecydowałem się podłączyć linie danych D+ i D-, nawet jeśli nie będę ich używał w ostatecznym projekcie. Układ zabezpieczający przez wyładowaniami elektrostatycznymi USBLC6 firmy STMicroelectronics chroni linię przed skokami napięcia, które mogą wystąpić podczas wkładania lub wyjmowania wtyczki.

O autorze