To forum używa plików cookies
To forum wykorzystuje pliki cookies do przechowywania informacji o Twoim logowaniu, jeśli jesteś zarejestrowany, oraz informacji o Twojej ostatniej wizycie, jeśli nie jesteś zalogowany. Pliki cookies to niewielkie pliki tekstowe zapisywane na Twoim komputerze; cookies ustawiane przez to forum mogą być używane wyłącznie na tej stronie i nie stanowią zagrożenia dla bezpieczeństwa. Cookies na tym forum śledzą również, które tematy zostały przez Ciebie przeczytane oraz kiedy miało to miejsce. Prosimy o potwierdzenie, czy akceptujesz, czy odrzucasz zapisywanie tych plików cookies.

Niezależnie od wyboru w Twojej przeglądarce zostanie zapisany plik cookie, aby zapobiec ponownemu zadawaniu tego pytania. W każdej chwili będziesz mógł zmienić ustawienia cookies, korzystając z linku w stopce strony.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
WALET – czyli jak buduję sobie transceiver SDR
#1
Pomysł na wykonanie urządzenia SDR bez konieczności korzystania z komputera PC kiełkował u mnie od dawna. Początkowo podejmowałem dość nieudolne próby realizacji cyfrowej transformaty Hilberta, która jest kluczowa dla tworzenia sygnału SSB ale kończyły się one zwykle kiepskimi rezultatami. Po czasie natrafiłem na publikacje na youtubeNA5Y (Ian A. Langley) oraz na wątek tu na forum dotyczący transceivera Joker.
Porównanie Waleta z Jokerem nasuwa się samo ale poza inspiracją do podjęcia własnoręcznego zmierzenia się z tematem oba projekty różnią się dość istotnie.
[Obrazek: https://lx-net.pl/walet/image/wal.png]
Dlaczego Walet? Po części nieco prowokacyjnie w stosunku do Jokera choć mam świadomość różnicy poziomów obu rozwiązań.
Ale Walet to też przecież nie król a tym bardziej nie Joker, który bije każdą kartę choć kto studiował i mieszkał w akademiku wie, że walet to swój chłop, oportunista korzystający z pracy innych, który wprawdzie korzysta z gościny kolegów ale w zamian to i tamto pomoże załatwić, zawsze jest gotowy do pomocy w pracy ale i w zabawie.

Podziwiam ilość pracy i uzyskane rezultaty w projekcie Jokera, koledzy wykonali i dalej wykonują wielkie dzieło, które wydaje się doskonałym materiałem na rozwiązanie komercyjne. Jest jednak, w moim przekonaniu, w ostatnich odsłonach dość złożoną konstrukcją hybrydową o parametrach abstrakcyjnie przekraczających potrzeby albo choćby zawierającą tyle możliwości konfiguracyjnych, że wymaga dodatkowego programu do ustawienia. Poza tym moje wyobrażenia o interface takiego urządzenia jest odmienne od użytego przez twórców Jokera bo ja postawiłem na prostotę, na przykład na większe nawiązanie do wizualizacji analogowych oraz użycie ekranu dotykowego zamiast zagnieżdżonego menu.

Pracując nad projektem Waleta chciałem po pierwsze zmierzyć się z tematem cyfrowej obróbki sygnału ale sam znając, w różnym stopniu, kilka języków programowania od bash-a, przez python-a do Arduino (C++) zdałem sobie sprawę, że prochu nie wymyślę więc postawiłem na użycie dostępnych już w domenie publicznej rozwiązań. Nigdy nie byłem zawodowym programistą, radzę sobie w prostych implementacjach ułatwiających życie i nie mam już czasu na naukę programowania na poziomie mistrzowskim :-(.

Z tego też względu, biorąc pod uwagę, że sam korzystam z publicznej pracy innych kolegów postanowiłem, że projekt Waleta będzie całkowicie otwarty. Tu, na forum, będę zamieszczał opisy rozwiązań i moje doświadczenia praktyczne natomiast na Github będę zamieszczał wszystkie materiały źródłowe i dodatkowe informacje. W ten sposób, każdy zainteresowany projektem będzie miał dostęp do schematów, plików produkcyjnych pcb, opisów, źródeł oprogramowania i innych danych niezbędnych do odtworzenia i/lub rozwijania projektu. Liczę przy tym, że ewentualny rozwój projektu przez chętnych w dalszym ciągu będzie miał charakter otwarty. Na razie Github zawiera kilka rysunków ogólnych oraz schematy płytek w formie pdf-ów.

Do kogo kieruję informacje z tego wątku? Przede wszystkim do kolegów zainteresowanych technologią SDR, chętnie ze znajomością programowania na platformie Arduino, mogących wspomóc software Waleta ale również do wszystkich, którzy chcieliby zacząć zabawę z technologiami cyfrowymi na podstawie dokładnej instrukcji montażu i uruchomienia.

Danych do przekazania jest dużo. W najbliższym czasie zamieszczał będę kolejne informacje dotyczące projektu, który jest już na takim etapie, że realizuje główne założone funkcje i nadaje się chyba do powielenia jako prototyp. Mam kilka kompletów płytek urządzenia, które mógłbym przygotować do ewentualnego montażu przez chętnych zmierzenia się z tym tematem. Spróbuję też wyliczyć podstawowe i najdroższe elementy jakie wchodzą w skład urządzenia.

[Obrazek: https://lx-net.pl/walet/image/trxsdr01.jpg] [Obrazek: https://lx-net.pl/walet/image/trxsdr02.jpg] [Obrazek: https://lx-net.pl/walet/image/trxsdr03.jpg]
Żeby nie było, że teoretyzuję na temat Waleta na razie zamieszczam kilka zdjęć, choćby zdjęcie płyty czołowej urządzenia. Urządzenie składa się z czterech płytek o rozmiarach 137x63mm połączonych między sobą jednym lub dwoma przewodami sma oraz 9 pinowymi łącznikami sygnałowymi widocznymi na zdjęciu z góry (wyróżnione owalem). To eliminuje wiązki przewodów do niezbędnych: zasilanie, głośnik, mikrofon, klucz, połączenie z PA i ułatwia montaż. Zdjęcie pokazuje połączone dwie podstawowe płytki ale wszystkie cztery płytki można zmieścić, ze stopniem mocy, w obudowie T37 o rozmiarach ok. 160 x 140x65 (płyta przednia).
Mechanice rozwiązania, podobnie jak innym, dającym się wyodrębnić tematom poświęcę oddzielne posty. Aby uruchomić urządzenie wystarczy montaż dwóch płytek syntezy sygnału bo trzecia płytka to płytka filtrów pasmowych a czwarta płytka to filtry dolnoprzepustowe z mostkiem SWR.

Cdn.

Link do Github
Cytuj
#2
W poprzednim poście pisałem do kogo kieruję propozycję bliższego zapoznania się z Waletem. Rozwinę nieco temat i dodam, że proszę traktować to rozwiązanie jako konstrukcję eksperymentalną, szczególnie nadającą się dla osób z umiejętnością programowania na platformie Arduino aby móc zmienić, poprawić lub dodać funkcjonalność. Niemniej, publikując jakąś wersję oprogramowania będę dodawał poza plikiem .ino także plik .hex a więc gotowy obraz do załadowania bez konieczności instalowania wszystkich niezbędnych bibliotek i zależności.
Ktoś spodziewający się tłumień nośnej i drugiej wstęgi na poziomie 90dB nie znajdzie tego w tej konstrukcji (przy okazji, papier zniesie nawet i 120dB tłumienia ale jak zmierzyć 90dB jeśli trudno o miernik z taką dynamiką, promieniowanie między wejściem a wyjście może zniweczyć zamierzony efekt a w dodatku nawet marne tłumienie 40dB oznacza przy mocy w antenie np. 20W poziom niepożądanych wartości sygnałów zaledwie na poziomie 20mW! → 1V na 50 omach). Takie poziomy mocy sygnałów niepożądanych nie są jeszcze zakazane a nawet sądzę, że nikt tego nie zauważy.
Jeśli ktoś spodziewa się także pierdyliarda wartości konfiguracyjnych także się rozczaruje. Na razie program pozwala na ustawienie offset-u si5351 (kalibracja częstotliwości), wpisanie własnego znaku do wyświetlania na ekranie oraz czasu opóźnienia podczas pracy cw i przejściu z nadawania na odbiór. Może trzeba będzie dopisać jeden lub dwa parametry ale na razie nic mi nie przychodzi do głowy.

Kilka słów na temat stanu oprogramowania:
- działa odbiornik i nadajnik zarówno dla cw jak i ssb a w tym: przestrajanie, zmiana kroku, zmiana pasma i pamięć częstotliwości na każdym paśmie, zmiana wstęgi, zamiana F1 (częstotliwość podstawowa) i F2 (zapasowa) oraz ich zrównanie, wybór filtra m.cz. podczas odbioru (lpf 3.6kHz, lpf 2.4kHz oraz bpf 800Hz)
- działa pełna obsługa wyświetlacza z funkcjami dotykowymi
- działa układ formowania sygnału cw (przód i tył zbocza)
- działa układ 8 filtrów pasmowych wspólny dla odbiornika i nadajnika
- działa układ 4 oktawowych filtrów dolnoprzepustowych: 4MHz, 8MHz, 16MHz, 32MHz nadajnika (PA)
- działa podstawowy setup dla trzech parametrów opisany wcześniej
- działa klucz elektroniczny z przestrajaniem 6-25 grup
Co jest do zrobienia:
- uruchomienie i kalibracja ARW
- uruchomienie i kalibracja pomiaru SWR oraz pomiaru mocy podczas nadawania
- co do tych dwóch w/w punktów na razie działa wyświetlanie 16 położeń wskazówki miernika
- wizualizacja spektrum odbieranych sygnałów (docelowo graf FFT)
- ogólna estetyka programu i korekta znanych i nieznanych jeszcze błędów
- inne?
Kod programu pojawi się na Github na pewno zanim do kolegów dotrą płytki drukowane.

Teraz czas na podziękowania kolegom, których ciężka praca przyczyniła się do powstania tego rozwiązania a nawet powiem, że moja praca to zaledwie sklejanie klejnotów z kolekcji wymienionych kolegów
- Ian A. Langle, NA5Y, za inspirację dotyczącą ESP32A1S oraz filtrów Hilberta (patrz jego filmy na youtube, choćby https://www.youtube.com/watch?v=D0EUDRo4Mx0 )
- Phil Schatzmann https://github.com/pschatzmann/arduino-audio-tools za obsługę I2S, filtrację i prawdopodobnie za dalsze inspiracje w przyszłości
- Jasno Mildrum https://github.com/etherkit/si5351arduino za bibliotekę dla si5351
- John M. Wargo https://johnwargo.com/posts/2023/arduino...ple-cores/ za opis jak używać obu rdzeni procesora ESP32
- Matias Hertel https://github.com/mathertel/RotaryEncod...r/examples za obsługę w różnych trybach enkodera
- Bodmer https://github.com/Bodmer za bibliotekę TFT dla esp
- Rui Santos https://randomnerdtutorials.com/esp32-tf...1-arduino/ za praktyczną konfigurację biblioteki TFT dla ESP i wyświetlacza ili9341
- Nigel Redmon https://www.earlevel.com/main/2021/09/02...ulator-v3/ za kalkulator online filtrów biQuad
- twórcom oprogramowania (tylko Windows) IowaHills https://web.archive.org/web/201711102019...hills.com/ za kalkulator dla filtra Hilberta (i nie tylko).

Na początek opiszę kilka prozaicznych, nawet nie schodów ale progów z jakimi się potykałem przy budowie urządzenia.
Przetwornica stepdown wydawała się dość typowym elementem i na podstawie pierwszych zakupionych egzemplarzy zrobiłem płytki drukowane i jakież było moje zdziwienie kiedy zakupione w innym miejscu (też portal na a) moduły okazały się mieć rozstaw wyprowadzeń o 0.7mm większy.
[Obrazek: https://lx-net.pl/img/stepdwn1.jpg] [Obrazek: https://lx-net.pl/img/stepdwn2.jpg
Załączam zdjęcie i opis obu elementów, po lewej ten pasujący do płytki i z prawej ten większy. Sytuacja nie jest beznadziejna bo po wykoślawieniu wyprowadzeń do środka da się wstawić taki moduł do płytki choć będzie wystawał ponad płytkę bardziej niż właściwy. Wstawiając w płytkę przetwornicy zamiast pinów zwykły drut miedziany 0.4-06 można uniknąć problemów. Ten pasujący układ ma grubszą strzałkę od spodu i inną wartość induktora.
Przetwornica powinna mieć ustawione napięcie zanim zostanie wlutowana na płytkę albo powinna być pierwszym elementem montowanym z obowiązkowym ustawieniem właściwego napięcia przed lutowaniem kolejnych elementów. Dotyczy to dwóch głównych płytek formujących sygnał.
[Obrazek: https://lx-net.pl/img/si5351f.jpg]
Prozaiczny generator Si5351 okazał się być, w czterech zakupionych egzemplarzach, wadliwy w taki sposób, że zrywał drgania co kilkadziesiąt ms na kilka ms bez żadnego pobudzenia zewnętrznego. Niestety, nie różnił się fizycznie w niczym od podobnego układu działającego prawidłowo. Sprzedawca (z forum na a) wiedział chyba, że towar jest trefny bo zwrócił mi pieniądze bez dyskusji jak tylko zobaczył ten obraz nie domagając się zwrotu zakupionych elementów. W ten sposób dostałem za darmo kilka złącz SMA, które są w komplecie. Szare, pionowe pasy na ekranie to momenty zrywania drgań obu sygnałów F0 i F1 generatora.

Poślizgnąłem się też co najmniej 3 razy przy zakupie elementów i układów scalonych smd zaślepiony faktem, że szukane układy są dostępne i są niedrogie. Po dotarciu przesyłki okazało się, że zamiast układów w obudowie z rozstępem wyprowadzeń 1.27mm kupiłem te, które mają obudowę z dystansem o połowę mniejszym. O ile radzę sobie z rozmiarem 1.27 to jednak jest to granica poniżej, której nie potrafię zejść :-( . Dlatego uczulam kolegów przy ewentualnym zakupie elementów aby mieć to pod kontrolą.

[Obrazek: https://lx-net.pl/img/oscyl.jpg]  [Obrazek: https://lx-net.pl/img/geners.jpg]  [Obrazek: https://lx-net.pl/img/miernik.jpg]
Budując urządzenie korzystałem z oscyloskopu, generatora, mojego starego TS140, nanoVNA oraz przede wszystkim miernika uniwersalnego. Taki zestaw pomiarowy polecam do zaawansowanej pracy z Waletem ale aby go uruchomić wystarczy pewnie nanoVNA i miernik uniwersalny.


[Obrazek: https://lx-net.pl/img/obud.jpg]   [Obrazek: https://lx-net.pl/img/tulejki.jpg
Załączam też zdjęcie pakietu 4 płytek w zestawieniu z obudową do jakiej można wstawić urządzenie. Przednia/tylna ścianka ma rozmiar 140x65mm. Optymalna wydaje się obudowa T37 o długości 170mm (z prawej)  ale do obudowy o długości 150mm także się mieści (z lewej). Mam też taką obudowę o długości 180mm gdzie wejdzie pewnie i wzmacniacz mocy a może i zasilacz sieciowy.
Proponuję na początek skorzystać z załączonego rysunku płyty czołowej, którą ja wykonuję zlecając wydruk na papierze samoprzylepnym z laminowaniem termicznym. To rozwiązanie tymczasowe zanim nie powstanie np. wydruk na trwałej folii samoprzylepnej. Plik rysunku w formacie .pdf (w wymiarze 1:1) jest już na Github. Wkrótce pojawi się tam plik w formacie .dxf .
Płytki łączone są za pomocą typowych tulejek sześciokątnych M3 o długościach 5, 10, 15 i 20 mm więc warto zaopatrzyć się w zestaw takich tulejek na przykład ja używałem zestawu jak na zdjęciu.


   [Obrazek: https://lx-net.pl/img/serial.jpg]  [Obrazek: https://lx-net.pl/img/rs232.jpg

Ponieważ znaleźli się śmiałkowie gotowi podjąć się zadania zmontowania urządzenia to spróbuję możliwie szybko przygotować listę elementów z podaniem wartości, rozmiaru obudowy elementu, ceny oraz miejsca gdzie można elementy kupić.
Do nich też skieruję spersonalizowaną odpowiedź w sprawie dystrybucji płytek.
Na początek też pokażę jak skomunikować się z procesorem bo nie posiada portu szeregowego. Te dodatkowe elementy są na pierwszej płytce i współpracują z konwerterem RS232 USB/serial z pełną sygnalizacją (Tx, Rx, DTR + RTS).


Cdn. lj

Github
Cytuj
#3
Na Github (w folderze calc) umieściłem pierwszy z plików dotyczący wyliczenia i wyceny elementów. To chyba najbardziej kosztowny z etapów bo zawiera procesor i wyświetlacz a więc najdroższe pojedyncze elementy. Podaję też miejsce gdzie najszybciej i/lub najtaniej można zakupić elementy.
Rzeczywisty koszt będzie oczywiście większy bo z reguły nie doliczyłem cen dostawy, które wynoszą ok. 15PLN za przesyłkę (paczkomat) więc warto pokusic się o większy zakup w jednym miejscu, co jest dość trudne :-(
 
cdn
lj

Github
Cytuj
#4
Na początek mam informację dla kolegów chcących samodzielnie zająć się próbami programowania i konfiguracji kodu.

[Obrazek: https://lx-net.pl/img/etherkit1.jpg]
To próbka pokazująca zrzut ekranu z mojego Arduino ale w pliku

Arduino -> Setup + biblioteki  

zamieszczam opis instalacji niezbędnych danych pozwalających na pracę z kodem Waleta. Mam nadzieję, że dane i podane procedury będą czytelne.

Dla tych ewentualnych zainteresowanych chcących po prostu wgrać jakąś wersję programu wprost do procesora opiszę nieco później użycie loader-a plików binarnych co nie wymaga instalacji ani Arduino ani bibliotek.

[Obrazek: https://lx-net.pl/img/dotyk02.jpg]
A zanim rozpocznę dokładniejszy opis Waleta chciałem pokazać krótki film z działania ekeranu dotykowego:

Ekran dotykowy Waleta -> ustawienie własnego znaku

Od razu muszę przeprosić za jakość filmu, który został zrobiony na szybko i nie udało mi się ustrzec zlania się kolorów napisów na aktywnych klawiszach ale zapewniam, że operator świetnie widzi kolejne zmieniające się na nich dane.

cdn. l.j.

GitHub
Cytuj
#5
Homodyny od pierwszych publikacji SP5QU zawsze były w kręgu moich zainteresowań. To bardzo dobra technologia dla amatorów jak my i nic dziwnego, że wciąż powstają nowe. Twoja jest tym cenniejsza, że zapowiada nie tylko schemat i rysunki PCB ale też całą "kuchnię" zwiazaną z oprogramowaniem DSP.  Dla wielu forumowiczów może być zachetą do rozpoczęcia przygody z programowaniem mikrokontrolerów.
Przejrzałem schematy i mam sporo pytań z tym związanych ale nie chcę zadawać ich publicznie na Forum by nie gmatwać wątku. Nie chcę też zabierać Ci czasu na prywatną koresponencje, zatem pozostaje mieć nadzieję na spotkanie w Burzeninie.
Poprzednia publikacja DC01 zyskała 1.3M odsłon, zatem sądzę że tym razem z latwościa pobijesz ten wynik. Czego Tobie i mam wszystkim życzę.
Trzymam kciuki!
Praktykujący teoretyk
Cytuj
#6
Piotrze, dziękuję za miłe słowa i zachęcam do poruszania tematów mogących zainteresować innych kolegów. Oczywiście zapraszam też do kontaktu osobistego.

Mam świadomość, że to co zaprezentowałem do dziś może budzić pytania i wątpliwości techniczne. Proszę jednak pamiętać, że urządzenie nie jest zorientowane na wynik a raczej na eksperyment choć nie wątpię, że może służyć jako sprzęt do praktycznego użycia. Dlatego mam świadomość, że niektóre z rozwiązań mogłyby być inne (lepsze) choćby mieszacz Tayloe można byłoby zrobić jako podwójnie zrównoważony. Świadomie zrezygnowałem z tego na rzecz rozwiązania szybszego, prostszego i tańszego w wykonaniu i zastosowałem podwójny klucz w połowie używany do odbioru i w połowie do nadawania co uprościło konstrukcję ale nie podniosło parametrów mieszania :-(
W każdym razie chętnie podejmę dyskusję na tematy techniczne, niekoniecznie dotyczące części cyfrowej i programowej rozwiązania.

Dziś publikuję dokument pozwalający na samodzielne wgranie wsadu do procesora a więc nie wymagający ani umiejętności programowania lub instalacji Arduino. Wystarcza do tego przeglądarka Chrome oraz podstawowa umiejętność manipulacji plikami. Mam przy tym nadzieję, że od jutra będę mógł zająć się uporządkowaniem bieżącej wersji programu i załadowaniem tej wersji na Github. Każdorazowo pojawią się dwa komplety plików: jeden dla Arduino dla kolegów potrafiących programować na tej platformie oraz pakiet .zip zawierający pięć plików (w tym 4 binarne), które po załadowaniu do procesora dadzą pełną , działającą wersję programu. W poniższym linku opisałem jak to zrobić

Jak załadować pliki binarne do procesora Waleta

Przy poszukiwaniu prostej metody ładowania plików binarnych okazało się, że muszę poprawić układ pierwszej płytki o dodatkowy klawisz ułatwiający programowanie.

[Obrazek: https://lx-net.pl/img/down00.jpg]
Musiałem dołożyć przycisk programowania SW8 (Prgm) oraz opornik R40. Sposób ustawiania procesora w tryb programowania opisałem w wymienionym wcześniej dokumencie.

[Obrazek: https://lx-net.pl/img/down05.jpg]


A tak wygląda okno ładowania plików binarnych do procesora.
Chętnie wyjaśnię coś w razie wątpliwości, o ile oczywiście będę znał odpowiedź.

Mam nadzieję, że od jutra zajmę się porządkowaniem bieżącej wersji kodu. Wstyd byłoby pokazać to w takim stanie jak jest dziś :-(. Muszę oczyścić kod z różnych niepotrzebnych linii i komentarzy oraz wstawić informacje ułatwiające zrozumienie kodu. W ten sposób będę mógł zaprezentować pierwsze wersje plików na Github. Zacznę też omawiać części funkcjonalne odbiornika i nadajnika.

cdn. lj

Github
Cytuj
#7
Zanim omówię szczegółowo rozwiązanie najpierw opiszę ogólny schemat urządzenia, które w całości mieści się (bez PA) na czterech płytkach ok. 63x136mm oznaczonych jako h0, ha, hb i hc. Takie oznakowania można znaleźć na rysunku gdzie płytki h0 i ha to właściwe formowanie sygnału dlatego umieściłem je w jednym bloku dodatkowo narysowane są oddzielnie w trybie odbioru i nadawania.
[Obrazek: https://lx-net.pl/walet/image/ogolny.jpg]
Gdyby był kłopot z odczytem drobniejszych szczegółów to dokładny obraz znajduje się w  pliku.pdf

Podczas odbioru sygnał z anteny w zasadzie przechodzi bez zmian na przekaźnikach przez płytkę hc a dalej, na płytce hb jest filtrowany w filtrach pasmowych, przełączanych za pomocą magistrali I2C. W ten sposób sygnał dostaje się na płytkę ha gdzie na wejściu znajduje się tłumik na diodach PIN i wzmacniacz MAR6. Tłumik służy do analogowo/cyfrowej realizacji ARW. Stąd sygnał trafia do mieszacza Tayloe gdzie wydzielone zostają sygnały I oraz Q i są wzmacniane przed wprowadzeniem do części cyfrowej procesora ESP32A1S. Procesor przeprowadza transformatę Hilberta oraz filtruje dane używając cyfrowego filtra dolnoprzepustowego (3.6kHz lub 2.4kHz) lub filtra pasmowego 800Hz co się może przydać przy pracy CW. Tak zmodyfikowane sygnały I oraz Q zmieniane są do postaci analogowej i sumowane na sumatorze rezystancyjnym. Sumowanie tworzy właściwy sygnał jednowstęgowy a wybór wstęgi zapewnia kolejność sygnałów taktujących mieszacz Tayloe o czym dalej. Elementem końcowym toru odbiornika jest wzmacniacz z klasyczną regulacją wzmocnienia co pozwala na pracę ze słuchawkami lub głośnikiem.

W trybie nadawania układ działa początkowo inaczej w zależności od rodzaju emisji. Przy pracy CW właściwa częstotliwość generowana jest w układzie SI5351 i doprowadzona do płytki filtrów hb. Przy pracy SSB sygnał z mikrofonu najpierw jest wzmacniany w tym samym wzmacniaczu, który podczas odbioru wzmacnia sygnał końcowy Rx-a a następnie procesowany jest numerycznie podobnie jak przy odbiorze a więc najpierw wydzielone zostają kanały I oraz Q za pomocą transformaty Hilberta oraz zostaje ograniczone pasmo sygnału za pomocą filtra 2.4kHz. Po zamianie na postać analogową sygnały I oraz Q doprowadzone są do mieszacza Tayloe skąd sformowany sygnał doprowadzony jest do płytki filtrów hb. Tu jednak, inaczej niż przy odbiorze, sygnał jest wstępnie wzmacniany (14 lub 30dB) a następnie przechodzi przez filtr pasmowy dla ustawionego pasma pracy. Dodatkowo, w przypadku pracy CW sygnał ma kształtowane zbocze przednie i tylne. Sygnał CW lub SSB wyprowadzony zostaje na gniazdo sterujące wzmacniacz mocy PA. Wzmocniony sygnał z PA ma również swoje gniazdo na płytce hc, która w zasadzie służy wyłącznie funkcjom nadajnika: filtrowaniu oraz pomiarom przy nadawaniu. Na płytce hc znajdują się 4 filtry dolnoprzepustowe o częstotliwościach 4MHz, 8MHz, 16MHz i 32MHz. Przełączanie filtrów umożliwia magistrala I2C. Płytka zawiera także mostek SWR służący do pomiaru dopasowania anteny oraz pomiaru mocy. Dane pomiarowe podczas nadawania przekazywane są do procesora również za pomocą magistrali I2C.

Procesor ESP32A1S ma wbudowany kodek audio oraz przetworniki A/C i C/A. To pozwala na opisane wyżej manipulacje sygnałami I oraz Q. Poza tym procesor steruje kolorowym ekranem dotykowym, steruje generatorem SI5351, kontroluje enkoder, steruje magistralą I2C, sprawdza stan przycisków i wykonuje wszystkie inne potrzebne funkcje i operacje. Procesor posiada dwa rdzenie, z których jeden dedykowany jest wyłącznie do obsługi cyfrowej sygnałów I oraz Q podczas odbioru i nadawania a drugi robi całą resztę. Taki podział wynika z konieczności przetwarzania on line sygnałów audio podczas odbioru i nadawania co zapewnia wyłączenie jednego z procesorów z innych aktywności nie wymagających ścisłego reżimu czasowego.

Generator Si5351 steruje dwoma sygnałami F0 i F1 (przesuniętymi o 90 stopni) sterującymi mieszaczami Tayloe podczas odbioru i nadawania. Częstotliwości taktowania mieszaczy są dwukrotnie większe niż właściwa częstotliwość pracy urządzenia a rodzaj wstęgi zapewnia przesunięcie w fazie o 90 stopni między sygnałami. Jeśli to F0 wyprzedza F1 o 90 stopni powstaje górna wstęga a jeśli jest odwrotnie powstaje dolna wstęga. Formowanie sygnałów F0 i F1 zapewniają układy 7474 oraz 7486. Jest możliwe uzyskanie właściwej formy sygnałów F0 i F1 wprost przez manipulację fazy w generatorze SI5351 ale niesie to pewne wady o czym napiszę dokładniej podczas szczegółowego opisu tej części schematu.

cdn. lj

Github
Cytuj
#8
Bardzo dobry opis krok po kroku ,jak zaprogramować procesor a miałem  kiedyś problem akurat z tym procesorem i ten układ z dwoma tranzystorami jest bardzo dobry i niezawodny ,czytelny i jasny opis poszczególnych bloków TRX-a powinien byc zrozumiały i pomocny nawet dla mniej zaawansowanych w tego typu konstrukcjach . Osobiście czekam  na publikację softu ,aby już tylko móc uruchomić Waleta . Pozdrawiam i powodzenia życzę 73!
Cytuj
#9
(30-07-2026, 20:00)SP6FRE napisał(a): Wstyd byłoby pokazać to w takim stanie jak jest dziś :-(. Muszę oczyścić kod z różnych niepotrzebnych linii i komentarzy oraz wstawić informacje ułatwiające zrozumienie kodu. W ten sposób będę mógł zaprezentować pierwsze wersje plików na Github. Zacznę też omawiać części funkcjonalne odbiornika i nadajnika.

Nie ma się co wstydzić często przy eksperymentach tak kod potrafi wyglądać Wink

Natomiast co do projektu to osobiście mam co prawda alergię na słowo Arduino Wink Jednak gratuluję fajnego projektu i chęci do zabawy. Tak samo super że udostępniasz kod co nie jest zbyt częste, a szkoda... Zapewne może to być fajna zabawa dla wielu osób w tym możliwość przeniesienia na inne platformy niż ESP32 czy zabawa z różnym hardware (inne ADC audio itp.)

Pozostaje życzyć powodzenia i wytrwałości w rozwijaniu projektu.

Jeszcze tak odnośnie chińskich modułów i problemów z SI5351. Osobiście też miałem takie przypadki zarówno z układami od Skyworks czy Analog Devices - Chinole chyba biorą te układy z jakiś odrzutów (aby mieć atrakcyjne ceny modułów) bo w większości jakie miałem albo było coś z nimi nie tak albo z ledwością mieściły się w specyfikacji producenta. Niby jest to wygodne ale z tego powodu sam już unikam i wolę kupić układ u sprawdzonego dostawcy. Niby drożej ale może oszczędzić czasem nerwów i problemów z dziwnym zachowaniem układów...
Tomek - SP6VGX (SWL: SP-0316-JG)
http://www.sp6vgx.pl/
Cytuj
#10
Po dwóch dniach na rowerze chętnie posiedzę przy komputerze ;-) .

[Obrazek: https://lx-net.pl/walet/image/elem01.jpg]
Mam na początek dobrą wiadomość, dojechały procesory więc jeśli są sprawne to uruchomione płytki powinny dziś wyjechać do kolegów. Niestety, chyba CN to najlepsze miejsce na ten zakup biorąc pod uwagę zarówno cenę jak i czas dostawy. Na razie dwa moje układy okazały się sprawne i mam nadzieję, że ta pula powiększy się do 6 ;-)

Zacząłem na Github  publikację plików Kickad (moja wersja Kickad-a to 8.09-1) i mam prośbę do kolegów o podjęcie próby odczytu. Prawdopodobnie może brakować jakiś moich bibliotek ale najlepiej będzie jak dostanę informacje zwrotną.
Na razie moje płytki prototypu się rozeszły ale mam kilka zapytań o nowe. Jak się uzbiera odpowiednia ilość chętnych (proszę o ewentualny kontakt przez pocztę forum) to zamówię kolejne choć każdy będzie mógł użyć plików KiCad sam (JLCPCB).

[Obrazek: https://lx-net.pl/walet/image/mont01.jpg]

Załączam też rysunek jak połączyć płytki mechanicznie. 

[Obrazek: https://lx-net.pl/walet/image/mont02.jpg] [Obrazek: https://lx-net.pl/walet/image/mont03.jpg]

Potrzebne są, najlepiej sześciokątne, gwintowane tulejki M3 typu F/M o długościach łącznych (30mm - 8szt., 35mm - 4 szt., 10mm - 4 szt., 5mm - 4 szt.) dodatkowo potrzebne są 3 nakrętki M3 oraz dwie podkładki M3 - te ostatnie elementy służą do odpowiedniego dystansowania wyświetlacza. Na płytę przednią przydadzą się też cztery wkręty M3. Na zdjęciu dystans 35mm to zestaw 20+15mm a dystans 30mm to raz 2x15mm a raz 20+10mm a więc możliwości jest kilka.

Dziś też opublikuję kod programu.

cdn. lj

Github
Cytuj


Skocz do:


Użytkownicy przeglądający ten wątek: SP6AUO, 1 gości