radio3 – radiotester

(Poniższy artykuł został opublikowany w numerach 2018/5 oraz 2018/6 Świata Radio)

Urządzenie jest w całości autorskim projektem, zarówno jeśli chodzi o oprogramowanie sterujące jak i firmware mikrokontrolera oraz projekt (schemat) i wykonanie mechaniczne. W schemacie wykorzystano gotowe koncepcje modułów pomiarowych (sond) ogólnie dostępne w internecie, oraz literaturze radiotechnicznej czy prasie popularnej.

Początkowo projekt powstał jako próba samodzielnego zbudowania układu mierzącego SWR anteny w układzie ze sprzęgaczem kierunkowym. Kolejnym krokiem było dodanie sondy logarytmicznej i funkcjonalności wobuloskopu co pozwoliło na zdejmowanie charakterystyk częstotliwościowych czwórników np. filtrów. Ostatnim etapem było wzbogacenie przyrządu o dodatkową sondę liniową co ułatwia pomiar napięcia skutecznego oraz moduł miernika częstotliwości. Właściwy pomiar częstotliwości, a więc zliczanie impulsów w czasie, jest realizowany przez mikrokontroler, moduł f-metra to tylko układ wzmacniania i formowania impulsów oraz wstępny dzielnik przez 16. Zastosowanie wstępnego dzielnika jest podyktowane przez maksymalną częstotliwość z jaką zastosowany mikrokontroler jest w stanie stabilnie zliczać impulsy. W praktyce zastosowany tutaj STM32F103C8T6 taktowany zegarem 72MHz jest w stanie zliczyć do około 25-30 milionów impulsów na sekundę.

Kolejną decyzją na etapie prototypu był wybór interfejsu komunikacyjnego. Początkowo wykorzystywałem wbudowany do mikrokontrolera moduł UART i komunikację przez RS-232. W kolejnej fazie jednak postanowiłem wykorzystać fakt, że mikrokontroler STM32F103C8T6 zawiera kompletny transceiver USB-FS (ang. full-speed), który koduje i dekoduje również przesyłany strumień bitów. Do implementacji pozostaje jednak protokół USB dla urządzenia komunikacyjnego wg standardu CDC / ACM. Postanowiłem napisać swoją własną wersję sterownika od strony STM32 posiłkując się przykładami dostarczanymi przez firmę STM Microelectronics oraz literaturą [1]. Wybór bardziej samodzielnego podejścia był podyktowany edukacyjnym charakterem projektu, pozwolił mi na głębsze poznanie interfejsu USB był jednak bardzo czasochłonny. Pozwoliło to ostatecznie na uproszczenie konstrukcji i braku konieczności stosowania jakichkolwiek konwerterów USB-RS232 co z powodu braku interfejsu RS-232 w dzisiejszych komputerach byłoby konieczne.

Z założenia urządzenie miało być od strony sprzętowej tak proste jak to możliwe więc sterowanie i prezentacja danych została przeniesiona do aplikacji uruchamianej na komputerze domowym. Dla uzyskania maksymalnej swobody zdecydowałem się na napisanie programu w języku Java z wykorzystaniem cross-platformowej biblioteki komunikacji szeregowej. Pozwala to na uruchomienie tego samego pliku wykonywalnego na systemie operacyjnym macOS, Windows oraz Linux. Do działania konieczne jest uprzednie zainstalowanie biblioteki JRE w wersji 1.8 lub nowszej.