ADALM-PLUTO clocker

We wpisie „ADALM-PLUTO do satelity Es’hail-2 i nie tylko” rozważany jest temat generatora zegarowego 40 MHz do Adalm-Pluto oraz 25 MHz do konwertera satelitarnego LNB. Problem generatora zegarowego 40 MHz w pewnym stopniu rozwiązuje wymiana oryginalnego mikro-modułu generatora na bardziej stabilny, ale nawet wtedy wpływ temperatury na stabilność częstotliwości sygnału nadawanego jest zauważalny.

W przypadku odbioru sytuacja jest o wiele gorsza. Typowy konwerter satelitarny LNB zawiera w sobie generator kwarcowy 25 MHz, który po powieleniu częstotliwości „razy 390” daje właściwą częstotliwość generator lokalnego, stosowanego w przemianie częstotliwości LNB. Uchyb częstotliwości i jego dryft temperaturowy powielane są w tym samy stopniu, w efekcie częstotliwość wyjściowa sygnału z LNB może różnić się od prawidłowej nawet kilkaset kHz. W teorii rozwiązaniem problemu  jest zastosowanie opcji  w oprogramowaniu SDR Console – stabilizacja częstotliwości odbioru w stosunku do beacona telemetrycznego transmitowanego przez QO-100. W praktyce zdarzają się wyłączenia lub zakłócenia tego sygnału. Dodatkowo synchronizacja nie może być idealna – zauważalna jest fluktuacja częstotliwości odbioru. Dopiero wykorzystanie własnego, stabilnego sygnału wzorcowego 25 MHz eliminuje te problemy.

W poszukiwaniach optymalnego rozwiązania pomógł mi Tomek SP9UOB, który pokazał mi zastosowanie układu firmy TI typu CDCE913 w swoim projekcie „Dystrybucja wzorca częstotliwości przy użyciu włókien światłowodowych”. CDCE913 to programowalny poprzez magistralę I2C wysokiej jakości (low jitter) syntezer częstotliwości o trzech wyjściach. Finalny schemat pokazanej niżej płytki przeznaczonej do zamontowanie we wspólnej obudowie z Adalm-Pluto oraz widok zmontowanej płytki drukowanej jest do obejrzenia poniżej.

 

 

 

 

 

 

Sygnał z konwertera LNB (złącze J5 typu F) dostarczany jest na wejście Adalm-Pluto poprzez filtr o paśmie 630-780 MHz oraz tłumik R4-R1.  Jeśli sygnał z LNB jest słaby można pominąć rezystor R1.

Napięcie z zewnętrznego generatora wzorcowego 10 MHz (ok. 2 Vpp) doprowadzone jest do złącza SMA J4.

Sygnał zegarowy 40 MHz do Adalm-Pluto z wyjścia Y3 układu chipu syntezera doprowadzony jest do pinów J3.

Sygnał generatora lokalnego 25 MHZ dla LNB (przystosowanego do pracy z sygnałem 25 MHz dostarczanym poprzez kabel sygnałowy) z wyjścia Y2 doprowadzony jest do złącza J5 typu F poprzez separator dolnoprzepustowy L7-C24-L8.

Sygnał 10 MHz jest odtwarzany na wyjściu J6.

Napięcie stałe do zasilania LNB dostarczone jest z przetwornicy podwyższającej napięcie poprzez dławik L5. Mając napięcie 12-14V można oczywiście przetwornicę pominąć, ale dodatkową zaletą jej zastosowania jest możliwość łatwej zmiany polaryzacji LNB na „H” poprzez zwarcie przełącznikiem pinów J8.

LNB typu LSP-02G zostało zmodyfikowane do pracy z sygnałem generatora 25 MHz dostarczanym poprzez kabel sygnałowy według metody DL9SEC.

Wyjście J1 jest połączone z wejściem RX Pluto za pośrednictwem montowanego krawędziowo wtyku męskiego SMA. Sygnał zegarowy 40 MHz dołączony jest za pomocą kabla koncentrycznego zakończonego miniaturowym wtykiem typu IPEX. Gniazdko IPEX zostało przylutowane do odpowiedniego padu i masy po usunięciu modułu generatora 40 MHz z płytki Adalm-Pluto w sposób pokazany TUTAJ.

W celu zaprogramowania układu CDCE913 do pracy jako źródło sygnałów 40 i 25 MHz należy wyznaczyć wartości jego rejestrów przy pomocy aplikacji TI ClockPro. Uzyskane wartości należy przepisać w odpowiednim formacie i przesłać za pomocą szyny I2C wykorzystując Bus Pirate, Raspberry PI (jak to opisano w „Dystrybucja wzorca częstotliwości przy użyciu włókien światłowodowych” ) lub Arduino. W tym ostatnim przypadku zestaw komend dla Y1=10 MHz, Y2=25 MHz, Y3=40 MHz jest następujący:

uint8_t addr = 0x65;
uint8_t comm1[7] = {0x01, 0x05, 0x05, 0x34, 0x01, 0x02, 0x50};
uint8_t comm2[14] = {0x14, 0x0C, 0x6D, 0x02, 0x08, 0x05, 0xFF, 0x00, 0x02, 0x83, 0xFF, 0x00, 0x02, 0x80};
uint8_t comm_save_eeprom[2] = {0x86, 0x01};

Kod dla Arduino Nano napisał Jakub SO5UCC i jest on dostępny na GitHubie .

Uwaga: Programowanie układu CDCE913 nie zawsze przebiegało gładko. Napotkane problemy to np. nie wpisywanie do EEPROMu nastaw dla wyjścia Y1, lub niemożliwość zaprogramowania poza pierwszym razem. W sieci opisywano takie problemy, lecz nie znalazłem ich rozwiązania.  Na podstawie swoich doświadczeń zalecałbym wlutowanie 2 x 4k7 R16/R17, oraz obniżenie napięcia zasilania Adruino Nano do 3,6 V podczas programowania.

Jako zewnętrzy wysokostabilny wzorzec 10 MHz zamiast popularnego wśród użytkowników Oscara-100 generatora synchronizowanego GPSem zdecydowałem się użyć Oven Controlled Crystal Oscillator. Spotkałem się opinią, że do celów komunikacyjnych ma on lepsze właściwości, niż GPSDO (mniejsze szumy fazowe). Zastosowany generator typu OX-220 zasilany jest poprzez stabilizator liniowy L7805 z napięcia 13,8 V. Po włączeniu zasilania do chwili ustabilizowania się  temperatury pobiera 480 mA, a w stanie ustalonym 150-200 mA.  Po termicznym zaizolowaniu został on oczywiście umieszczony na zewnątrz obudowy Pluto w oddzielnym, plastikowym pudełku. Stabilność generatora jest na poziomie 10 ppb, ale tolerancja częstotliwości jest skończona. Wspomniany model nie ma możliwości dostrojenia, dlatego należy wykorzystać możliwości korekcji w oprogramowaniu SDR Console. Najpierw należy ustawić dokładność toru nadawczego, wykorzystując opcje PlutoSDR-Radio Configuration-Calibration. Należy (przykładowo) ustawić częstotliwość nadawania na 10 489,751 MHz, a więc 1 kHz wyżej niż beacon telemetryczny QO-100, a  następnie metodą prób i błędów ustawić parametr „PPM adjust:” w taki sposób, aby częstotliwość nadawania była o jeden 1 kHz większa, niż częstotliwość środkowa beacona. Chodzi tu o różnicę względną, a nie wartość częstotliwości na skali odbiornika! Po regulacji uzyskałem wartość +0,270 ppm. Można łatwo policzyć, że mój egzemplarz ma częstotliwość wyjściową o 27 herców większą niż 10 MHz.

Ponieważ stopień powielenia częstotliwości generatora lokalnego LNB jest zupełnie inny niż dla nadajnika, dopiero teraz można skorygować jego częstotliwość, wprowadzając odpowiednią wartość uchybu do programu. Aby to zrobić należy na zakładce Home wcisnąć Stop, nastepnie Select Radio, Definitions…, Converter selection Edit, wybrać opcję „QO-100: 9750.0 MHz/8089.5” – Edit i metodą prób i błędów ustawić parametr „RX:” w taki sposób, aby odbiornik prawidłowo pokazywał częstotliwość środkową beacona jako 10 489, 750 MHz . Uzyskałem wartość „RX:” 9750.002.250. Pamiętaj o przyciskach Apply, Save…

Projekt płytki drukowanej plutoclocker w profesjonalny sposób wykonał Jakub SO5UCC (wielkie dzięki!). Pełna dokumentacja wraz z plikami Gerber jest dostępna:
https://github.com/cr1tbit/GNI-plutoclocker .

Mirek SP5GNI

Skomentuj

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *