| Startseite Fotos
 Schaltung DDS (Target)
 Schaltung Steuerteil (Target)
 DDS Schaltplan (png)
 DDS Platine (png)
 Steuerteil Schaltplan (png)
 Steuerteil Platine (png)
 Sourcecode (zip)
 Bedienungsanleitung
 Users Guide
   | Here you can see a DDS circuit with the AD9951 and a 
    PIC16F877. The frequency range of the AD9951 is 0MHz to 160MHz. You can use he DDS either with the PIC16F877 or with a small
    VB6 Program with your computers LPT Port. 
    In this case you will perhaps need a small
    buffer circuit beetwen the LPT 
    port an the dds unit. Unzip the programm to a folder an run it. No setup is 
    required. Please let me know if you change the programm code, so that i can 
    post it here on the website.
 The VB6 Program is tested under Win 2000 and XP.
 The PIC sourcecode is made with MPLAB V.6.5
 The PIC is programmed with a Picstart Plus. The configuraton word is Hex 
    3F31
 
 Screenshot VB Program:
 
 
  Bei der auf den folgenden Seiten folgenden Schaltung handelt 
    es sich um eine DDS 
    Schaltung für einen HF Generator 
    von 0 - 160 MHz mit einem DDS IC AD9951 
    der Firma Analog Devices und PIC 16F877 von
    Mikrochip als Prozessor.Zur Ansteuerung kann entweder ein PIC 16F877 oder ein kleines
    VB6 Programm verwendet werden (über die 
    parallele Schnittstelle). Unter Umständen ist in diesem Fall eine kleine
    Schaltung zwischen der 
    parallelen Schnittstelle und dem DDS erforderlich.
 Der Sourcecode für den PIC ist mit MPLAB V. 6.5 erstellt, als 
    Programmiergerät findet ein Picstart Plus Verwendung. Das Konfigurationswort 
    für den PIC ist Hex 3F31.
 Das VB6 Programm nur in einen beliebigen Ordner entpacken und starten. Es 
    ist kein Setup erforderlich. Das Programm ist unter Windows 2000 und XP 
    getestet.
 Veränderungen an den Programmen sind erwünscht. Bitte um eine kleine 
    Mitteilung, damit ich die Änderungen hier aufspielen kann (Bin ein absoluter 
    Neuling in der Hochsprachenprogrammierung).
 Die 
    Ausgangsleistung beträgt etwa 10 dBm (gemessen habe ich zwischen 8 und 12 
    dBm, je nach Frequenz). Der große Vorteil des AD9951 liegt darin, dass das 
    Ausgangssignal über einen 14 Bit DA-Wandler erzeugt wird (im Gegensatz zu 
    seinen kleineren Brüdern), d.h. das Signal ist sehr sauber und kann direkt 
    für TX/RX-Konzepte verwendet werden, ohne dass eine schmalbandige PLL 
    nachgeschaltet werden muss. Nachteilig ist der doch recht hohe 
    Stromverbrauch (ca. 200 mA bei 12 V).
 Die Schaltung ist auf 2 Platinen realisiert um eine gute Entkopplung 
    zwischen dem Prozessorteil und der DDS Schaltung zu erreichen. Die DDS 
    Platine passt von der Größe her in ein Weißblechgehäuse der Firma
    Schubert mit den Maßen L * B 
    * H = 37 * 55 * 50 mm.
 Die Frequenz ist über einen Drehgeber einstellbar. Dabei können 
    Frequenzschritte zwischen 1 Hz und 10 MHz gewählt werden (über einen im 
    Drehgeber integrierten Taster).
 Zusätzlich ist es möglich zwischen 2 frei wählbaren Frequenzen mit ebenfalls 
    wählbarer Geschwindigkeit und Raster zu wobbeln. Das Wobbeln kann entweder 
    einmal oder in einer Schleife dauernd wiederkehrend erfolgen. Beim Erreichen 
    der oberen Frequenz während eines Wobbeldurchgangs ist es weiterhin möglich 
    eine zusätzliche Wartezeit einzustellen (wobei eine Frequenz von 0 Hz 
    ausgegeben wird) bevor wieder mit der Startfrequenz begonnen wird. Dies kann 
    z.B. beim Ausmessen von Filtern günstig sein, da dann die Filter eine 
    "Erholpause" erhalten.
 Im Gegensatz zu mehreren anderen Sourcecodes die ich angeschaut habe (dort 
    wird häufig ein fixer Wert verwendet um eine Frequenzänderung zu 
    ermöglichen), berechnet der Prozessor wirklich jede Frequenz über die im 
    Datenblatt des AD9951 angegebene Formel, d.h. es ergibt sich bei keiner 
    Frequenz ein Fehler größer als ein Bit, was in etwa 1/10 Hz entspricht. Dazu 
    war es notwendig praktisch alle externen Kommandos intern als BCD Format zu 
    verarbeiten und anschließend entsprechend zu wandeln. Daraus ergibt sich ein 
    doch etwas umfangreicherer Sourcecode , so dass ein PIC16F877 
    verwendet werden muss. Der Drehgeber sollte nicht mehr als 30 Rastungen pro 
    Umdrehung besitzen, da der Prozessor nur mit 4 MHz getaktet wird und es 
    daher zu erwarten ist, dass sich bei einem schnellen Drehen der Prozessor 
    "verschluckt". Soll ein Drehgeber mit mehr Rastungen verwendet werden, ist 
    ein PIC mit 20 MHz Quarz zu verwenden. Es müssen aber dann alle Pausen im 
    Programm entsprechend geändert werden und die 2 Kondensatoren am Quarz des 
    PIC auf 15pF verringert werden. .
 Der AD9951 hat nur einen Pin-Abstabd von 0.5 mm. Das 
    erfordert schon sehr "feinfühliges" Arbeiten. Außerdem muss er auch noch auf 
    der Unterseite auf Masse gelötet werden, d.h. es ist unbedingt eine 
    durchkontaktierte Platine zu verwenden. Wenn genügend Interesse besteht, 
    lasse ich mal einen Schwung Platinen anfertigen.   |