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
Joker SDR - dyskusja do wątku
#51
Witam Leszku, dziękuję za zainteresowanie projektem Joker. Masz rację, dzięki Piotrowi zrobiłem duże postępy.
Odpowiadając na pytanie dotyczące kluczy, zauważyłeś pewnie, że na podstawie kolejnych opisów widać różne próby.
Początkowo był SA612, potem ZetaSDR, potem ADE-1L i obecnie CBT3253. Te wszystkie z pozoru zbędne eksperymenty
pokazały mi jak działają różne typy mieszaczy i pomogły przygotować oprogramowanie do przetwarzania kanałów IQ.
SI5351 może generować dwa sygnały przesunięte w fazie o częstotliwości docelowej lub jeden sygnał o częstotliwości
czterokrotnie większej. Mamy z Piotrem pomysł na jeszcze inną pracę SI5351, ale to wymaga więcej czasu i testów.
Schematy, widoki płytek PCB, opisy bloków, całe projekty dla programu KiCad dołączam za każdym razem do załączników.
Pierwsza płytka RF, gdzie użyłem wzmacniaczy instrumentalnych w torze odbiornika, opisana jest w załączniku Joker_15.
Za każdym razem staram się przekazać wystarczającą ilość informacji potrzebną do próby tworzenia własnych modułów
ponieważ głównym celem projektu Joker jest zachęcenie do stosowania różnych pomysłów i ciekawych rozwiązań.
Program pisany jest w środowisku Arduino. Producent ESP32 zaleca używanie dedykowanego Espressif-IDE,
ale dla mnie to tylko jedno z narzędzi, gdzie jednym posługuję się wygodniej, a innym trochę mniej.
Cytuj
#52
Witam!
Dziękuję za wyjaśnienia. Ponieważ nie znalazłem nigdzie czytelnego dla mnie diagramu joker-a to pozwoliłem na wykonanie rysunku dopasowanego do moich możliwości poznawczych na tym etapie ale pewnie diagram będzie się poszerzał i mieniał w miarę jak poznawał będę Wasze pomysły i rozwiązania ;-) Jeśli więc Damian pozwolisz, to spróbuję na tej podstawie zapytać o kilka kolejnych informacji.

[Obrazek: http://lx-net.pl/img/joker02.jpg]

- jakie jest napięcie polaryzujące mieszacz oznaczone jako Vp1? Gdyby sygnalizacja docierała wprost do ESP32 to naturalne wydawałoby się 3.3V/2 ale ponieważ nie wiem jeszcze jak wykonana jest konwersja A/D to pewnie nie mam racji,
- jak zamieniany jest sygnał analogowy na cyfrowy, wyczytałem gdzieś, że to 24 bitowe przetworniki A/D ale nie udało mi się doszukać ponownie tej informacji,
- jaki protokół działa pomiędzy przetwornikami A/D oraz ESP32, czy jest to I2S a jeśli tak to z jakim zegarem?
- o jakim poziomie napięcia można mówić w stosunku do sygnałów I oraz Q bez sygnału wejściowego - inaczej mówiąc, czy jest tam składowa stała?
- jaka częstotliwość jest na magistrali I2C?
- jaki ostatecznie wyświetlacz działa w prototypie i jak jest logicznie połączony z ESP32?
- w Waszej dokumentacji doczytałem się, że dla pasma 3.5MHz stosuje się "przeciągnięcie" częstotliwości pll do 400MHz (co faktycznie daje najniższą częstotliwość ok. 3.2MHz z przesunięciem 90 stopni między zegarami Clk0 i Clk1) ale jak na razie nie udało mi się tego potwierdzić. Czy biblioteka jakiej używacie do obsługi si5351 jest Waszej "produkcji" czy korzystacie z jakiejś ogólnodostępnej? Ja pracuję na bibliotece Etherkit Si5351 (Jason Mildrum) i nie mam pewności czy moje niepowodzenie wynika z ograniczeń biblioteki czy może mój egzemplarz si5351 nie daje się przesterować w taki sposób. Jako obejście przyszło mi do głowy zastosowanie dzielników częstotliwości w torach obu zegarów ale to nieco komplikuje rozwiązanie. 

Jak widać pytań mam sporo bo mam też pewne własne doświadczenia w tym zakresie i ciekawy jestem jak to robią lepsi ode mnie bo jeśli się uczyć to właśnie od mistrzów ;-) . Jeśli jednak uznacie, że moje pytania wykraczają zbytnio poza zakres jaki chcielibyście udostępnić to oczywiście nie będę miał pretensji. Widząc do jakiego etapu dotarliście wiem ile czasu i wysiłku musiało to kosztować i tym bardziej doceniam te dane, które już zdołaliście opublikować.

l.j.
Cytuj
#53
Leszku, na większość pytań odpowiedzi znajdują się w opisach i schematach opublikowanych w wątku głównym.
Przeczytaj proszę kolejno każdy z dokumentów i obejrzyj schematy w projektach darmowego programu KiCad.
Przetworniki analogowo-cyfrowe oraz ich podłączenia na płytce cyfrowej opisane są w pliku Joker_09.
Być może sposób rysowania przeze mnie schematów nie jest najbardziej szczęśliwy ponieważ zamiast przeciągać
wiele połączeń na całej stronie, stosuję sposób dzielenia tego na mniejsze bloki połączone etykietami.
Dla mnie jest to jednak bardziej klarowne i pozwala w danym momencie skupić się na jednej rzeczy.
Jeśli chodzi o częstotliwość pracy i2c to mamy standard 400kbps, chociaż robiliśmy z Piotrem na początku
z ciekawości testy przy prędkościach nawet 5Mbps i również działały, ale okazały się one nie być stabilne.
Biblioteka Etherkit jest w porządku, ale wymaga zmian dla pracy w paśmie 80m na przesunięciu 90 stopni.
Magistrala i2s nie ma jednej częstotliwości pracy, jak wiesz składa się z kompletu sygnałów taktujących.

Linia LCK (Left-Right Clock) przesyła słowa bitowe i ma prędkość częstotliwości próbkowania

LCK = 48kHz

Linia BCK (Bit Clock) przesyła bity tego słowa, więc musi być 2x szybsza dla dwóch kanałów i 32x szybsza dla głębi bitowej.
Z taką samą prędkością muszą poruszać się informacje na liniach DIN i DOUT przesyłając bity przy każdym uderzeniu zegara.

BCK = 48kHz * 2 * 32 = 3.072MHz

Linia MCK (Master Clock) przesyła sygnał napędzający przetwornik ADC i zazwyczaj jest on 256 razy szybszy,
można to zmienić przykładowo na x128, ale po moich testach wychodzi, że obniżenie pogarsza jakość dźwięku

MCK = 48kHz * 256 = 12.288MHz

Odnosząc się do określenia mistrzów przypomnę, że oboje z Piotrem nie mieliśmy doświadczenia w konstruktach SDR.
Na początku Piotr musiał najpierw nauczyć mnie prawidłowej terminologii radiowej, żebyśmy mogli dalej rozmawiać.
Nadal nie mamy ukończonego całego projektu i ciągle wykonujemy eksperymenty, przemyślenia, wyciągamy wnioski.
Jednak taki sposób podejścia jest dla mnie najbardziej odpowiedni bo dzięki temu nabieram najwięcej umiejętności.
Cytuj
#54
Cześć!

Pogrzebałem trochę w bibliotece Etherkit i poszerzyłem pracę si5351 do ok. 3.2MHz z pełnym przesunięciem zegarów o 90 stopni. Próbowałem zejść jeszcze niżej, do 1.8MHz kiedy częstotliwość pll powinna mieć około 230MHz ale nie działa to już dobrze.

Zgodnie z Twoją sugestią skopiowałem sobie wszystkie pliki doc i zacząłem ich systematyczną lekturę, na razie dotarłem do pliku nr 7 (nie opublikowałeś chyba pliku nr 6?).
Mój LibreOffice chyba nieprawidłowo pozycjonuje zdjęcia na stronach i większość ich "wystaje" u mnie na prawo poza zarys strony. To przy zdjęciach nie jest uciążliwe ale przy schematach muszę zmniejszać ich wielkość aby zmieściły się na stronie. Choć to detal to może warto publikować pliki opisów  w pdf-ie i będzie jak u autora ;-)

Mam też problem z otwieraniem plików KiCad-a

[Obrazek: http://lx-net.pl/img/kickad00.jpg]

Tu akurat chciałem podejrzeć płytkę panela i jak widać brakuje plików. 
Z kolei przy próbie otwarcia późniejszego zip-a mam informację, że został utworzony w wersji 9 a ja mam jeszcze wersję 8 i jutro spróbuję zrobić upgrade KiCad-a. 
Na razie więc walczę z przeszkodami formalnymi :-( .

Pomysł z tworzeniem cw z trzeciego generatora si5351 uważam za bardzo dobry ale wiąże się to z ograniczeniami w zakresie kształtowania sygnału cw. Taki sygnał jest oczywiście poprawny ale nie ma miękkości związanej z narastaniem i opadaniem impulsu. Oczywiście, można to nadrobić np. przez kluczowanie stopnia drivera ale wymaga sygnału klucza cw,  którego chyba nie przewidzieliście (o ile wiem jest tylko sygnał O/N).

Czy możesz dokładniej wyjaśnić ideę bufora podczas kluczowania? Jak duży jest to bufor i do czego właściwie służy?

Pomysł z zamianą liter i cyfr na ciągi liczb zawierające wyłącznie jedynki i trójki podczas podczas pracy cw dobrze koduje znaki i zawiera wszystkie informacje o znaku ale brakuje mi informacji jak jedynki i trójki zamieniane są na odcinki czasu odpowiadające zwarciu klucza. Czy dzieje się to na zasadzie opóźnienia o jedną lub trzy jednostki czasu z przerwami o długości jednej jednostki czy też działa inny mechanizm? Jak ustawia się prędkość pracy klucza i czy jest możliwość regulacji opóźnienia przy przejściu z nadawania na odbiór - half duplex czy też będzie to full duplex ?. Pytam o to dość szczegółowo bo sam jestem raczej telegrafistą.

l.j.
Cytuj
#55
SI5351 nie zejdzie niżej, nie wiem jaka powinna być PLL ponieważ tego nie sprawdzam, robię to trochę inaczej.
Zgadza się, plik Joker_06 nie istnieje, były tam mało istotne informacje i zrezygnowałem z jego publikacji.
Możliwe, że LibreOffice domyślnie inaczej formatuje dokument, ale jeśli potrafisz posługiwać się tym narzędziem,
możesz zrobić w nim wiele rzeczy, ułożyć wszystko po swojemu, zmienić czcionki, kolory, dołożyć własne notatki,
dokleić inne zdjęcia, podzielić całość na mniejsze kawałki, eksportować do dowolnego formatu pliku jak PDF.
W KiCad otwórz najpierw projekt *.pro, następnie z jego poziomu otwórz schemat, projekt płytki PCB lub widok 3D.
Kołowy bufor służy do opóźnienia czasowego informacji o zdarzeniach dotyczących pracy klucza telegraficznego,
jego wielkość nie ma znaczenia ponieważ kręci się w kółko i przez cały czas nadpisuje najstarsze dane.
Jedynki i trójki to mój pomysł na kompaktowe przechowywanie znaków CW, można to zrobić na wiele sposobów.
Na temat telegrafii najlepiej jak wypowie się Piotr, ja tylko realizowałem kolejne funkcje programowe.
Cytuj
#56
Cześć!

Instalacja KiCad-a w wersji 9 pomogła i teraz otwieram wszystkie pliki.
Widzę ile pracy w to włożyliście a staranność wykonania jest wzorcowa. W tym kontekście przychodzą mi na myśl filmy oglądane z realizacji układów elektronicznych jakie widziałem na znanym portalu. W szczególności jest taki autor z Nowej Zelandii, który buduje swoje złożone układy na pająka i nawet ma wyniki!! Tym bardziej doceniam staranność z jaką robicie ten projekt.

Mam nadzieję, że rola bufora dla cw w końcu się wyjaśni ale naszła mnie refleksja, że nie będzie łatwo przenieść rozwiązanie na większy wyświetlacz a przynajmniej nie z układem S3 T bo chyba ekran nie jest rozłączalny od płytki procesora i ma w dodatku 14 wyprowadzeń (komunikacja jest na 8 bitach danych). Ale może się mylę, czytałem plik dokumentacji z porównaniem wielkości ekranów ale nie pamiętam abyś pisał o technicznych aspektach operacji przejścia na większy ekran.

Przy okazji lektury regulacji wzmocnienia w stopniu wzmacniacza w.cz. naszła mnie kolejna refleksja.

[Obrazek: http://lx-net.pl/img/joker_gc01.jpg]

[Obrazek: http://lx-net.pl/img/joker_gc04.jpg]
Teraz sterowanie działa na układzie 4028 poprzez nie pokazane tu klucze tranzystorowe i drabinkę rezystorów a charakterystyka sterowania jest z grubsza jak na rysunku co wynika właśnie z odpowiedniego podziału napięcia na drabince oporników. Konstrukcja jest logiczna z punktu widzenia podobnych sterowników dla filtrów pasmowych ale czy koniecznie potrzebna w tak rozbudowanej formie?

[Obrazek: http://lx-net.pl/img/joker_gc.jpg]

Ten model esp32 nie ma wyjścia D/A z rozdzielczością 8 bitów (co mają np. ESP32 WROOM) i nie można zastosować konwersji D/A wprost ale za to większość z wyjść S3 T ma możliwość pracy PWM co najmniej w zakresie 8 bitów co w połączeniu z prostym układem filtra RC i regulatorem poziomu/wzmocnienia, dla dopasowania się do charakterystyki sterowania, na pewno pozwoliłoby na skuteczną i nie mniej dokładną regulację. Zaproponowałem tu jeden z pinów oznaczonych jako TX (są takie dwa w opisie). Należałoby jedynie sprawdzić czy sygnał PWM nie wniesie zakłóceń w odbiorze ale biorąc pod uwagę, że regulacja PWM działa na tranzystor w torze w.cz. , sygnał PWM jest filtrowany układem RC a impedancja  bramki G2 jest duża to może nie ma się czego bać?.

Gdybyście kiedyś przeszli na inny procesor ESP32 S3 to polecam do regulacji wzmocnienia właśnie użycie portu D/A jeśli będzie dostępny.

[Obrazek: http://lx-net.pl/img/joker_gc03.jpg]

Jeśli obecnie nie ma do dyspozycji już wolnego pin-u na funkcję PWM, to może wystarczyłby dzielnik sterowany wprost z PCF8574 bez dodatkowego dekodera oraz bez kluczy tranzystorowych? I tu też trzeba dobrać kilka rezystorów więc zasada regulacji zostanie bez zmian przy istotnym uproszczeniu układu. 

l.j.
Cytuj
#57
Kwestia telegrafii w Jokerze.
Postaram się odpowiedzieć na pytania dotyczące telegrafii, jako że ja czuję się odpowiedzialny za tą część projektu. Nie jestem w telegrafii "zawodowcem", ale od ponad 40 lat pracuję na telegrafii i nie mogło być tak, by Joker był transceiverem tylko dla "fonistów".
Co do tworzenia sygnału telegraficznego, to rozważane były dwa podejścia. Klasycznie, czyli kluczowanie znaków telegraficznych w stopniu nadajnika oraz drugie wytwarzanie sygnału telegraficznego przez generowanie go bezpośrednio za pomocą pracy Si5351.
Jeden i drugi sposób ma swoje wady i zalety. Jednym z ograniczeń projektu było to, że moduł ESP32-S3 w wersji z wyświetlaczem ma bardzo mało pinów wyjściowych. Brakowało nam kolejnego na sygnał potrzebny do kluczowania tranzystora w torze nadajnika. Nie był to jednak powód dalszych decyzji.
Chciałem, by Joker posiadał wszystkie możliwe funkcje do obsługi telegrafii, bez konieczności podłączania do niego zewnętrznego keyera. To determinowało podejście do koncepcji CW i programu.
Na niniejszym forum była kiedyś dyskusja dotycząca wytwarzania sygnału telegraficznego, w tym sposobu kluczowania który nie powoduje, że znak zaczyna się w "szczycie sinusoidy nośnej" gdyż "ucięcie" sinusoidy generuje dużą ilości harmonicznych. Inny problem to "miękkie" kluczowanie z narastającym zboczem i opadającym zboczem znaków, ale przesadzenie z tym daje w efekcie rozmycie sygnałów, zwłaszcza szybkiej telegrafii. Nie będę poddawał analizie tych i innych przypadków, zaznaczając tylko że przy projekcie Joker brałem to wszystko pod uwagę. 
Ostatecznie stanęło na kluczowaniu generatora Si5351 i wytwarzanie CW nośnej na częstotliwości pracy bez kluczowania w dalszych stopniach. Z Si5351 nie wychodzi czysta sinusoida, ale "kluczowany" sygnał z SI5351 podawany jest na BPF, którego zadaniem jest odfiltrowanie wszystkich harmonicznych (po BPF sinusoida) , a następnie podanie sygnału do PA. PA będzie pracować jak w trybie SSB czyli liniowo, co ma minimalnie wpływać na kształt sygnałów.
W efekcie otrzymujemy całkiem poprawny sygnał telegraficzny, może nieco twardy ale bardzo dobrze odbierany pod względem odsłuchu.
Poniżej zdjęcie obrazu sygnału - nadawanych kresek z Jokera na ekranie FTDX10.
   

Kolejne kwestie, half duplex czy też będzie to full duplex. 
Joker jest w wersji half duplex - albo nadajemy albo odbieramy. Wynika to z podejścia do całości układu - przełączanie na przekaźnikach. To w zasadzie wyeliminowało full-duplex.
Dla full duplex trzeba by zmienić koncepcję układu, zaprojektować transceiver pod telegrafię, przykładowo przełączanie na diodach pin. 
Pod kątem CW projektowanych było wiele znanych konstrukcji, za założenia jako telegraficzne, a SBB stanowił dodatek. Tu zrobiliśmy zrównoważenie wysiłku projektowego.
Ze względu na przełączanie sygnałów w różnych miejscach na przekaźnikach, dla telegrafii została wprowadzona funkcja opóźnienia nadawania (sygnał out) w stosunku do kluczowania i podsłuchu własnego nadawania - bufor kołowy. Chodzi o milisekundy by dać czas na przełączenie się wszystkich przekaźników (później również w zewnętrznym PA) bez utraty znaku. Czyli przykładowo zaczynamy nadawanie od kropki i ta kropa ma być wyemitowana gdy wszystkie bloki tx są już gotowe do pracy. 
Half duplex wymaga czasu podtrzymania tx - jest to zrealizowane programowo i czas ustawiany w menu, ustawienie jest aktywne jeśli mamy wybraną emisję CW.
Podczas nadawania telegrafią enkoder ma przypisaną funkcję zmiany prędkości kluczowania. Podczas kluczowania możemy dostosowywać tempo do potrzeb bez wchodzenia do żadnego menu. Dla telegrafii są zarezerwowane bloki pamięci własnych tekstów oraz komórka pamięci umożliwiająca pracę w zawodach - automatyczna zmiana numeru łączności, własny dodatkowy element raportu, szybka korekcja tych danych np. powtórzenie numeru łączności...

W kwestii telegrafii najwięcej czasu poświęciliśmy poprawnej pracy odbiornika, w szczególności opracowania wąskich filtrów (nie dzwoniących) i automatycznej regulacji wzmocnienia. Dla telegrafii ARW nie jest prostą sprawą w obróbce cyfrowej.
Cytuj
#58
Duży ekran kiedyś się pojawi w tym projekcie, ale tak jak wspominałem, najpierw chciałbym dokończyć małego Jokera.
Pomysł na taki właśnie sposób sterowania modułem przedwzmacniacza z tłumikiem był głównie faworyzowany przeze mnie.
Bardzo podoba mi się powtarzalność logiki modułów, wystarczy oswoić się z jednym modułem, żeby inne wydawały się łatwe.
Układ 4028 służy do blokady jedynek na wyjściach PCF przy uruchamianiu, pisałem o tym, żeby nie klepały przekaźniki,
nie zwierały się drabinki rezystorów, na krótko po włączeniu zasilania. Pomiędzy modułami biegnie zawsze jednakowa,
równoległa magistrala, która przekazuje zasilanie i komunikację i2c, można ją łączyć w dowolnej kolejności.
Nad taką wiązką łatwo jest zapanować, zaplanować jej trasę w obudowie, ekranować, pomijać lub dokładać moduły.
W programie priorytetem jest cisza na linii i2c, rozkazy są wysyłane tylko wtedy kiedy jest to konieczne, nie ma potrzeby
ciągłego generowania przebiegów PWM i doprowadzania ich od kontrolera do innych płytek zwiększając ilość przewodów.
Ze względu na to, że nie jest to mój kolejny projekt, a zaledwie pierwszy i jedyny, wolę takie rozwiązania,
które z mojego punktu widzenia wydają się maksymalnie proste w budowie, diagnostyce lub modyfikacji.
Tak, zgadzam się, że można było zrobić wszystko inaczej, na pewno trochę lepiej, ale dla mnie ponad wszystko
ważniejszym było ścisłe rozumienie funkcji wszystkich bloków. Moim zdaniem Joker jest dość klarowny, przewidywalny,
łatwy do analizy, nie wymaga nadzwyczajnych umiejętności i sprzętu przy jego budowie, nie trzeba dobierać części,
wystarczy odwinąć sprawny element z rolki lub wyjąć z pudełka i przylutować. Ostatecznie bez niezbyt wyszukanych
rozwiązań technicznych udało się jednak uzyskać całkiem przyzwoite jak do tej pory działanie całego układu.
Myślę, że nie będziemy już zmieniać szczegółów sterowania, mamy teraz do rozwiązania jeszcze tor nadawczy.
Cytuj
#59
Na przełomie stycznia - lutego (2026) przeprowadziłem ponad 20 łączności testowych na SDR Joker emisją SSB w pasmach 80-40-20-10m. Wszystkie QSO z mocą 5-10 W maksymalnie.
Przygotowałem film z fragmentem QSO z Jackiem DL1NCH w paśmie 20m. Pracowałem z mocą 5W out.

Poniżej link do filmu.
Test toru nadajnika SSB Joker

[Wideo: https://youtu.be/4KxY80EaY44]
Cytuj
#60
Witam miłośników Jokera.Też stałem się jednym z nich.
To moje wypociny.
   
Andrzej
Cytuj


Skocz do:


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