nanoDDS z wyświetlaczem – instrukcja konfiguracji

W wyniku prac rozwojowych wyposażyłem nanoDDS w opcjonalny, prosty i tani, czterocyfrowy wyświetlacz LED. Zastosowałem w tym celu gotowy moduł oparty na kontrolerze TM1637. Moduł ten jest sterowany przy pomocy tylko dwóch przewodów (CLK i DIO), dzięki czemu możliwe było podłączenie wyświetlacza za pośrednictwem wbudowanego w nanoDDS złącza ISP, które normalnie służy do programowania procesora Atmega328. Pomimo, że dostępne w złączu ISP porty są już wykorzystywane do komunikacji z układem AD9833 (poprzez sprzętową magistralę SPI), udało się napisać oprogramowanie w taki sposób, że AD9833 i wyświetlacz pracują jednocześnie.

podłączenie wyświetlacza

Uwaga! Pobór prądu przez układ po dołączeniu wyświetlacza wzrasta z ok. 20mA do ok. 70mA. Z tego względu zalecam, aby w takim przypadku napięcie zasilające układ nie przekraczało 9V. Unikamy w ten sposób nadmiernego nagrzewania się stabilizatora napięcia na płytce nanoDDS, a przez to całej płytki, co mogłoby niekorzystnie wpłynąć na stabilność generatora.
W przypadku używania nanoDDS bez wyświetlacza można spokojnie zasilać układ napięciem wyższym (max. 15V).

IMG_1913
Dzięki zastosowaniu wyświetlacza zostały zrealizowane dwie nowe, istotne funkcjonalności:

można wbudować nanoDDS’a do urządzeń, które nie posiadają wyświetlacza (pomimo założenia konstrukcyjnego, że nanoDDS ma być przeznaczony do urządzeń posiadających już odczyt częstotliwości, podczas prac nad prototypem otrzymywałem sygnały, że niektórzy konstruktorzy chcieliby wykorzystać generator do nowo budowanych prostych transceiverów, w których wyświetlacz nie został przewidziany)

można skonfigurować nanoDDS’a bez konieczności użycia komputera – to ukłon w stronę tych konstruktorów, którzy nie mają możliwości zaprogramowania układu.

Aby wejść do trybu ustawień należy nacisnąć przycisk enkodera a następnie włączyć zasilanie nanoDDS’a.
Wyboru wartości danego menu dokonujemy poprzez obracanie pokrętłem enkodera, wybraną wartość zatwierdzamy naciskając przycisk enkodera.

1. „band” Wybór pasma
Zostanie wyświetlony przewijający się napis „band” informujący, że pierwszym ustawieniem jest wybór pasma.
bandNastępnie pojawi się napis:
b160gdzie liczba 160 oznacza pasmo amatorskie 160m.
Wyboru pasma dokonujemy poprzez obracanie pokrętłem enkodera. Wybór zatwierdzamy naciskając przycisk enkodera.

Po wybraniu pasma w nanoDDS  zostaną ustawione następujące parametry:
– początek pasma
– koniec pasma
– częstotliwość początkowa, czyli częstotliwość do której nanoDDS wraca po dłuższym naciśnięciu przycisku enkodera. Wartości tych częstotliwości zapisane są w oprogramowaniu.
band_tables
2.”IF MOdE” – sposób otrzymywania częstotliwości pośredniej
Zostanie wyświetlony przewijający się napis „IF MOdE” oznaczający, że należy wybrać sposób otrzymywania częstotliwości wyjściowej generatora.
if_modeDo wyboru są 3 ustawienia:
F+b,
F-b,
b-F, gdzie „F” to częstotliwość pośrednia radia, a „b” to częstotliwość wyświetlana na wyświetlaczu.
f+b
f-b
b-fPrzykład:
F = 10 MHz – częstotliwość pośrednia radia
b=3,7MHz – częstotliwość wyświetlana na wyświetlaczu
„IF MOdE” ustawiamy na „F-b” w wyniku czego nanoDDS będzie wytwarzał częstotliwość 6,3MHz

Należy pamiętać, że maksymalna częstotliwość wyjściowa nie może przekraczać 10MHz. Jeżeli ustawimy np. częstotliwość wyświetlaną z pasma 80m (3,7MHz), częstotliwość pośrednią 10MHz i „VFO MOdE” na sumowanie (F+b) to oczekiwana częstotliwość 13,7MHz leży poza zakresem i nie zostanie wygenerowana.

3.”IF” – częstotliwość pośrednia
Po zatwierdzeniu wyboru przyciskiem enkodera zostanie wyświetlony przewijający się napis „IF”
ifa następnie symbol
mhzoznaczający, że ustawiamy wartość megaherców częstotliwości pośredniej. Wartość zmienia się w zakresie 0-30. Wybraną wartość zatwierdzamy przyciskiem enkodera po czym zostanie wyświetlony symbol
khzoznaczający, że ustawiamy wartość kiloherców częstotliwości pośredniej. Wartość zmienia się w zakresie 0-999. Wybraną wartość zatwierdzamy przyciskiem enkodera po czym zostanie wyświetlony symbol
hzoznaczający, że ustawiamy wartość herców częstotliwości pośredniej. Wartość zmienia się w zakresie 0-999.

Taki sposób wprowadzania liczby oznaczającej częstotliwość pośrednią wynika z ograniczenia ilości znaków wyświetlacza.
formula_IF

4.”VFO corr” – korekta częstotliwości wyjściowej
Po zatwierdzeniu wyboru przyciskiem enkodera zostanie wyświetlony napis „VFO corr” oznaczający korektę częstotliwości wyjściowej generatora.
vfo_corra następnie liczba oznaczająca wartość korekty.
-1Możemy ustawić pokrętłem enkodera dowolną wartość z zakresu -999 do 999 Hz. Wartość ta będzie dodana do częstotliwości wyjściowej.
Po zatwierdzeniu wartości przyciskiem enkodera zostanie wyświetlony napis „End” a następnie częstotliwość początkowa wybranego w pierwszym kroku pasma. nanoDDS jest gotowy do pracy!
end

 

Reklama

nanoDDS

Na rynku istnieje bardzo wiele projektów generatorów opartych na chipach DDS, jednak są to zwykle skomplikowane konstrukcje.
Ja potrzebowałem czegoś innego. Potrzebowałem prosty, uniwersalny i tani generator, który będzie można użyć w amatorskich konstrukcjach transceiverów jak Antek, Bartek, Taurus, czy wiele innych.

IMG_9422
Przede wszystkim chciałem go zastosować do projektów, które powstały wcześniej, ale ze względu na niestabilne VFO stały i się kurzyły.
Dlatego opracowałem moduł nanoDDS który jest uniwersalnym generatorem VFO o następujących cechach:

– miniaturowe wymiary (cały moduł ma wymiary ok. 3x3cm) dzięki czemu zmieści się do większości urządzeń

– brak wyświetlacza, ponieważ wiele istniejących urządzeń posiada już zamontowany odczyt częstotliwości

– ultra-prosty montaż mechaniczny – wystarczy przykręcić enkoder do płyty czołowej za pomocą jednej nakrętki

– prosta obsługa za pomocą enkodera obrotowego z przyciskiem

– dioda LED sygnalizująca aktualny krok

– dwa kroki przestrajania (500Hz i 50Hz)

– szeroki zakres napięć zasilających (5-15V)

– niewielki pobór prądu (ok. 20mA)

– częstotliwość generatora do 10MHz, co jest wystarczające do większości transceiverów QRP

– kod źródłowy napisany pod Arduino, przez co można go ławo zmodyfikować

– złącze ISP do programowania

IMG_9461

nanoDDS oparty jest na generatorze Analog Devices AD9833. Jest to układ bezpośredniej syntezy częstotliwości taktowany z generatora zegarowego 24MHz, co według producenta powinno umożliwić generowanie przebiegów do ok. 12MHz. W praktyce do 10MHz sygnał jest prawidłowy. Sterowanie syntezerem AD9833 realizowane jest za pośrednictwem magistrali SPI poprzez procesor ATMEGA328P.

Komunikacja z enkoderem zrealizowana jest za pomocą przerwań, dzięki czemu reakcja na przestrajanie jest pewna, nie występuje efekt gubienia kroków, nawet przy zastosowaniu prostego enkodera mechanicznego.

Na wyjściu generatora został zastosowany filtr dolnoprzepustowy zestrojony na częstotliwość ok. 10MHz. Układ AD9833 wytwarza przebieg w sposób cyfrowy, dlatego w jego widmie znajduje się wiele niepożądanych prążków. Aby uzyskać czystą sinusoidę, w układach tego typu konieczne jest stosowanie filtrów dolnoprzepustowych, które mają za zadanie odfiltrować wszelkie harmoniczne i inne prążki powyżej częstotliwości granicznej.

IMG_9419

W układzie zastosowałem prosty filtr dolnoprzepustowy wykonany na dławikach SMD. Filtr jest zestrojony na ok. 10MHz. Jednak ze względu min. na parametry dławików SMD takie rozwiązanie może nie być wystarczające w każdym przypadku. Np. jeśli generator miałby być używany na częstotliwości 3,5MHz (np. w TRX homodynowym na pasmo 80m), to druga i trzecia harmoniczna „przedostaną się” przez wbudowany filtr. W takim przypadku warto zastosować dodatkowy filtr dolnoprzepustowy zestrojony nieco powyżej 3,5MHz. Oczywiście w wielu zastosowaniach sygnał uzyskiwany wprost z generatora będzie miał czystość widmową wystarczającą do zastosowania go jako VFO, jednak warto pamiętać o możliwości wystąpienia niepożądanych prążków w widmie sygnału.

Obsługa nanoDDS’a jest bardzo prosta. Po włączeniu zasilania generator wytwarza częstotliwość, która była ostatnio używana. Obracanie enkoderem skutkuje zmianą częstotliwości z początkowym krokiem 500Hz. Krok ten jest bardzo wygodny przy dostrajaniu się do stacji pracujących emisją SSB, gdyż większość stacji amatorskich pracuje właśnie z rastrem 1kHz lub 0,5kHz. Po naciśnięciu gałki enkodera krok przełączany jest na 50Hz, co umożliwia dokładniejsze dostrojenie. Ponowne naciśnięcie przycisku powoduje powrót do kroku 500Hz oraz zaokrąglenie generowanej częstotliwości do 500Hz, żeby przestrajanie było zgodne z rastrem. Np. jeśli używając kroku 50Hz ustawimy częstotliwość 3.705.150 po przełączeniu kroku na 500Hz częstotliwość zostanie zaokrąglona do wartości 3.705.000. Dalsze przestrajanie odbywa się z krokiem 500Hz.

Dłuższe przytrzymanie naciśniętej gałki enkodera powoduje powrót do częstotliwości początkowej.

Parametry pracy generatora ustawiamy programowo w kodzie programu napisanego pod Arduino. Możemy zdefiniować: częstotliwość początku i końca pasma, częstotliwość początkową, krok początkowy oraz uwzględnić częstotliwość pośredniej częstotliwości odbiornika i ewentualną korektę częstotliwości

Po skompilowaniu kodu programu należy go wgrać do generatora za pomocą programatora ISP, który jest zapewne w posiadaniu wielu konstruktorów. Alternatywnie można użyć płytki Arduino jako programatora.

Montaż w transceiverze jest uproszczony do minimum i polega na przykręceniu enkodera do płyty czołowej, podłączeniu zasilania (5-15V) oraz sygnału wyjściowego z generatora.

W wyniku prac rozwojowych dodałem możliwość podłączenia wyświetlacza LED do układu. Więcej na ten temat w wątku nanoDDS z wyświetlaczem

Oprogramowanie wewnętrzne nanoDDS można pobrać tutaj nanodds_v19_display.zip

nanoDDS z wyświetlaczem

Okazuje się, że złącze ISP, które normalnie służy do podłączenia programatora, można również użyć do podłączenia wyświetlacza. Użyłem gotowego modułu wyświetlacza LED na sterowniku TM1637. Teraz nanoDDS można użyć również do modernizacji TRXów, które nie posiadają cyfrowego odczytu częstotliwości. Co prawda są tylko 4 cyfry, ale za to wyświetlacz jest bardzo mały (24x42mm).

Wkrótce zamieszczę więcej informacji o nanoDDS wraz z oprogramowaniem.

IMG_1913