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_v12.zip

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s