RE: Joker SDR - dyskusja do wątku
Joker, który kiedyś nie był żadnym projektem, a jedynie możliwie prostym narzędziem do nauki, wystartował ze skromnej wielkości ekranem.
Priorytetem były minimalizm, cena i dostępność w razie uszkodzenia podczas testów. Teraz zgadzam się, że wyświetlacz mógłby być tu większy.
Mamy z Piotrem plany na przejście do dużego ekranu, ale to będzie daleka przyszłość. Najpierw chcemy uruchomić wszystkie moduły zewnętrzne.
Dopiero kiedy one będą już gotowe, sprawdzone i działające, wtedy przyjdzie czas na zmianę płytki cyfrowej z większym wyświetlaczem.
Jak wspomniałem w wątku opisowym, próbowałem nie opierać się na istniejących rozwiązaniach, można powiedzieć, że wyważałem otwarte drzwi.
W zamian otrzymałem dużo frajdy i tyle samo bagażu doświadczeń, nauczyłem się, że tutaj nie ma darmowych obiadów, zawsze jest coś za coś.
Przykładowo jednym z ostatnich zmagań była funkcja generująca ton odsłuchu dla telegrafii. Mając na pokładzie zaawansowane przetworniki,
chciałem wykorzystać moduł DAC, tworząc bufor próbek dla przebiegu sinusoidy o dowolnej częstotliwości i wysyłać taki sygnał na słuchawki.
Nie wydaje się to być skomplikowanym, a jednak poświęciłem temu tydzień czasu. Pracując z sygnałem w buforze I2S, mamy określoną ilość próbek.
Ze względu na ograniczoną albo raczej oczekiwaną prędkość wykonywania operacji, wartości próbek powinny być wyliczone przed rozpoczęciem
procesu przesyłania ich do DAC, zostawiając trochę zasobów na wygładzanie początku i końca tonu, sterowanie CLK2, wizualizację na ekranie,
pracę bufora opóźniającego dla nadajnika, przeliczanie czasu kropek i kresek itd. Bufor próbek musi więc mieć tak dobrane wartości,
żeby pierwsza próbka pokrywała się z ostatnią, zapewniając ciągłość sygnału, inaczej dźwięk będzie zawierał nieprzyjemne artefakty.
Okazuje się, że nie da się uzyskać dowolnie wybranej częstotliwości w określonej liczbie próbek, tak by koniec był równy początkowi.
Inną rzeczą jest z kolei sama ilość próbek czyli rozmiar bufora. Więcej próbek daje bardziej szczegółowe widomo sygnału, ale za to
potrzebna jest większa ilość czasu na jego przetworzenie, zaś krótki czas obróbki z małym blokiem danych traci dokładność widma.
Z czasem opiszę więcej szczegółów z procesu jaki dokonuje się pomiędzy wejściem ADC i wyjściem DAC, zrealizowany w projekcie Joker.
Nie mam żadnych linków z informacjami, to co było ważne z punktu widzenia radiowego tłumaczył mi Piotr, a rozwiązania programowe
ze względu na użyty mikrokotroler pozyskiwałem ze strony espressif skupiając się na wyjaśnieniach i przykładach użycia I2S.
Dziś chciałbym jeszcze w temacie opisowym dodać kilka informacji o funkcjach I2C, które zostały wczoraj dopisane do kodu.
(Ten post był ostatnio modyfikowany: Dzisiaj 17:57 przez SP9DK.)
|