Amateurfunk verbindet Menschen in der ganzen Welt

DDS-Generator


DDS-Generator

Im Internet findet man fertige DDS-Module für etwa 8 €. Ebenfalls findet man Arduino-Nano-Klone für etwas über 2€. Das hat mich animiert, einmal einen DDS-Generator zu bauen, obwohl ich den nicht wirklich benötige. Durch den Einsatz der Module kann die erforderliche Platine recht einfach gehalten werden.


Aufbau mit Arduino Nano und DDS-Modul

Allgemeines
Die Ausgangsleistung ist von etwa -35 dBm bis 10 dBm einstellbar und der einmal eingestellten Wert wird konstant gehalten. Im LCD-Display wird die Frequenz und die gewählte Schrittweite angezeigt. Auf einer zweiten Seite wird der Ausgangspegel und die Ausgangspannung (in Vrms) angezeigt. Die Schrittweite für die Frequenz Einstellung ist wählbar. Alle eingestellten Werte sind speicherbar (auch der aktuell eingestellte Ausgangspegel).

Damit der Ausgangspegel geregelt werden kann, muss das DDS-Modul leicht modifiziert werden. Der Widerstand R6 (Rset, 3,9k) muss ausgelötet und eine Drahtbrücke hergestellt werden. Keine große Sache. Um die gewünschte Ausgangsleistung zu erreichen, wurde noch ein MMIC-Verstärker vorgesehen. Die Pegelreglung für den Ausgang "A" erfordert dann noch etwas zusätzlichen Aufwand. Gelöst habe ich das mit einem zusätzlichen ATMega8 und einem 16-Bit Digital-Analogwandler.

Die hier vorgestellte Lösung ist der zweite Entwurf. Der erste Entwurf landete in der Tonne. Es funktionierte zwar prinzipiell, aber die Regelung der Ausgangsleistung funktionierte nicht so wie ich mir das vorgestellt hatte. Die Schaltung für die Regelung hatte ich weitgehend aus einer bestehenden Lösung übernommen (UKW-Berichte). Offenbar war das aber alles so auf den speziellen Fall zugeschnitten, dass es unter anderen, leicht veränderten Bedingungen, nicht mehr zufriedenstellend funktionierte. Um nicht nochmal alles neu routen zu müssen, habe ich dann die Lösung mit dem zusätzlichen ATMega8 gewählt. Grundsätzlich könnte der Arduino-Nano die Regelung aber auch noch übernehmen.


Schaltung des DDS-Generators


Logarithmischer Detektor zur Messung der Ausgangsleistung


Tiefpass-Filter für den Ausgang B

Der Ausgang des DDS-Moduls passiert einen Tiefpassfilter, der auf dem Modul selbst enthalten ist. Der zweite Ausgang des DDS-Moduls wird aber ungefiltert auf den Ausgangspin geführt. Diesen Ausgang habe ich mit einem Tiefpassfilter auf der Trägerplatine versehen und auf den Ausgang "B" geführt. Dieser Ausgang, mit einer Impedanz von 50 Ohm, liefert maximal etwa -10 dBm und ist nicht geregelt.

Kalibrierung
Damit die Anzeige der Ausgangsleistung funktioniert, muss der DDS-Generator zunächst kalibriert werden. Beim Einschalten wird die Taste des linken Drehgebers festgehalten, bis die Meldung "0 dBm einstellen" erscheint. Jetzt wird mit dem rechten Drehgeber der Ausgangspegel auf 0 dBm eingestellt. Dazu muss ein externes Messgerät - mit 50 Ohm Impedanz - am Ausgang "A" angeschlossen werden. Sind die 0 dBm eingestellt, wird mit einem Druck auf den linken Drehgeber weitergeschaltet und die Meldung "-30dBm einstellen" erscheint. Jetzt werden -30 dBm eingestellt und die Kalibrierung mit einem Druck auf den linken Drehgeber abgeschlossen. Die Kalibrierwerte werden im EEPROM abgelegt und beim Programmstart wieder geladen.

Ein Betrieb ohne Kalibrierung ist möglich, nur die Anzeige der Ausgangswerte ist dann natürlich ungültig.

Display-Hintergrundbeleuchtung
Wenn beim Einschalten die Taste "Up" festgehalten wird, erscheint die Meldung "Beleuchtung einstellen". Jetzt kann mit der "Up"- bzw. "Down"-Taste die Beleuchtung angepasst werden. Ein Druck auf den linken Drehgeber speichert den Wert ab.

Frequenz-Einstellung
Das Gerät startet mit der Default-Einstellung 20 MHz und Schrittweite 100KHz. Jeder Drehgeberschritt ändert jetzt die Frequenz um 100 KHz. Mit einem kurzen Druck auf den linken Drehgeber gelangt man zur Einstellung der Schrittweite. Dies erkennt man an einen Asterisk-Zeichen hinter der angezeigten Schrittweite. Mit dem Drehgeber kann jetzt die Schrittweite verändert werden. Wählbar sind: 1Hz, 10Hz, 100Hz, 1KHz, 10KHz, 100KHz und 1MHz. Mit einem weitern kurzen Druck wird die Schrittweite übernommen; das Asterisk verschwindet wieder aus dem Display. Wenn man die eingestellten Werte für später speichern will, so kann man das mit einem langen Druck auf den linken Drehgeber. Die abgespeicherten Werte werden dann beim nächsten Neustart wieder eingestellt. Einstellbar sind Frequenzen von 1 MHz bis 40 MHz.

Pegeleinstellung
Mit dem rechten Drehgeber wird der Ausgangspegel eingestellt. Auch hier kann der eingestellte Wert durch einen Druck auf den Drehgeber gespeichert werden. Beim Neustart wird dann dieser Wert wieder eingestellt. Der Pegel am Ausgang "A" des Generators wird mittels eines logarithmischen Detektors gemessen. Die Leistung am Ausgang "A" wird mit dem eingestellten Sollwert verglichen. Abweichungen werden vom Programm korrigiert, indem über den DA-Wandler und den Transistor T2 der Steuerstrom des AD9850 auf dem DDS-Modul angepasst wird.

Eine Änderung des Ausgangspegels mittels des rechten Drehgebers macht sich auch am Ausgang "B" bemerkbar. Hier erfolgt aber keine Regelung. Die Impedanz an beiden Ausgängen beträgt 50 Ohm. Da der Ausgang "A" geregelt wird, liegt hier ein 50 Ohm-Widerstand in Reihe mit dem Ausgang.

Am Port PB0 (Pin 14) des ATMega8 kann eine LED angeschlossen werden. Diese quittiert dann beim Druck auf den rechten Drehgeber den Speichervorgang. Ein Fehler bei der Übertragung von Daten über den I2-Bus (TWI-Interface) zum DA-Wandler wird durch Blinken der LED im Sekundentakt angezeigt.

Tiefpassfilter
Auf dem DDS-Modul ist ein Tiefpassfilter mit einer Eckfrequenz von etwa 70 MHz vorhanden. Für den Ausgang "B" habe ich ein eigenes Tiefpassfilter entworfen. Dieses hat eine Eckfrequenz von ca. 45 MHz.

 
Tiefpass-Filter für den Ausgang "B" (Simulation)


Vergleich der beiden Filter 45 MHz und 70 MHz (Simulation)

Das hier verwendete DDS-Modul verwendet den DA9850 und liefert damit max. 40 MHz. Diese Module gibt es mittlerweile auch mit dem AD9851 und können daher bis 70MHz liefern. Um ein DDS-Modul mit dem AD9851 zu betreiben, müssen in der Software dann nur die Grenzwerte angepasst werden.