Forum HomeMade

Pełna wersja: WALET – czyli jak buduję sobie transceiver SDR
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4 5
Tomku, nie mam chyba takiego doświadczenia z wymianą układów jak Ty ale wszedłeś mi trochę na ambicję. 
Na razie nie podjąłem jeszcze decyzji jak to zrobić ale Twój opis z wymianą cyny na niskotopliwą oraz użycie lutownicy HotAir brzmi dość przekonywająco aby podjąć jakąś akcję, tym bardziej, że zamówione procesory będą jeszcze w tym tygodniu a płytki drukowane "dopiero" w najbliższy wtorek. Będę miał więc 2,3 dni i jeśli mi puszczą nerwy to spróbuję jakiejś metody wylutowania procesora.
Ale cyna niskotopliwa i HotAir chyba odpadają co najmniej z powodu kosztów bo nie mam ani cyny ani lutownicy. Cyna to wydatek ok. 60PLN (25g) a stacja HotAir to ok. 90PLN. Wobec ceny za nową płytkę (ok. 15PLN) raczej zdecyduję się na odzyskanie ze starej płytki większości elementów i polutuję układ na nowo.
W moich warunkach chodzi mi po głowie wykonanie do lutownicy transformatorowej grotu o szerokości ok. 2.5cm i rozlutowanie jednej strony procesora z jej uniesieniem za pomocą żyletki. Jak to się uda to odlutowanie drugiej strony będzie banalne ;-)
Grzanie całej płytki raczej odpada. Boję się, że stopią mi się obudowy przekaźników i plastykowe prowadnice złącz pinowych.

Uwaga co do bibliotek jest zasadna choć w tym dokumencie opisałem jak zainstalować wszystkie nietypowe biblioteki z ich repozytorium z podaniem wersji, miejsca instalacji itd.
Opisany problem z kompilacja pakietów przez Piotra został przez niego ostatecznie dość szybko usunięty a wykonane przez niego pliki binarne wgrały się u mnie bez problemu. On, w przeciwieństwie do mnie używa nietypowej, własnej kompilacji Debiana i stąd chyba problemy, na przykład co do akceptowalnej formy ścieżek do plików. Ja pracuję na regularnej Fedorze.

lj
Płytki i procesory nadeszły tego samego dnia o kilka dni wcześniej niż myślałem i nawet zacząłem montować płytkę h0.
Przy tej okazji postanowiłem zasugerować metodę testowania modułu przetwarzania cyfrowego.

Na początek pokażę jak, za pomocą oscyloskopu dwukanałowego oraz generatora sprawdzić, że moduł cyfrowy wykonuje transformatę Hilberta oraz jak działa filtr cyfrowy.
Transformata Hilberta, w uproszczeniu zapewnia, że sygnał wejściowy zostaje przesunięty w fazie o 90 stopni. W domenie analogowej zapewniają to np. filtry polifazowe lub zbudowane z łańcucha wzmacniaczy operacyjnych dokonujących przesunięć fazowych w sumujących się zakresach częstotliwości.
W domenie cyfrowej odbywa się to na podstawie manipulowania próbkami danych "z przeszłości" co wywołuje efekt opóźnienia sygnału i co opisywałem wcześniej. Opóźnienie to konieczny koszt przetwarzania cyfrowego.

[Obrazek: test10.jpg]
Testowanie należy wykonywać w trybie nadawania (SSB) z dołączonym generatorem do wejścia mikrofonu.
W zależności od ustawionego wzmocnienia (RV1 -> LM386) sygnał ten nie powinien powodować zniekształcenia sygnału mierzonych na wyjściach I oraz Q.

[Obrazek: test12.jpg]  [Obrazek: test13.jpg]
Na wyjściach I oraz Q powinny się pojawić równe sygnały przesunięte w fazie o 90 stopni (należy zadbać aby wzmocnienia w obu kanałach były identyczne). Pierwsze zdjęcie pokazuje właśnie stan przesunięcia o 90 stopni między sygnałami I oraz Q (przy okazji widać też kwantyzację konwersji D/A). Przesunięcie o 90 stopni najlepiej widać na wykresie XY (używając oscyloskopu jednokanałowego należy wprowadzić jeden z sygnałów do wejścia podstawy czasu a wzmocnienia w obu torach powinny być jednakowe).
Jak widać w trybie XY otrzymuje się na ekranie koło a im bardziej jest ono symetryczne tym bliżej przesunięcie fazy wynosi 90 stopni.

[Obrazek: test14.jpg]  [Obrazek: test15.jpg]
Dla porównania dwa ostatnie zdjęcia pokazują jak będą wyglądać wykresy jeśli sygnał wejściowy będzie za duży. Widać wyraźnie, że przetwarzanie cyfrowe załamuje się kompletnie.

Przesunięcie fazy w jednym z kanałów o 90 stopni w torze analogowym zapewnia, że w mieszaczu Tayloe da się zbudować sygnał jednowstęgowy.

Podczas nadawania domyślnie działa filtr cyfrowy o częstotliwości granicznej 2.4kHz co można sprawdzić zmieniając częstotliwość generatora.


cdn. lj

Github
Mając do dyspozycji oscyloskop oraz wcześniej pokazany generator dwukanałowy można pokusić się o nieco bardziej miarodajny test działania transformaty Hilberta.

[Obrazek: test20.jpg]
Generator pracujący na częstotliwości akustycznej, powiedzmy np. 1kHz. należy zsynchronizować w taki sposób, że drugi kanał powiela parametry pierwszego w zakresie kształtu fali, częstotliwości i amplitudy ale w drugim kanale należy wprowadzić przesunięcie fazy o 90 stopni. W ten sposób symuluje się sygnał jaki dociera do kodeka z mieszacza Tayloe. Amplituda sygnału powinna być nieco mniejsza niż wartość powodująca przesterowanie układu a więc ok. 0.6-0.7V.

[Obrazek: test21.jpg]
Przy prawidłowo umiejscowionych sygnałach na wejściach kodeka powinien pojawić się na jego wyjściu sygnał "pożądanej" wstęgi sygnału.

[Obrazek: test22.jpg]
Po zamianie miejscami kanałów w generatorze (przepięcie wtyków) sygnał na wyjściu kodeka zostaje istotnie zredukowany.

[Obrazek: test23.jpg]
Po zmianie rozdzielczości oscyloskopu na maksymalną widać, że w szumie można dostrzec zafalowanie dotyczące "niepożądanej" wstęgi.

[Obrazek: test24.jpg]
Dla porównania, tak wygląd obraz na wyjściu kodeka kiedy na jego wejście nie jest podłączony żaden sygnał do wejścia I oraz Q. Może nie widać tego wyraźnie ale skuteczna wartość szumów na wyjściu kodeka to ok. 17mV w obu przypadkach.

Można pokusić się o oszacowanie liczbowe skuteczności transformaty Hilberta zakładając w pierwszym przybliżeniu, że sygnał pożądany ma ok. 0.7V a niepożądany ok. 17mV a więc tyle co szumy i to określa dolną wartość tłumienia niepożądanej wstęgi na ok. 700/17 = 41.2 raza (ok. 32.3dB). Ale biorąc pod uwagę, że ślad niepożądanej wstęgi w szumie nie zwiększa jego wartości skutecznej można założyć optymistycznie, że ma wartość o rząd mniejszą niż szum a więc ok. 1.7mV. W takim przypadku tłumienie niepożądanej wstęgi wyniesie ok. 700/1.7 =  412 razy (ok. 52.3dB). Prawdopodobnie prawda leży gdzieś pośrodku i dla używanego filtra Hilberta (81 taps) tłumienie wyniesie ponad 40dB co nie jest złym wynikiem. Niestety, moje warunki pomiarowe pozwalają jedynie na takie zgrubne oszacowanie górnej i dolnej granicy tłumienia.
Na ostateczne tłumienie drugiej wstęgi, poza filtrem Hilberta wpływa głównie mieszacz Tayloe i tłumienie to należy mierzyć w realnym sygnale RF. Zapewne ze wzrostem częstotliwości pracy ostateczny wynik będzie coraz gorszy ze względu na opisane wcześniej niedoskonałości sygnałów sterujących mieszaczem.

Film pokazuje, z efektami dźwiękowymi, opisaną wcześniej procedurę pomiarową z użyciem generatora z możliwością synchronizacji obu kanałów. 
Bardzo pouczające jest sprawdzenie stanu kiedy przesunięcie fazy miedzy sygnałami nie wynosi 90 stopni a na przykład 1 lub 2 stopnie różnicy i jak to wpływa na wynik pomiaru.

cdn. lj

Github
(26-08-2026, 21:22)SP6FRE napisał(a): [ -> ]Tomku, nie mam chyba takiego doświadczenia z wymianą układów jak Ty ale wszedłeś mi trochę na ambicję. 

Eeeee lutowanie nawet BGA czy małych 0402 (a nawet mniejszych) to nic trudnego Wink Problem w tym że często ludzie się boją podejść do tematu, a i czasem trzeba coś niekonwencjonalnego wymyślić bo wiadomo jako amatorzy mamy ograniczone zaplecze sprzętowe. Co do HotAir-a to w sumie masz rację nie ma sensu kupować zwłaszcza najtańszego jak nie masz, a jak będziesz potrzebował to lepiej dołożyć i coś ciut lepszego kupić.

Natomiast jak mówisz o kosztach to fakt patrząc na ceny PCB itd. średnio to się kalkuluje, miałem w sumie zaoferować ci pomoc w wylutowaniu po kosztach przesyłek - ale tutaj nawet wysyłka paczkomatem w obie strony wygeneruje nie małe koszta w stosunku do wartości PCB i procesora. 

-----

Natomiast co do projektu to szacunek za tak rozległą publikację. To się ceni że dzielisz się ze wszystkim w dodatku z ładnym opisem (a to nie mało pracy). Ja jak tylko wyrobię się z zawodowymi tematami i komercyjnymi projektami (ot na razie jestem ugotowany i prawie zero czasu na hobby) to zapewne biorę się za poskładanie Walet-a....
Podobnie jak Tomek podziwiam Twoja determinację i pracowitość. Już cieszę się na spotkanie w Burzeninie. Przy okazji podpowiem, że bardzo pomocne są analizatory oparte o kartę dźwiękową jak BaudlineJaaa czy nowszy REW, które sa o niebo dokładniejsze niz pomiary "na oko" z oscyloskopu, nawet takiego który ma kalkulator wartości skutecznej.
Piotrze, dziękuję za przypomnienie o narzędziach pomiarowych opartych na karcie dźwiękowej. Ponieważ zgłosiłem Waleta do konkursu PUK i staram się go przygotować do oceny to na razie nie mam czasu na dokładniejsze analizy i pomiary. W dodatku, pracuję przede wszystkim na laptopie (szacowne Lenowo) bez dostępu do karty dźwiękowej. Kartę mam w PC ale na razie nie będę sobie piętrzył problemów.

Tomku, sam się podłożyłeś więc będę bezczelny i jak znajdziesz chwilę to daj znać, wyślę Ci płytkę z prośbą o wylutowanie procesora a w zamian proponuję płytki h0 i ha a więc tyle ile trzeba aby uruchomić odbiornik i nadajnik Waleta. Dla przypomnienia, płytka hbpłytka hc to głównie filtry oraz wzmacniacz nadajnika z mostkiem pomiarowym SWR.

W ramach rozwiązywania pozostałych zadań starałem się ostatnio jakoś poskromić temat ARW i wyszło mi średnio. To zdecydowanie wymaga dalszych prac a może nawet zmiany podejścia do problemu. Wydaje się, że ta część jest zbytnio rozbudowana i nawet w obecnej wersji nie wykorzystuje zaprojektowanych na płytkach h0 i ha elementów. Potrzebny mi wzmacniacz/detektor sygnału ARW z poziomem wyjściowym w granicach 1.8V dla sygnału maksymalnego (powiedzmy S9 + 40dB) i wystarczającą czułością dla sygnałów poniżej S6. Teoretycznie mam już wyskalowany miernik S na podstawie sygnału z generatora ale w moich warunkach sygnał zakłóceń po podłączeniu anteny na każdym z pasm to dużo ponad S9.
Ale któregoś dnia było planowanie wyłączenie zasilania i nie działało nic dookoła więc zasiliłem urządzenie z akumulatora i ku mojemu zdziwieniu nawet na paśmie 3.5MHz dało się wysłyszeć stacje ! ;-) To było przez moment tak jak w latach siedemdziesiątych kiedy największe zakłócenia pochodziły od przejeżdżających motorowerów Komar (wyjątkowo skuteczny w nadawaniu układ zapłonu).

Dwa ostatnie dni walczyłem z mostkiem pomiarowym SWR/mocy a w zasadzie z odczytem danych z mostka.
[Obrazek: brg01.jpg]
Tr2 to mostek pomiarowy SWR szeroko opisywany w różnych konstrukcjach ATU. Zbudowany jest na rdzeniu dwuotworowym i zawiera 2x17 zwojów DNE0.3 (A10-A11, B10-B11) oraz dwa odcinki przewodu koncentrycznego (przewód środkowy + izolacja, A01-A02,B01-B02 ). Diody są typu schottky (BAT) a elementy powinny być sparowane. Diody powinny mieć tą samą oporność w kierunku przewodzenia. Dodatkowo, R3 i RV3 to wstępna polaryzacja diod podnosząca czułość dla niskich mocy. Polaryzację należy ustawić tak aby na potencjometrach RV1 i 2 napięcie było zerowe ale na progu przewodzenia diod (u mnie RV1 to 470 omów). Ta część układu działa bez problemu. 
Problem miałem z uruchomieniem pomiaru napięć fali padającej i odbitej.
Zastosowany układ konwertera A/D ma rozdzielczość do 18 bitów ale zastosowany jak w tym układzie z rozdzielczością 12 bitów  daje odczyt bezpośrednio w mV. Zakres pomiarowy w tym układzie to 2047 jednostek czyli właśnie 2047mV. To nieco upraszcza diagnostykę oraz obliczenia. Wadą układu jest dość długi czas przetwarzania (4.2ms) oraz konieczność przetwarzania sekwencyjnego, kanał po kanale, bo układ posiada tylko jeden, przełączany człon przetwarzania. I właśnie właściwa sekwencja sterująca i odczytująca oba kanały wymaga starannego doboru (na razie prawie 70 linii kodu a z wizualizacją pewnie około 100).

Układ mierzy napięcie fali padającej i odbitej co służy pomiarowi SWR a moc można określić z pomiaru fali padającej zakładając, że obciążenie jest dopasowane.
W tym celu należy "zdjąć" charakterystykę układu pomiarowego. To oczywiście trzeba zrobić korzystając z generatora o odpowiedniej mocy (ja użyłem swojego transceivera TS140S) i na podstawie pomiarów należy określić zależność mocy od mierzonego sygnału. To może ułatwić odpowiednia aplikacja dostępna w sieci a ja w takich razach korzystam z tej aproksymacji funkcji na podstawie pomiarów.

[Obrazek: regr01.jpg]
Pokazane dane to rzeczywiste wyniki moich pomiarów, iksy to odczyt na wyjściu dla fali padającej w mV (lub jednostkach A/D) a igreki to odpowiadające wartości mocy w watach (mierzone miernikiem mocy lub po przeliczeniu oscyloskopem).

[Obrazek: regr02.jpg]
Aplikacja pozwala na wybór funkcji aproksymującej wyniki - tu ograniczyłem się do funkcji kwadratowej i trzeciego stopnia ale zakres wyboru jest spory.

[Obrazek: regr03.jpg]

Jako wynik otrzymuje się współczynniki wybranych funkcji aproksymujących. Dla funkcji 3 stopnia współczynnik przy x^3 jest mniejszy niż założona liczba cyfr po przecinku (tu 8 cyfr). Z reguły, dla detekcji diodowej,  wystarcza aproksymacja kwadratowa tu o postaci:
y = 0.00000406 * x^2 + 0.00090232 * x + 0.08148368
Ta właśnie zależność została użyta do pomiaru mocy w Walecie.

[Obrazek: regr04.jpg]
Program oferuje obrazowanie wybranych aproksymacji co pozwala ocenić "naocznie" dopasowanie funkcji. Jak widać funkcja kwadratowa (pomarańczowa) lepiej pasuje do wyników (kropki) niż funkcja trzeciego stopnia (zielona) szczególnie dla małych mocy.

[Obrazek: regr06.jpg]
Dla dociekliwych program podaje również sposób wyliczenia współczynników dla każdego z typów przybliżenia.

cdn. lj

Github
Stron: 1 2 3 4 5