Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Generator funkcyjny z układem DDS

Kubald 30 Mar 2013 21:05 10617 0
  • Generator funkcyjny z układem DDS

    Po zakupie na aukcji internetowej modułu z układem DDS typu AD9850, autor zdecydował się na stworzenie własnego generatora funkcyjnego wykorzystującego bezpośrednią syntezę cyfrową, który mógłby zastąpić generator pracujący do tej pory w warsztacie autora.

    Moduły z układami AD9850 można czasami kupić bardzo tanio na aukcjach internetowych. Niektórzy zastanawiają się, czy do ich budowy nie są wykorzystywane podróbki oryginalnych układów albo egzemplarze nie spełniające wymagań jakościowych dla końcowego produktu. Jednak najbardziej prawdopodobne jest, że moduły te – często sprzedawane poniżej ceny nowego układu – budowane są w oparciu o układy, których parametry nie spełniają norm ujętych w kartach katalogowych, ale ciągle mogą okazać się przydatne.

    Moduł z układem AD9850 kupiony przez autora pracował bez zakłóceń i pozwalał na generowanie maksymalnej, określonej częstotliwości (wynoszącej CLK/2 czyli 62,5 MHz). Amplituda sygnału wyjściowego jest silnie tłumiona dla częstotliwości powyżej 30 MHz, ale jest to raczej spowodowane zachowaniem użytego filtru dolnoprzepustowego niż ograniczeniami układu AD9850 samymi w sobie. Także projekt płytek drukowanych wzmiankowanych modułów nie jest dostosowany do pracy z wysokimi częstotliwościami sygnałów wyjściowych. Ale dla zastosowań hobbystycznych, za pomocą takiego modułu można osiągnąć całkiem przyzwoity zakres częstotliwości generowanych przebiegów i dobrą jakość, jeśli chodzi o kształt sygnału.

    Schematy modułów z układami AD9850 są łatwe do znalezienia w Internecie – przykładowy schemat (zaczerpnięty z niniejszej strony) zamieszczono poniżej:
    Generator funkcyjny z układem DDS

    Sterowanie układem AD9850 za pomocą mikroprocesora jest całkiem proste. Najłatwiejszym rozwiązaniem jest przesyłanie do układu, za pomocą interfejsu szeregowego, danych pozwalających ustalić częstotliwość generowanego sygnału. W rozwiązaniu zaprezentowanym przez autora układem generatora DDS steruje procesor ATMega328P (Arduino). Jak można się przekonać na przykładzie kodu sterującego układem AD9850, do zrealizowania komunikacji szeregowej potrzebne są cztery wyprowadzenia mikrokontrolera.

    Kod: c
    Zaloguj się, aby zobaczyć kod






    Funkcja AD9850Reset odpowiada za przywrócenie zmiennej wskaźnikowej wartości W0. Funkcja ta zwykle musi być wywołana jedynie po podłączeniu zasilania, w czasie inicjalizacji programu mikrokontrolera.

    Z kolei funkcja AD9850Update odpowiada za przesłanie danych, wyrażających wartość generowanej częstotliwości w hercach, do układu. Pięć bajtów kontrolnych (32-bitowe słowo reprezentujące wartość częstotliwości plus dodatkowo 8-bitowe słowo odpowiadające za ustawienie parametrów pracy układu i za kontrolę fazy) jest po kolei przekazywanych do układu AD9850 dzięki funkcji shiftOut. Ponieważ autor nie uwzględnił możliwości kontroli fazy sygnału generowanego za pomocą układu DDS, ostatni bajt wysyłanych danych ma stałą wartość, wynosząca zawsze zero i z góry ustaloną w programie dla procesora.

    Autor udostępnia pełny kod źródłowy sterujący modułem z układem DDS.

    Układ AD9850 pozwala na regulację częstotliwości w krokach co 0,0291 Hz (przy zastosowaniu generującego sygnał zegarowy stanowiący odniesienie oscylatora kwarcowego 125 MHz), co pozwala generować częstotliwości o wartościach wyrażanych już w milihercach.

    Aby ułatwić pracę z generatorem, autor poczynił następujące założenia dotyczące jego budowy i użytkowania:
    - wartość generowanej częstotliwości powinna być wprowadzana za pomocą klawiatury numerycznej,
    - użytkownik powinien mieć możliwość zapisania i późniejszego przywołania ustawionej częstotliwości,
    - szerokość impulsów na wyjściu PWM powinna być regulowana,
    - możliwy powinien być wybór jednostki wprowadzanej bądź wyświetlanej częstotliwości (mHz, Hz, MHz).
    Na podstawie tych założeń autor zbudował prototyp generatora z użyciem płytki stykowej:

    Generator funkcyjny z układem DDS

    Do poprawnej realizacji wszystkich opisanych powyżej funkcji konieczne jest wykorzystanie minimum 17 wyprowadzeń mikroprocesora – 4 do sterowania układem AD9850, 7 do realizacji obsługi klawiatury matrycowej 3x4 i 6 pinów do podłączenia wyświetlacza LCD 2x16 znaków. Sprawia to, że wolne pozostaje jedynie jedno wyprowadzenie mikroprocesora (technicznie rzecz biorąc, użyte mogą być też wyprowadzenia Tx i Rx odpowiadające za komunikację szeregową z procesorem, ale pociągałoby to za sobą konieczność używania zewnętrznego programatora dla mikroprocesora) ATMega328P. Oczywiście zastosowanie klawiatury i wyświetlacza z interfejsem szeregowym pozwoliłoby zminimalizować liczbę wykorzystanych wyprowadzeń. Do wolnego wyprowadzenia autor postanowił przyłączyć przycisk „Fn”.

    Sterowanie urządzeniem i przechodzenie między trybem pracy i ustalania częstotliwości realizowane jest za pomocą wzmiankowanego, dodatkowego przycisku oraz przycisków klawiatury, włącznie z klawiszami „*” i „#”. Podczas uruchomienia urządzenia, częstotliwość generowanego sygnału wynosi zawsze 1 kHz – zostało to ujęte w programie procesora. Aby ją zmienić, należy użyć klawisza „*” aktywującego tryb ustawiania częstotliwości. Wyświetlane jednostki mogą być zmieniane poprzez naciskanie przycisku „Fn” przy wciśniętym klawiszu „*”. Ponieważ klawiatury nie wyposażono w przycisk przecinka, dla częstotliwości mniejszych od 1 Hz należy wybrać tryb „mHz”. Po wprowadzeniu pożądanej częstotliwości, naciśnięcie klawisza „#” powoduje jej zapamiętanie.

    W pamięci EEPROM mikroprocesora może zostać zapisane 10 wartości częstotliwości, które później mogą łatwo i szybko zostać przywołane. Zapis dokonywany jest po jednoczesnym naciśnięciu przycisku „Fn” i klawisza numerycznego klawiatury w trybie pracy generatora. Ustalona częstotliwość zostanie wpisana do „komórki pamięci” o odpowiednim numerze, co jest sygnalizowane poprzez wyświetlenie cyfry z zakresu 0-9 na wyświetlaczu. Przywołanie zapamiętanej częstotliwości odbywa się poprzez naciśnięcie klawisza numerycznego w trybie pracy.

    Gotowe urządzenie zostało zmontowane na płytkach uniwersalnych. Zasilacz i płytka modułu układu AD9850 są ekranowane. Sygnały generowane przez układ AD9850 (przebieg sinusoidalny i prostokątny) wyprowadzone są na gniazda BNC. Potencjometr pozwalający regulować wypełnienie impulsów został wyprowadzony na płytę czołową.

    Generator funkcyjny z układem DDS Generator funkcyjny z układem DDS

    Sygnał sinusoidalny 10 MHz, generowany przez urządzenie, można zobaczyć na poniższym oscylogramie:

    Generator funkcyjny z układem DDS

    Jak wspomniano, ze względu na użyty filtr dolnoprzepustowy o częstotliwości granicznej ok. 30 MHz, powyżej tej wartości amplituda sygnału jest tłumiona – w razie potrzeb można więc dodać na wyjściu dodatkowy wzmacniacz.

    Na stronie źródłowej można znaleźć kod dla mikroprocesora, szczegóły dotyczące obsługi urządzenia i oscylogramy przykładowe, przedstawiające generowane sygnały.


    Fajne! Ranking DIY