![]() |
Transceiver DC01 - Wersja do druku +- HomeMade (http://sp-hm.pl) +-- Dział: Urządzenia nadawczo odbiorcze KF (/forum-62.html) +--- Dział: Transceivery HomeMade (/forum-64.html) +--- Wątek: Transceiver DC01 (/thread-280.html) |
RE: Transceiver DC01 - SQ9RFC - 18-01-2013 20:35 Sam byłem zdziwiony co się stało - więc zrobiłem ten generatorek na pająka dla potestowania. To co pokazywał oscyloskop było przerażające :-) Nie rozumiem tego. Jeszcze nie koniec eksperymentów - bo to ciekawe :-) Wczoraj na szybko podłączyłem sygnał z karty dźwiękowej (dzień bez CW to dzień stracony) fajnie było. Zdecydowana różnica - ciepły ton sinusa, ale korespondenci nadal zgłaszają przydźwięk. Jeszcze większe zdziwienie wywołało puszczenie tam sampla klaksonu samochodowego :-) Dziś zrobiłem generatorek Wiena - wyszedł na 830 Hz, ale też nie jest czysty, wrócę do domu, skoryguję do 700Hz i puszczę przez ten filtr RC który jest przed operacyjnym, zobaczę co wyjdzie. Tam musi być idealny sinus bo słychać mnie co 700 Hz aż filtr SSB wytnie wszystko. Generalnie jest super, jeszcze trochę dopieszczenia, zakręcamy obudowę i ... następną zabawką zaczynamy. Jeszcze ... - słyszę ten generator 700 Hz w odbiorniku, cichutko, ale słychać, i kliki TX/RX ale to łatwe do zrobienia ![]() RE: Transceiver DC01 - SQ9RFC - 24-01-2013 10:49 4011 nie nadaje się do współpracy z kondensatorami. Podczas przełączania pojawiają się stany nieustalone trwające losowy okres czasu - stąd niestabilność generatora. Tam trzeba zastosować bramki Schmitta. Miałem zapas 4093 i problem ustąpił. Natomiast pojawił się inny - nie rozumiem dlaczego filtr dolnoprzepustowy tego generatora ustawiony jest na 150 Hz? I nadal słyszę w odbiorniku ten generator ! RE: Transceiver DC01 - SP6FRE - 24-01-2013 13:15 Generator tonu działa tylko podczas nadawania i to jeśli jest wybrany tryb CW. Generator włącza się na stałe po pierwszym naciśnięciu klucza a samo kluczowanie działa na kluczu FET, w torze m.cz. za filtrem dolnoprzepustowym tego generatora. Dlatego nie rozumiem w jaki sposób słyszysz ten generator w odbiorniku? Może masz uszkodzenie w układzie kluczowania (w automatyce?). L.J. RE: Transceiver DC01 - SQ9RFC - 24-01-2013 14:21 Na moim schemacie na bazę tranzystora BC547 włączającego generator idzie przez opornik 10k sygnał: CW/SSB. Czyli generator włączony jest cały czas gdy mamy tryb CW. Aby działało tak jak piszesz trzeba by trochę pokombinować ![]() Z tego generatora biorę na filtr sygnał z wyjścia bramki U18a bo z wejścia jest za mały aby się cokolwiek przebiło. Ten filtr dla 700Hz ma chyba 1000dB tłumienia... I sprawdźcie koledzy na odbiornikach kontrolnych czy słychać w sygnale harmoniczne tych 700 Hz. u mnie słychać ![]() RE: Transceiver DC01/DC02 - SP6FRE - 23-04-2025 13:43 Czas leci do przodu, Chińczycy wymyślili i zrobili już chyba wszystko a nawet więcej a ja postanowiłem wrócić do mojej starej konstrukcji. Powstała nowa wersja tego urządzenia, która z poprzednią ma wspólne założenia czyli odbiornik i nadajnik z bezpośrednią przemianą. Miałem jednak nadzieję, po zastosowaniu nowszych rozwiązań, że nowe urządzenie będzie pozbawione wad poprzednika a poza tym chciałem sprawdzić kilka pomysłów jeśli chodzi o sprzęt jak i oprogramowanie. W kolejnych postach postaram się opisać co nowego pojawiło się w tym temacie a nawet zacząłem już cząstkową publikację na temat prostego klucza elektronicznego. Na razie mam już działający prototyp: ![]() To widok płyty czołowej z kolorowym wyświetlaczem (nowe rozwiązanie). U góry widoczne jest połączenie do programowania procesora ESP32 znajdującego się na pierwszej z płytek.Większość oprogramowania została napisana w python-ie, jedynie oprogramowanie dla klucza elektronicznego to Bascom. ![]() Układ, poza stopniem mocy, zamontowany został na trzech płytkach związanych ze sobą mechanicznie za pomocą tulejek dystansowych a elektrycznie połączonych za pomocą kilku płytek stykowych widocznych na pierwszym planie na dole oraz po bokach dla górnej pary płytek. W ten sposób udało się ograniczyć połączenia do niezbędnego minimum choć uważam, że i tak można byłoby coś tu poprawić. ![]() ![]() Tu widać połączone dwie pierwsze płytki oraz wspomniane łączniki. ![]() Trzecia płytka to oktawowy filtr dolnoprzepustowy używany zarówno w odbiorniku jak i na wyjściu nadajnika. W prawej części u góry znajduje się moduł pomiaru mocy i SWR. ![]() ![]() Druga płytka to zasadnicza część odbiornika i nadajnika.Widać dodatkowe moduły: u góry filtr polifazowy oraz filtr pasmowy m.cz. odbiornika a na dole od lewej to dzielnik częstotliwości oraz analogiczny filtr pasmowy i filtr polifazowy nadajnika. ![]() ![]() Pierwsza z płytek to procesor sterujący z generatorem SI5351 i kolorowym wyświetlaczem ST7735 (128x160). Na płytce jest kilka klawiszy z funkcjami: RIT, Memory, SW/SSB, USB/LSB, F0/F1, F0=F1. Sterownie zapewnia enkoder z przełącznikiem osiowym. Dwa potencjometry pozwalają na regulację siły odbioru i prędkości kluczowania. Zastosowany generator to SI5351, dla którego napisałem prosty sterownik i który opiszę dokładniej w dalszej części. Ponieważ generator ma trzy wyjścia to sterownik pozwala na korzystanie z trzech wyjść jednocześnie i zamierzam ten moduł zastosować także w urządzeniu z podwójną przemianą. Pokazany, kolorowy i tani wyświetlacz posłużył mi do kilku eksperymentów w projektowaniu interface i wydaje mi się, że uzyskałem tu pewne ciekawe efekty, które również opiszę. ![]() Na schemacie płytki podstawowej pokazane zostały wszystkie opisane wcześniej elementy. Zastosowane elementy są dość tanie i łatwo dostępne. Kody w python-ie są typu "open source" i z natury dostępne za pomocą edytora tekstu bez wyrafinowanych środowisk programistycznych choć ułatwiałem sobie pracę za pomocą systemu Thonny (oczywiście open source). Procesor ESP32 z zegarem 160MHz oraz sporą pamięcią na program i dane kompensuje wadę python-a w postaci znacznie wolniejszego wykonania programu. Dlatego stać mnie było również na wykonanie dedykowanych płytek drukowanych (Chiny) choć nie obyło się bez poprawek druku widocznych na zdjęciach płytek jako zwory, i dodatkowe połączenia. Wszystkie zmiany nanoszę systematycznie na projekt więc kolejna wersja płytek będzie pozbawiona przynajmniej zauważonych błędów. l.j. RE: Transceiver DC01 - SP6FRE - 25-04-2025 19:36 Opisując zmiany w układzie zacznę oczywiście od źródła sygnału sterującego. W oryginale była to synteza na bazie układów AD98.. W międzyczasie pojawił się układ SI5351 nie dość, że tani to jeszcze z dużym zakresem częstotliwości, dość łatwy w programowaniu i o dużej funkcjonalności. Problemem poprzedniego rozwiązania była kiepska praca dla częstotliwości powyżej 20MHz bo układy AD nie pozwalały na osiągnięcie odpowiedniej częstotliwości a dodatkowo przełączanie nie działało z dostateczna precyzją. Dla moich potrzeb napisałem (na podstawie dokumentacji i wzorując się na rozwiązaniach w C) swój prosty sterownik SI5351. Pełny opis z kodem źródłowym znajduje się na GitHub-ie Sterownik pozwala na korektę zegara SI5351 - dla przykładu mój układ generatora pracuje, po ustabilizowaniu termicznym ok. 180Hz wyżej niz częstotliwość referencyjna 900MHz (zegar SI ma częstotliwość 25MHz). Dokładność sterowania to mniej więcej 1Hz na częstotliwości 10MHz czyli ok. 10Hz dla 100MHz na wyjściu. Niestety, uPython dla ESP32 ma, w przeciwieństwie do python-a ograniczoną dokładność obliczeń ale jak widać dla potrzeb tego generatora jest to wystarczające. ![]() Na rysunku widać symbolicznie układy użyte na podstawowej płytce (poza dzielnikiem sygnału F0) i widać, że do dyspozycji są trzy sygnały o częstotliwościach F0,F1 i F2. W modyfikowanej wersji DC01/02 korzystam z częstotliwości F0 przy odbiorze i nadawaniu SSB oraz z częstotliwości F1 podczas pracy CW. W tym ostatnim przypadku po prostu sygnał CW jest tworzony bezpośrednio i kluczowany wprost poprzez programowe kluczowanie portu F1 z uwzględnieniem zarówno przesunięcia w stosunku do częstotliwości odbioru oraz bieżącego ustawienia RIT-a. Na portalu youtube obejrzeć można jak w praktyce wygląda kontrola generatora z poziomu uPython-a. Zwykle taka kontrola jest elementem większego kodu ale w tym przypadku pokazałem elementarne funkcje napisanego przeze mnie sterownika. Pokazana platforma do programowania w uPython-ie to Thonny (open source). Przy okazji przepraszam za lekkie rozsynchronizowanie dźwięku i obrazu. Jestem w fazie eksperymentów ze sklejaniem i mieszaniem video ze soba i video z dźwiękiem. Próbuje też różnych aplikacji do tego celu ale chyba pozostanę przy Shotcut (open source). l.j. W uzupełnieniu danych na temat generatora SI5351 dodam, że główny program do obsługi DC01/02, napisany oczywiście w python-ie, na etapie uruchomienia odczytuje plik konfiguracyjny ustawiający podstawowe parametry układu. Plik konfiguracyjny jest typu tekstowego a więc łatwego do korekty za pomocą prostych edytorów i zawiera (na razie) następujące dane: mpx,4 -> współczynnik podziału heterodyny F0 (wartości 1,2 lub 4) Fp1,9000000 -> częstotliwość na wyjściu F1 Fp2,9000000 -> częstotliwość na wyjściu F2 fcorr,0 -> korekta częstotliwości zegara SI5351 cwof,800 -> przesunięcie częstotliwości nadawania dla cw w [Hz] delay,1.0 -> opóźnienie przy pracy cw [sek] co 0.1 sek Encoder,1 -> zmiana kierunku pracy enkodera mem,1800000,3500000,7000000,10500000,14000000,18068000,21000000,24890000,28000000 -> wstępne wartości pamięci częstotliwości p1-p9 [Hz] ![]() ![]() Dla ułatwienia tych ustawień napisałem też prosty moduł, który można uruchomić podczas startu procesora naciskając odpowiedni klawisz urządzenia. Oczywiście dane te można zmienić ale przewidziałem też ładowanie tych wartości jako domyślne z użyciem innego klawisza. Jeśli parametr mpx ma wartość 1 to można ustawić na stałe wartości częstotliwości F1 i F2 co może się przydać w użyciu w urządzeniu z jedną lub z dwiema przemianami. Oczywiście F0 dziła zawsze jako główna heterodyna. Dla mpx o wartości 2 lub 4 opcje dla F1 i F2 są wygaszone a taka konfiguracja jest dedykowana dla urządzenia o bezpośredniej przemianie. Na podstawie wartości mpx główny program obsługujący trx w trybie bezpośredniej przemiany (dc) koryguje wskazania wyświetlacza i dla przykładu jeśli mpx ma wartość 4 to częstotliwości na ekranie o wartości np. 14001000Hz odpowiada heterodyna F0 o wartości 4x14000000=56000000Hz przy odbiorze oraz nadawaniu ssb natomiast przy pracy cw używane jest wyjście F1 generujące na częstotliwości 14000000+800=14000800Hz. RE: Transceiver DC01 - SP6FRE - 28-04-2025 9:27 Rysunek pokazuje schematycznie jak wygląda formowanie sygnału cw oraz ssb. ![]() Dla sygnału ssb, do mieszacza Tayloe działającym na połowie układu FST3253 doprowadzone są wcześniej sformowane układy I oraz Q oraz sygnał heterodyny F0. Heterodyna F0 ma wartość 2 lub 4 krotnie większą niż częstotliwość formowania sygnału co ostatecznie tworzy sygnał ssb przenoszony przez transformator na wyjście nadajnika. Właściwe sterowanie mieszacza zapewniają sformowane po podziale sygnały S0 i S1. Przy pracy cw sygnał F0 jest wygaszony a generator Si5351 generuje, przez kluczowanie programowe sygnał F1 o częstotliwości pracy transceivera doprowadzony wprost do transformatora wyjściowego. W ten sposób na wyjściu nadajnika uzyskuje się sygnał ssb lub cw o poziomie ok. 0.7-1V. Dzielniki sygnału F0 przez 2 lub przez 4 zbudowane są z tego samego zestawu bramek i przerzutników i wykonane są jako moduły o tej samej wielkości i wyprowadzeniach co pozwala na szybką zamianę - głównie w celach eksperymentalnych. ![]() Dla rozwiązania z podziałem F0 przez 2 są mniejsze wymagania na górną, niezbędną częstotliwość sygnału F0 bo w paśmie pracy do 30MHz wystarczy sygnał F0 o częstotliwości 60MHz. ![]() Dla podzielnika przez 4 sygnał F0 musi mieć górny zakres pracy ok. 120MHz co dla Si5351 nie jest problemem. l.j. RE: Transceiver DC01 - SP9FKP - 28-04-2025 10:52 Sugerowałbym jednak wstawić jakiś bufor między SI5351 a obwód wejścia/wyjścia z kształtowaniem obwiedni dla CW. Zerknij na schemat "Piligrim Pro". RE: Transceiver DC01 - SP6FRE - 28-04-2025 21:56 Dziękuję za tą uwagę o kluczowaniu. Miałem podobne wątpliwości ale inne problemy techniczne stały w bliższym szeregu do rozwiązania i jakoś nie starczyło zapału aby to zrobić. W pierwszej wersji DC01 taki układ formowania sygnału cw jest obecny i można kształtować zarówno czas narastania jak i opadania sygnału ale tamto rozwiązania ma wadę w postaci "oszukanego" cw bo w świat nie leci nośna a w zasadzie ton w kanale ssb. Dla ciekawych nagrałem film gdzie można zobaczyć sygnał na ekranie oscyloskopy i usłyszeć jak brzmi w odbiorniku. Sygnał jest faktycznie nieco twardy ale może to ułatwić jego odbiór w trudnych warunkach. Mam jeszcze szansę na poprawę tego stanu w torze nadajnika - prawdopodobnie w stopniu driver-a ale tego jeszcze nie zdecydowałem. l.j. Kolejnym elementem, który udało mi się poprawić jest enkoder obrotowy a w zasadzie jego obsługa. Z pozoru prosty problem sprawia dość często problemy z odpowiednim rozróżnieniem stanów enkodera oraz wskazaniami przy różnych prędkościach jego obrotu. Szczególnie widać to na przykładzie najprostszych, mechaniczno elektrycznych urządzeń gdzie problem potęgują stany nieustalone na stykach. Szerszy opis rozwiązania mozna znaleźć w tym linku: opis procedury obsługi enkodera obrotowego za pomocą uPython-a oraz procesora ESP32. ![]() Program do obsługi enkodera wykorzystuje przerwania pojawiające się podczas jego obrotu oraz oczywiste, przesunięcie o 90 stopni sygnalizacji pojawiającej się w obu kanałach enkodera. Zdecydowałem się, pisząc program, na świadomą rezygnację z pełnej rozdzielczości prostego enkodera (zwykle z ziarnem 20 lub 24 impulsy na obrót) na rzecz lepszej separacji stanów enkodera co radykalnie zmniejszyło ilość błędów w odczycie stanów. Pod wskazanym adresem można znaleźć podstawowy kod programu do obsługi enkodera oraz link do youtub-a gdzie znaleźć można film objaśniający działanie procedur oraz przykład działania enkodera we współpracy z ekranem wyświetlacza . Film, szczególnie w części związanej z prezentacją wyświetlacza jest nieco "wyblakły" ale zapewniam, że w naturze wygląda to o wiele lepiej - pozycja kroku w ciągu cyfr opisujących główną częstotliwość pracy jest znacznie wyraźniejsza niż na filmie. l.j. |