background image

 
 

 
 
 
 

Generator DDS z regulacją 

amplitudy 

 

 

projekt własny 

 
 
 

 

 
 
 

Cezary Klimasz 

2008 

background image

 
 

 

Celem realizowanego projektu było zbudowanie generatora opartego o cyfrową syntezę tzw. 

DDS.  Założenia  zakładały  możliwość  generowania  sygnałów:  sinusoidalnego,  prostokątnego 
oraz  trójkątnego.  Zanim  zdefiniowano  końcowe  parametry  oraz  dobrano  elementy 
przestudiowano  literaturę  w  odniesieniu  do  cyfrowego  generowania  sygnałów.  Tak  powstał 
m.in.  generator  DDS  z  drabinką  R-2R.  Jednakże  generator  taki  umożliwiał  jedynie 
generowanie  próbek  z  rozdzielczością  8  bitów  a  także  cechował  go  duży  współczynnik 
zniekształceń w sygnale wyjściowym. Dlatego też projekt  ewoluował.  Dzięki pojawiającym się 
coraz  częściej  artykułom  w  prasie  elektronicznej  poświęconym  generatorom  DDS, 
prezentowany  projekt  nabrał  takiego  kształtu  jaki  w  tym  dokumencie  jest  prezentowany. 
Głównym ograniczeniem, którym kierowano się podczas projektowania generatora była cena i 
dostępność  elementów  w  Polsce.  M.in.  dlatego  upadł  pomysł  zastosowania  wzmacniacza 
mnożącego  umożliwiającego  regulację  zarówno  amplitudy  jak  i  offsetu  (cyfrowa  regulacja),  a 
skupiono  się  wyłącznie  na  regulacji  amplitudy  (wzmacniacz  z  możliwością  cyfrowej  reg. 
amplitudy  AD8321).  Trzeba  nadmienić,  że  elementy  użyte  w  projekcie  nie  były  elementami 
ogólnodostępnymi.  Zdobycie  układu  AD9833  (gen.  sygnałów)  wiązało  się  z  poszukiwaniami 
na  aukcjach  internetowych,  zaś  wzmacniacza  AD8321  na  zapytaniu  do  firmy  Analog  Devices  
w  ramach  oferowanego  wsparcia  „sample”.  W  trakcie  wszystkich  ewolucji  projekt  finalny 
nabrał wysokiego podobieństwa do pracy magisterskiej z Politechniki Lubelskiej

1

.  

Prezentowany generator powstawał około kilku miesięcy głównie ze względu na równoległe 

realizowanie  innych  projektów  a  także  ze  względu  na  oczekiwanie  na  zamówione  elementy 
oraz  czasochłonność  wykonania  obwodów  drukowanych  sposobami  domowymi  (minimalizacja 
kosztów projektu).  

Należy  zaznaczyć,  że  projekt  jest  projektem  rozwojowym.  Obecnie  analizowana  jest 

możliwość  dodania  modulacji  AM  oraz  FM,  a  także  zwiększenia  zakresu  częstotliwościowego 
generatora. 

 
 

 

Generator finalnie osiągnął podane niżej parametry: 

− 

generowanie sygnałów: sinus, trójkąt, prostokąt, 

− 

zakres generowanych częstotliwości od 1Hz do 1MHz z krokiem 1Hz, 

− 

regulacja amplitudy od -26dB do 19dB, 

− 

pobór mocy ok. 380mA, 

− 

sterowanie za pomocą dwóch impulsometrów z przyciskiem, 

− 

element wskaźnikowy – wyświetlacz LCD 2x16, 

− 

mikroprocesor sterujący ATmega16/ATmega32. 

 

Projekt  był  projektem  testowym,  nie  starano  się  uzyskać  jak  najwyższych  wzmocnień  czy 

częstotliwości.  Związane  było  to  głównie  z  trudnościami  w  dostępie  do  sprzętu  pomiarowego 
jakimi  są  oscyloskopy  z  możliwością  pomiaru  zniekształceń  sygnału.  Istniejący  generator 
posiada  programową  możliwość  rozszerzenia  zakresu  częstotliwości,  ale  przy  rosnących 
zniekształceniach  sygnałów.  Maksymalna  częstotliwość  1MHz  pozwala  na  uzyskanie  niemal 
niezniekształconych  sygnałów  wyjściowych.  Prezentowana  dokumentacja  niestety  jest  uboga 
pod  względem  szczegółowych  parametrów,  jak  już  wcześniej  wspomniano  z  powodu  braku 
dostępu do nowoczesnego sprzętu laboratoryjnego. 

 

                                                 

1

 Więcej na stronie

http://elektron.pol.lublin.pl/users/elekp/prace_dypl/Chmiel/index.htm

 

background image

 
 

 

Generator  oparto  o  cyfrowy  generator  AD9833  oraz  cyfrowy  wzmacniacz  AD8321.  Nad 

całością czuwa mikrokontroler ATmega16. Poniżej znajduje się schemat urządzenia podzielony 
na bloki funkcjonalne. 

 

Blok mikrokontrolera 

 

Jak  widać  mikrokontroler  ATmega16  (obudowa  TQFP)  taktowany  jest  z  częstotliwością 

8MHz.  Port  B  oprócz  funkcji  komunikacji/programowania  SPI  pełni  również  funkcję 
wskaźnikową  –  PB0  oraz  PB1  to  wyjścia  dla  diod  LED.  Port  D  został  niewykorzystany.  Po 
przeanalizowaniu możliwości zastosowania komunikacji z komputerem wydało to się bezcelowe 
i  nie  zostało  zrealizowane.  Port  C  obsługuje  wyświetlacz  LCD  ze  standardowym  sterownikiem 
HD44780,  zaś  port  A  odpowiada  w  całości  za  obsługę  przycisków  oraz  cyfrowych  enkoderów 
firmy ALPS. 

 

Blok generatora kwarcowego 

 

Zastosowany  generator  to  ECS-100X  generujący  sygnał  zegarowy  o  częstotliwości 

25.175MHz i potrzebny jest dla generatora sygnałów AD9833. 
 
 
 

background image

 
 

 
Blok generatora sygnałów 

 

Jak widać na schemacie zastosowano zworki mające na celu pomóc w uruchamianiu całości. 

Układ  AD9833  komunikuje  się  z  otoczeniem  za  pomocą  trzech  linii  interfejsu  SPI.  Wejście 
MCLK to wejście dla generatora kwarcowego. 

 

Blok programowalnego wzmacniacza 

 

 

 

Sygnał  z  mikrokontrolera  poprzez  SPI  trafia  do  układu  generatora AD9833  a  następnie  do 

wzmacniacza  AD8321.  Wzmacniacz  ten  również  jest  sterowany  poprzez  SPI  przez 
mikrokontroler  (ustawianie  wzmocnienia  z  zakresu  -26dB  do  26dB).  Należy  zaznaczyć  iż 
wzmacniacz ten zawiera szerokie pole wzmocnienia. Zasilanie AD8321 to 9V. AD_OUT oznacza 
wyjście z wzmacniacza to ostatniego bloku formowania sygnału. 

 

Blok wyjściowy 

 

background image

 
 

Niestety  blok  ten  jest  bardzo  ubogi  i  głównym  jego  celem  jest  zapewnienie  wyjściowej 

rezystancji  50Ω.  W  przyszłości  planuje  się  wprowadzenie  tutaj  wtórnika  emiterowego 
zabezpieczającego cały układ. 

 

Blok zasilania 

 

Blok zasilania ma za zadanie dostarczać napięcia: +5V i +9V. 
 

 

Poniżej prezentowana jest zaprojektowana płytka drukowana dla schematu 
 

 

 

Wymiary  płytki  to  84x67mm.  Płytka  została  zaprojektowana  jako  dwustronna,  z 

przelotkami, zalana polygonem podłączonym do masy. Maksymalna ilość elementów otrzymała 
obudowy do montażu powierzchniowego.  

Płytka z generatorem AD9833 została wykonana osobno. Podziękowania w tym miejscu dla 

Mirka Hałata

, który zaprojektował i dostarczył płytkę wraz z wlutowanym układem AD9833. 

Pierwszy wykonany generator wymagał pewnych zmian w schemacie oraz na płytce PCB. Po 

uwzględnieniu  tych  zmian  generator  działa  bez  zarzutów  i  jest  oparty  o  schemat 
zaprezentowany powyżej. 

 
UWAGA:  Generator  pobiera  około  300mA,  dlatego  należy  zaopatrzyć  się  w  odpowiednie 

zasilanie oraz zamontować radiator na układzie AD8321. 

 

Oprogramowanie  stworzono  w  języku  ANSI  C  w  środowisku  WinAVR.  Kluczowa  jest 

obsługa układu AD9833, która wymagała przestudiowania dokumentacji układu. Jeśli chodzi o 
układ AD8321 to jego sterowanie za pomocą SPI jest bardzo proste. Poniżej prezentowane są 
funkcje obsługi układu generatora. 

 

background image

 
 

 

[1] 

 

 
Pierwszy fragment kodu zawiera inicjalizację komunikacji SPI pomiędzy mikrokontrolerem a 

układami Analog Devices. Należy pamiętać, że najpierw trzeba ustawić port B a dopiero potem 
inicjalizować SPI. 

 

[2] 

 

 
Procedura w zależności od układu do którego ma wysłać dane realizuje to w różny sposób. 

Układ AD9833 potrzebuje ramki 16 bitowej zaś AD8321 8 bitowej.  

 
 

[3] 

 

 

Powyżej widoczna funkcja mająca na celu ustawienie zadanej częstotliwości generowanego 

sygnału. 

 

background image

 
 

 

[4] 

 

 
Widoczne  powyżej  są  dwie  funkcje  odpowiedzialne  za  ustawienie  wzmocnienia  oraz 

ustawienie rodzaju generowanego sygnału. W funkcji set_gain wartość wysyłana przez SPI jest 
liczona według zależności podanych  w dokumentacji układu AD8321.  

 

[5] 

 

 

Funkcja  powyżej  ma  na  celu  wyzerować  generator  AD9833  i  przygotować  do  wykonania 

jakiejś operacji. 

 
Na  podstawie  zaprezentowanych  funkcji  można  bardzo  prosto  stworzyć  kompletne 

oprogramowanie  dla  generatora  DDS  i  takie  też  stworzono,  ale  jego  kod  źródłowy  nie  będzie 
publikowany. 

 

Zaprojektowany generator w wersji prototypowej posiada tylko dwa pokrętła umożliwiające 

odpowiednie  ustawianie  sygnału,  gniazdo  wyjściowe  BNC,  gniazdo  zasilania  oraz  przełącznik 
ON/OFF.  Pokrętła  to  cyfrowe  impulsatory  firmy  ALPS  z  możliwością  ‘wcisku’.  Dzięki  takim 
dwóm  dodatkowym  przyciskom  nie  trzeba  było  montować  dodatkowych  i  wyprowadzenie 
mikrokontrolera PA6 i PA7 zostały nie podłączone. 

Program  generatora  pozwala  na  ustawienie  częstotliwości  od  1Hz  do  1MHz  z  krokiem 

wybieranym  poprzez  wciśnięcie  pokrętła  FSTEP.  Wzmocnienie  wybierane  jest  drugim 
pokrętłem GAIN, zaś przycisk wbudowany w to pokrętło umożliwia zmianę kształtu sygnału.  

 

 

background image

 
 

 

Ze  względu  na  brak  sprzętu  pomiarowego  nie  są  prezentowane  szczegółowe  dane 

techniczne,  ale  za  to prezentowane  są  zdjęcia  mogące  służyć  jako  pewien  jakościowy sposób 
oceny generowanych sygnałów. 

Poniżej  widoczne  są  zdjęcia  różnych  generowanych  sygnałów  dla  przypadków 

częstotliwościowych 100kHz i 1MHz przy maksymalnym wzmocnieniu 19dB. 

 

uwaga: rysunki dla różnych podstaw czasu 

 

W  trakcie  testów  generatora  okazało  się,  że  fala  sinusoidalna  wygląda  dobrze  do  5MHz, 

trójkątna  do 3MHz, zaś  prostokątna  powyżej  1MHz  zaczyna  odbiegać  od  właściwego  kształtu. 
Jednak  nie chcąc  komplikować sposobu  sterowania  oraz  parametrów  generatora  założono, że 
maksymalna  generowana  częstotliwość  generatora,  będzie  częstotliwością  dającą  optymalne 
parametry pracy i ustalono ją na 1MHz. 

background image

 
 

 

Poniżej prezentowane są zdjęcia wykonanego prototypowego generatora DDS.  
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Projekt miał za zadanie stworzyć tani, łatwy w obsłudze generator kilku przebiegów. Cel ten 

został  osiągnięty.  Dodatkowo  stworzono  generator  sterowany  mikrokontrolerowo,  zaś 
komunikacja  z  użytkownikiem  odbywa  się  za  pomocą  dwóch  pokręteł  oraz  wyświetlacza  LCD. 
Koszt wykonania całego urządzenia to około 70zł. 

Projekt  jest  projektem  rozwojowym.  Generowane  częstotliwości  można  zwiększać  poprzez 

zmianę  generatora  kwarcowego,  zmianę  programu  sterującego  lub  poprzez  wymianę 
cyfrowego  generatora  AD9833  na  przykład  na  AD9834.  W  przyszłości  planuje  się  rozszerzyć 
możliwości generowanych sygnałów o modulację AM oraz FM. 

 
 

zaprojektował i wykonał 

Cezary Klimasz