LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

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

Artykuł publikujemy dzięki uprzejmości Andy’ego Browna, autora bloga AnydsWorkshop.

Poniżej przedstawiam projekt, który początkowo miał być prostym narzędziem, jednak wymknął się spod kontroli – jego ukończenie wymagało kilku miesięcy. Oryginalny cel projektu zniknął gdzieś po drodze i stał się tylko małym fragmentem całości. Początkowo próbowałem stworzyć pewien rejestrator danych, ale już zapomniałem, do czego właściwie miał służyć.

Ten projekt miał wykorzystywać mikrokontroler do rejestracji danych w określonych chwilach czasowych na przestrzeni długiego okresu. Szybko zorientowałem się, że oscylatory kryształowe służące do generowania zegara wewnątrz mikrokontrolera nie są wystarczająco dokładne, aby pracować zgodnie ze wskazaniami zegara ściennego przez dłuższy czas.

Najgorsze pod względem dokładności są wbudowane w mikrokontroler oscylatory, które pozwalają na pracę bez kryształu. Na przykład wewnętrzny zegar wysokiej szybkości (HSI) modelu STM32F072 ma nominalny zakres dokładności +- 2,9% w zakresie temperatur od -10°C do 85°C.

 

Tab. 1. Charakterystyki oscylatora HSI

tab1

Zegar HSI pracuje z częstotliwością 8 MHz, co oznacza błąd +/- 23,2 kHz. W ciągu godziny oznacza to zmianę czasu o ponad 10 sekund.

Jak wygląda sytuacja w przypadku zewnętrznych oscylatorów kryształowych? Są dużo lepsze, a ich typowa tolerancja wynosi +/- 30 ppm (części na milion). Znajdują się na większości tanich płytek projektowych z mikrokontrolerami.

01

Oscylator 8 MHz o tolerancji 30 ppm w ciągu godziny myliłby się o dziesiątą część sekundy, a w ciągu doby o dwie i pół sekundy – pomijając wpływ zmian temperatury. To nasunęło mi pewien pomysł. O ile układ pracuje w stosunkowo stałej temperaturze, rejestrator danych mógłby okresowo dodawać poprawkę do wskazania zegara, aby zachować dużą dokładność przez wiele dni.

Jak jednak zmierzyć dokładność oscylatora kryształowego taktującego mikrokontroler? Odpowiedź stanowi miernik częstotliwości. Można go znaleźć na przykład na ebayu. Dostępnych jest wiele bardzo zróżnicowanych mierników, od najtańszych wykonanych w całości na płytce PCB do zaawansowanych przyrządów laboratoryjnych oferowanych na przykład przez HP .

Fot. 2. Dwa produkty o skrajnie różnej jakości

Fot. 1. Dwa produkty o skrajnie różnej jakości

Do środkowego przedziału należy anonimowy produkt VCX3165, który wyglądał bardzo obiecująco i można go zamówić za około 60 funtów z Hong-Kongu.

Fot. 3. Licznik ogólnego przeznaczenia VC3165

Fot. 2. Licznik ogólnego przeznaczenia VC3165

Już miałem go kupić, ale przyszedł mi do głowy pomysł, że ciekawym projektem edukacyjnym byłoby samodzielne zbudowanie licznika częstotliwości. Mógłbym go używać do różnych pomiarów, ale też dodać funkcje przeznaczone specjalnie do kalibracji zegarów mikrokontrolera.

Jak działają liczniki częstotliwości

Najprościej mówiąc, licznik częstotliwości zlicza zbocza sygnału o nieznanej częstotliwości oraz zbocza dokładnego sygnału referencyjnego w ustalonym odcinku czasu. Prosta matematyka pozwala określić nieznaną częstotliwość z dokładnością do pewnej wartości błędu. Jest kilka różnych sposobów, w jaki można to zrealizować.

W dalszej części artykułu mierzona częstotliwość będzie określana jako „próbkowana częstotliwość”, a dokładna podstawa czasowa jako „częstotliwość referencyjna”.

Bezpośredni pomiar częstotliwości

Metoda bezpośrednia zlicza zbocza częstotliwości próbkowanej obserwowane podczas określonej liczby okresów częstotliwości referencyjnej.

04

Wzór określający próbkowaną częstotliwość jest dany bezpośrednio:

05

N to liczba okresów, okres jest wyrażony w hercach.

Jeśli w powyższym wzorze częstotliwość referencyjna będzie równa 1 Hz, realizacja pomiaru będzie bardzo prosta – liczba zliczonych próbek jest równa mierzonej częstotliwości i można ją wyświetlić bezpośrednio jako wynik.

Ponieważ okres jest związany z częstotliwością referencyjną, błąd metody wynosi 1 okres sygnału próbkowanego i jest zmienny w przypadku przyrządów wykorzystujących tą metodę zliczania.

Pomiar o stałej precyzji

Metoda o stałej precyzji (lub pośrednia) wiąże okres z wielokrotnością próbkowanego zegara. Istnieje znakomity i bardzo przystępny dokument PDF, który opisuje tą metodę dostępny tutaj.

Gdy przyrząd zostaje wyzwolony, aby rozpocząć zliczanie impulsów, nie startuje natychmiast, ale czeka na następne zbocze narastające próbkowanego zegara. Wówczas zaczyna zliczać zbocza obu sygnałów – mierzonego i referencyjnego – za pomocą dwóch liczników.

06

Autor: Andy Brown