(11-05-2022 22:03)SP6FRE napisał(a): [...]
Liczyłem na nieco większy odzew w tym temacie bo nie mam kompletnie doświadczenia jak to zrobić, mam jedynie pomysł i kilka zachęcających prób więc ponawiam zaproszenie do podjęcia tematu, przedstawienia alternatyw lub szczegółowych rozwiązań pokazanej koncepcji. W szczególności interesuje mnie kwestia izolacji wzajemnej wejść antenowych wodospadu i zewnętrznego odbiornika oraz sprawa przemiany DC i wstępnego wzmacniacza m.cz przed detektorem.
Witaj Leszku,
dosyć trudne zadanie sobie postawiłeś do wykonania używając takiego procesora.
Pytałeś jak to robią inni - od wielu lat w odbiornikach pokazujących widmo jakiegoś pasma robi się to niejako "przy okazji" ponieważ tego typu odbiorniki mają cyfrową demodulację z zebranych danych IQ z szerokością od 48kHz do 192kHz. Sama demodulacja opiera się na obróbce fragmentu tego zakresu z uzyciem filtrów Hilberta, decymacji i arytmetyki, troszkę na temat zasady działania tego o czym właśnie napisałem możesz znaleźć
tutaj. Widmo i wodospad liczone są za pomocą FFT i z dodatkową obróbką wyświetlane.
Co do samego procesora, ostatnimi laty większość amatorskich projektów opiera się o procesor ARM z rdzeniem Cortex M4/M7. Po pierwsze to procesor 32bit z jednostką zmienno przecinkową a po drugie ma DMA. Obsługa wyświetlacza w sposób płynny jest możliwa dzięki właśnie DMA - procesor ma w tedy czas na inne "zajęcia".
Dodatkowo utrudniłeś sobie życie przez zastosowanie wyświetlacza z kontrolerem który nie ma pionowego scroll'a. W przypadku tej ostatniej funkcji można w prosty sposób odciążyć interface przez wysyłanie tylko najnowszej linijki wodospadu a pozostałe po prostu logicznie przesunąć w pamięci LCD. Z AVRem będzie trudno osiągnąć namiastkę płynności nawet używając assemblera.
Co do izolacji samego odbiornika - będzie problem z przeciekiem LO do wejścia antenowego szczególnie na wyższych pasmach. Tego problemu nie ma nowsza generacja odbiorników pracująca w oparciu o bezpośrednie próbkowanie (ADC+FPGA), w tym przypadku można umieszczać dowolną liczbę odbiorników pracujących na tym samym wejściu. Tak ma to zrobione np. Icom 7300 i podobne.
Tak też jest w moim SParkle (a docelowo drugi odbiornik będzie przemiatał pozostała część pasma).
Tutaj masz przykład jak to działa w odbiorniku DDC na FPGA z pasmem ~60MHz. Na początku filmu widać jeden kanał pracujący jako klasyczny odbiornik a drugi robi skanowanie całego dostępnego pasma na wejściu ADC. Jako ciekawostkę podam że w HiQSDRmini mamy 4 takie odbiorniki w FPGA i wszystko chodzi pięknie (inna sprawa ile ich rzeczywiście potrzeba).
A tutaj jak działa w SParkle/UHSDR widmo z wodospadem. LCD ma rozdzielczość 480x320 choć UHSDR obsługuje także 800x480.
Tak nawiasem mówiąc najłatwiej byłoby wyjąć odpowiedni fragment kodu z UHSDR i wykonać PCB z STM32F405 lub podobnym. Kod jest otwarty wszystko jest na Githubie.