Selbstbau:

Sinusgenerator mit AD9850


Features:

  • DDS-Sinusgenerator
  • 5 Hertz bis 40 MHz
  • 1-Hz-Schrittweite
  • VFO-A und VFO-B
  • Nutzt fertige Trägerplatine für DDS-Chip AD9850
  • Platinen enthalten SMD-Bauelemente (Bauart 1206)
  • PC-Software zur Steuerung (Windows)
  • für Windows XP, 7,8)

Bild 1: Das Kernstück der Schaltung: Trägerplatine mit AD9850. Der rote Jumper wählt die verwendete serielle Betriebsart des AD9850 aus. Bitte Jumper bestücken, wie hier abgebildet.

Selbstbau:

Sinusgenerator mit AD9850

Vorgestellt wird ein Sinusgenerator für den Frequenzbereich von 5 Hertz bis 40 MHz, einstellbar in 1-Hz-Schritten. Ein Mikroprozessor sorgt für eine leichte Bedienung, steuert den DDS-Chip und bietet zwei in Software gegossenen VFO (VFO/A und VFO/B), die je auf einer eigenen Frequenz schwingen können. Im Dual- Modus schaltet die Ausgabe der Frequenz bei fester Umschaltrate zwischen beiden VFO-Frequenzen hin und her. Eine Quasi-Wobbelfunktion und als Gimmick einen CW-Geber runden das Selbstbauprojekt ab. Optional ist die Schaltung über ein Windows-Programm mittels PC komfortabel bedien- und steuerbar.

Die Schaltung des Sinusgenerators basiert auf dem DDS-Chip von Analog Devices AD9850. Um das Löten des empfindlichen SMD-IC zu vermeiden, wurde eine bestückte Trägerplatine mit diesem IC gewählt. Die Anschlüsse der Platine (Bild 1) sind im 2,54 mm-Raster ausgeführt und deshalb leicht zu handhaben. Diese AD9850-Trägerplatine steckt auf einer größeren Filterplatine, welche ein Tiefpassfilter mit der Grenzfrequenz von 45 MHz enthält und die Option, integrierte Verstärker (MMIC) zur Anhebung des DDS-Signals zu bestücken.

Gesteuert wird der AD9850 im seriellen Modus über drei Leitungen der CPU-Platine. Dort werkelt ein ATMEGA168-Prozessor. An ihm sind angeschlossen: Ein Drehencoder mit Taster zur Einstellung der Frequenz, ein zweizeiliges LC-Display, eine Tastatur mit 6 Knöpfen, optional mit Beleuchtung und die Filterplatine. Über den USB-Anschluss wird eine Steuerung der Frequenz via PC ermöglicht. Dieser USB-Anschluss wurde über einen Prozessor vom Typ Atmel ATTINY2313-20 nach cdc232 (USB mit ATTINY2313: cds-232: http://www.recursion.jp/avrcdc/cdc-232.html) realisiert. Unter Windows erscheint dieser USB-Anschluss als gewöhnlicher COMx-Port

.

Bild 2: Das analoge Oszillogramm zeigt ein sauberes Sinussignal.

Filterplatine und aufgesteckte DDS-Trägerplatine befinden sich gemeinsam in einem Schubert-Weißblechgehäuse (Größe: halbe Europakarte). Steuerleitungen und Spannungsversorgung sind über Durchführungskondensatoren in das Gehäuse geführt, während sämtliche Leitungen des CPU-Boards via Flachbandkabel zur Peripherie ausgeführt sind.

Die Spannungsversorgung von 12 Volt besorgt ein kleines Meanwell-Schaltnetzteil Model RS 25-12, das auf der Unterseite des im durch eine Aluminiumplatte horizontal geteilten Gehäuse untergebracht ist. Die 2-mm-Aluplatte wirkt als Abschirmung zur restlichen Elektronik.

AD9850-Platine

Diese fertig zu beziehende Steckplatine enthält auf einer Platine mit den Maßen 42 x 30 mm den DDS-IC AD9850 und ein 70-MHz-Tiefpassfilter. Das Modul bietet zwei Ausgänge für Sinus im Frequenzbereich von Null bis 40 MHz und zwei Ausgänge für Rechtecksignale bis 1 MHz. Letztere werden nicht genutzt. Die AD9850-Dateneingabe (zur Einstellung der Sinusfrequenz) zwischen serieller oder paralleler Schnittstelle wird über einen Jumper (in Bild 1 rot) eingestellt. Die Taktung des AD9850 erfolgt mit 125 MHz.

Bild 3: Die "Steuerzentrale": das CPU-Board mit den beiden Prozessoren.

CPU-Platine

Die CPU-Platine ist die Steuerzentrale der Schaltung mit dem Mikrocontroller Atmel ATMEGA168. Auf der Platine befindet sich der Spannungsregler für die Betriebsspannung von 5 Volt. Der Prozessor wird mit 15 MHz über einen Quarz getaktet. Zahlreiche Abblockkondensatoren sind mit einem Wert von 100nF in der Bauform SMD1206 ("dicke Klunker") auch vom weniger Geübten auf der Lötseite der Platine zu bestücken. Einige SMD-Drosseln sorgen für saubere Spannungen. Diverse Wannen-Steckerleisten realisieren die Verbindung zu den anderen Platinen.

Wichtiger Hinweis: Die im Schaltbild zu sehende "Steckverbindung" JP2 ist gar keine: hier werden bei Bedarf für jede Leitung Zener-Dioden (5V1) gegen Masse geschaltet, um evtl. Überspannungen gegen Masse abzuleiten. Diese können jedoch auch entfallen, wenn im Umfald nicht mit Hochfrequenz zu rechnen ist.

Bild 7: Schaltbild der Filterplatine. Pfostenstecker bilden die Verbindung zur AD9850-Platine.

Filterplatine (DDS Board)

Die Filterplatine nimmt die Trägerplatine des AD9850 über Buchsenleisten auf. Über eine 14-polige (2x7) und eine 7-polige (1x7) Stiftleiste je an der Stirnseite der kleinen Platine wird diese mit Spannung und den Steuersignalen versorgt und liefert im Gegenzug über Pin OUT die Sinusspannung gewünschter Frequenz. Das auf der AD9850-Platine mit einem 70 MHz-Tiefpassfilter behandeltes Sinussignal durchläuft nun ein weiteres Tiefpassfilter (im Prototypen: 45 MHz) und anschließend je nach Bedarf die Stufen Abschwächer1, Verstärker1, Abschwächer2 und Verstärker2. Aufmerksame Leser werden bemerken, dass im Schaltplan und auf dem Bestückungsplan die Werte der Widerstände und Kondensatore nicht vermerkt sind. Es gibt bewusst keine Vorgabe, denn die Dimensionierung dieser Stufen richtet sich nach dem gewünschten Verwendungszweck der Schaltung. Je nachdem, welcher Ausgangspegel gewünscht ist, werden diese Stufen unterschiedlich bestückt. Oft reicht eine Verstärkerstufe bereits aus, um die gewünschte Verstärkung zu erreichen. Damit der MMIC (z. B. ERA 5) stabil arbeitet, ist das Eingangssignal über Abschwächer1 entsprechend anzupassen und auch im Ausgang des Verstärkers1 sorgt in der Regel eine leichte Abschwächung, etwa von einem halben dB, für stabile Arbeitsverhältnisse. Werden Stufen überbrückt, ist dazu ein 50-Ohm-Koaxkabel zu verwenden.

Tiefpassfilter, Abschwächer und Verstärker können und sollen den persönlichen Anforderungen entsprechend dimensioniert werden. Es sei betont: Um Verzerrungen des Signals zu vermeiden, sind Verstärker und Abschwächer sorgfältig aufeinander abzustimmen [3]!

Bild 8: Bestückungsplan der Filterplatine. SMD-Bauteile sind sämtlich in der großen Bauform 1206.

Wer das 45-MHz-Tiefpaßfilter des Prototypen aufbauen möchte, findet die Werte in einer Excel-Tabelle zum Download. Deren Berechnung erfolgte im Internet über http://www.calculatoredge.com/electronics/bw%20pi%20low%20pass.htm und Dämpfungsglied-Rechner. Mit diesen Berechnungen online ist es möglich, sowohl das Tiefpassfilter, als auch die Abschwächer den Anforderungen anzupassen, ohne einen Taschenrechner zu bemühen. In manchen Fällen mag es gar notwendig bzw. geraten sein, auf eine zweite Filterung zu verzichten und sich auf das Tiefpassfilter zu verlassen, das sich bereits auf der AD9850-Platine befindet.

Drehencoder-Platine

Die Wanne ist auf der Bestückungsseite der Platine zu montieren, der Drehencoder mit integriertem Druckschalter wird auf die Lötseite platziert.

Bild 4: Bestückung der LCD-Platine: Das Poti dient zur Einstellung des Kontrastes.

LCD-Platine

Diese Platine dient als Träger für das LC-Display. Auf der Platine befindet sich ein Potentiometer zur Einstellung des Kontrastes. Ein Vorwiderstand für LCD mit Hintergrundbeleuchtung mittels integrierter LED an Pin 15 und Pin 16 ist vorhanden und ist auf das LC-Display anhand des Datenblattes anzupassen. Das LCD selbst ist zweizeilig zu je 16 Zeichen (z. B. Reichelt, LCD 162 LED). Die Spannungsversorgung der Anzeige erfolgt über das Flachbandkabel. Beim Betrieb kommt es ab und zu bei der Darstellung der Frequenz zu einem Rundungsfehler, der maximal 1 Hz betragen kann. Der Grund liegt in der internen Darstellung der Zahlen im Prozessor.

Bild 5: Sechs Druckschalter bilden die Tastatur.

Tastaturplatine

Die Platine beinhaltet sechs Taster in üblichem Rastermaß. Daher ist die Wahl der Taster dem Selbstbauenden weitgehend frei gestellt und wird sich nach den Erfordernissen des Gehäuses richten müssen. Zur Beleuchtung (optional) sind vier LED vorgesehen, die via PAD2 mit Spannung (5V) versorgt werden. Der Vorwiderstand, sofern nötig, sollte dann in die Zuleitung integriert werden. Vier Bohrungen erlauben die Verschraubung der Platine mit der Frontplatte des Gehäuses.

ISP-Platine

Diese Platine dient dazu, den Prozessor zu programmieren, sofern das nicht mit einem externen Programmiergerät geschieht oder vom Entwickler OM DL1DBR, dl1dbr@gmx.de ein programmierter Prozessor bezogen wird. Zur Programmierung wird eine serielle Schnittstelle des PC verwendet. Es handelt sich um einen simplen Programmer für Atmel-Prozessoren, der sich an die üblichen Schaltungen anlehnt und mittels des Programms avrdude programmiert ("gebrannt") werden kann. Die Programmierung des Quellcodes (Firmware) erfolgte in "C" mit dem freien Entwickler-Programmpaket WINAVR.

Bild 6: Oben ist das Spektrum eines 5-MHz Signals mit dem "Peak" zu sehen, unten das digital gesamplete Zeitsignal.

Bedienung (am Gerät)

Nach dem Einschalten stellt sich die Frequenz auf 1000 Hz mit einer Schrittweite von 1 kHz ein. Die Einstellung der Schrittweite wird über einen Druck auf den Frequenzknopf (Drehencoder) eingeleitet, im Display ist beim Drehen des Knopfes die jeweilige Schrittweite ablesbar. Nochmals drücken des Knopfes setzt die neue Schrittweite und man gelangt zur Frequenzeinstellung zurück. Diese wird durch Drehen des Frequenzknopfes anhand der gewählten Schrittweite eingestellt. Der einstellbare Frequenzbereich beträgt 5 Hz bis 40.000.000 Hz.

Die Firmware unterstützt zwei VFO: VFO/A und VFO/B, jeder kann auf eine andere Frequenz eingestellt werden. Die Umschaltung erfolgt mit der Taste Umschaltung VFO A/B der Tastatur.

Quasi-Zweifrequenzmodus: Diese Betriebsart schaltet kontinuierlich zwischen VFO/A und VFO/B um, mehrmals in der Sekunde im festen Zeitraster, da der DDS-Chip eine gewisse Einschwingzeit benötigt. Wobbeln: Ein Quasi-Wobbeln mit der eingestellten Schrittweite ermöglicht dieser Modus. Dabei wird die Ausgabefrequenz zwischen den Frequenzen von VFO/A und VFO/B verändert. CW-Geber: Dieser Modus wird über die Taste CW-Geber EIN/AUS der Tastatur eingeleitet. Mit der Taste CW-Geber kann man nun rudimentär einige Morsezeichen senden. Aus den Modi gelangt man zum normalen Betriebsmodus, indem man dieselbe Taste noch einmal betätigt. Weiteres zu den Betriebsarten finden Sie weiter unten bei der Beschreibung des Windows-Programms.

Mögliche Erweiterungen

Zwei bisher nicht genutzte Ausgänge der AD9850-Platine bieten Rechtecksignale bis zu 1 MHz an und könnten einer Verwendung zugeführt werden. Option 2: In manchen Fällen ist eine einstellbare Amplitude des Sinussignals wünschenswert. Ein in mehreren dB-Stufen schaltbarer Abschwächer ist eine mögliche und sinnvolle Ergänzung.

Beschaffung der Bauteile

Die Platine mit dem AD9850 ist bei E-Bay und Amazon beziehbar (2015). Dort als Suchbegriff "DDS VFO AD9850" eingeben und die Platine anhand der Abbildung auswählen. Günstige Angebote liegen je Stück etwa bei 11 bis 12 Euro. Andere elektronische Bauteile wie LCD, Wannenstecker, Prozessor etc. sind bei Reichelt und die Gehäuse z. B. bei Schubert http://www.schubert-gehaeuse.de/ zu beziehen. Der Entwickler der Schaltung, Martin, DL1DBR [5], bietet Interessenten auf E-Mail-Anfrage gebohrte Platinen und programmierte Prozessoren an. Nach Absprache können auch elektronische Bauelemente, die AD9850-Platine u. a. über ihn bezogen werden.

Option PC-Steuerung

Soll der Sinusgenerator lediglich über einen Windows-PC gesteuert werden, kann man sich den Aufbau einer Menge Hardware ersparen. In diesem Fall werden das CPU-Board (mit beiden Prozessoren) und die Filterplatine bestückt. Alles passt in ein noch recht moderat kleines Gehäuse, so ergibt sich ein kompakter Aufbau. Die Spannungsversorgung von 12 Volt kann aus dem PC entnommen werden, über ein kleines Schaltnetzteil oder über ein externes Labornetzteil erfolgen.

Wird die mit beiden programmierten Prozessoren bestückte CPU-Platine das erste Mal an den PC angesteckt, meldet sich der mit 12 MHz getaktete ATTINY2313-Prozessor, der für die Nachbildung der USB-Schnittstelle zuständig ist, bei Windows als neue Hardware an. Nun ist der Treiber lowcdc.inf von der DVD zu installieren (aus dem Ordner Artikel/Sinusgenerator/USB COMTreiber/Treiber USB COM inf/…/lowcdc.inf. Nach Auswahl dieses Ordners installiert sich der virtuelle serielle Treiber, fortan steht die neue virtuelle serielle Schnittstelle zur Verfügung. Dessen Bezeichnung kann im Gerätemanager der Windows-Systemsteuerung in Erfahrung gebracht werden (auf diesem PC war es z. B. COM4).

Das Steuerprogramm für Windows

Zur Bedienung des Sinusgenerators kommt das nachfolgend beschriebene Windows-Programm AD9850 DDS Sinus Generator zum Einsatz. Es wurde unter Visual Studio 2010 Ultimate mit der Sprache C# (sprich: c-sharp) entwickelt und benötigt Microsoft .Net 3.5. Letzteres ist auf Windows Vista / 7 / 8 bereits installiert. Lediglich bei Windows XP (SP3 ist nötig) kann es vorkommen, dass das kostenfreie .NET-Framework 3.5 fehlt und man es von der Microsoft-Internetseite installieren muss. Startet auf Ihrem Computer das Browserprogramm der Heft-DVD, wird auch das Programm für den Sinusgenerator einwandfrei funktionieren, denn beide nutzen dieselbe Version .NET 3.5.

Bild 9: Steuert den Sinusgenerator bequem vom PC aus und merkt auch, wenn man am Gerät die Frequenz einstellt.

Die Software nimmt sich nach dem Start die erste verfügbare serielle Schnittstelle, die in Windows gelistet ist und kann dann ggf. vom Anwender auf den richtigen Com-Port umgestellt werden. Beim Verlassen des Programms speichert dieses sowohl den benutzten seriellen Port, als auch die Liste gespeicherter Frequenzen. Über- und unterhalb der Anzeige ist die Frequenz bei jeder Ziffer über Buttons nach oben bzw. unten verstellbar. Mittenfrequenzen aller Amateurfunkbänder erreicht man mit einem Mausklick über die Kurzwahl-Radio-Buttons. Wer die Frequenz in festen Schrittweiten justieren möchte, gibt die Schrittweite in Hz, kHz oder MHz vor und klickt zur Einstellung auf die Buttons UP und DN.

Die Frequenzliste bedient sich intuitiv: Zum Speichern den Button Aktuelle Frequenz speichern betätigen. Zum Einstellen einer Frequenz klickt der Benutzer in der Liste die gewünschte Frequenz an. Das Löschen einer Frequenz aus der Liste geschieht durch Anklicken derselben in der Liste und mit anschließender Betätigung des Buttons Markierte Frequenz löschen. Ein Button dient zur Umschaltung zwischen den beiden VFO A und B. Eine grüne LED informiert über den aktuellen VFO-Modus. Der Dual-Mode wird mit dem benannten Button ein- und ausgeschaltet. In diesem Modus schaltet der Sinusgenerator permanent zwischen den Frequenzen beider VFO hin und her. Der Button Wobbeln funktioniert auf gleicher Weise, dieser Modus wird mit einer roten LED gekennzeichnet. Beim Quasi-Wobbeln verändert sich die Frequenz ausgehend von der aktuellen Frequenz des VFO A bis zu der des VFO B mit der eingestellten Schrittweite. Da die Software auf die Einschwingzeit des DDS Rücksicht nehmen muss, braucht die nachgebildete Wobbelfunktion seine Zeit und ist nicht mit der professioneller Geräte vergleichbar.

Bild 10: Ein Gimmick: Der Text wird mit der aktuellen Frequenz als Morsecode ausgegeben.

Gimmicks: CW senden

Im kleinen Menü oben links kann man auch CW-Zeichen senden. Dazu öffnet sich ein neues Fenster, das die Eingabe einer Zeichenkette (z. B. CQ CQ de … etc.) erlaubt. Klickt man auf den Button CW-Senden, werden die Zeichen mit der aktuellen VFO-Frequenz gemorst. Die Zeichen sind in einem KW-Empfänger hörbar, wenn die Empfangsfrequenz nur unwesentlich von der Sendefrequenz abweicht. Ein Beispiel: Empfängt der KW-RX auf 3,7000.000 MHz, wird der CW-Ton hörbar, wenn der Sinusgenerator z.B. 800 Hz unterhalb der 3,7 MHz eingestellt wird und der Empfänger auf LSB eingestellt ist. Der gehörte CW-Ton aus dem RX wird dann 800 Hz betragen.

Für Testzwecke wurde zudem eine simple Bakenfunktion realisiert: Klickt man die Checkbox an und dann den Button CW-Senden, mutiert der Sinusgenerator zur Simpel-Bake. Das ist praktisch, wenn man für Messungen ein permanentes Signal benötigt, ein reiner Sinuston aber zu "langweilig" anmutet.

Noch mehr CW: Im Hauptbildschirm gibt es eine CW-Taste. Ist der Modus CW-Geber eingeschaltet, fungiert der Button als simulierte Morsetaste. Wird die Maus - ohne sie zu betätigen - über die Fläche des Buttons geschoben, ertönt der Ton bzw. die eingestellte Frequenz wird ausgegeben. Verlässt die Maus die Fläche des Buttons, stoppt der Ton bzw. die Frequenz Null wird ausgegeben.

Bild 11: Die Tabelle steuert den Sinusgenerator, der liefert nacheinander alle Frequenzen der Tabelle mit angegebener Dauer - auch in einer Endlosschleife.

Alle meine Entchen - oder doch für HF-Messungen?

Im Menü Steuern bietet sich dem Anwender die Möglichkeit, eine Tabelle von Frequenzen und deren Stehzeit (Dauer) vorzugeben, die dann nach dem Klick auf Start Zeile für Zeile abgearbeitet wird. Im NF-Bereich kann man damit lustige Tonfolgen programmieren ("Alle meine Entchen"), aber auch ernsthafte Anwendungen zum Messen im NF- und HF-Bereich sind denkbar. Eine Zeile lässt sich mit der Funktionstaste F2 der Tastatur editieren. Die so entstandenen Tabellen lassen sich für die nächste Anwendung speichern und laden. Ausgeklügelte HF-Messfolgen kann man so archivieren und jederzeit neu aktivieren.

Bild 12: Tooltips helfen bei der Bedienung. Damit sie nicht stören, sind sie abschaltbar.

Ein letzter Tipp zum Aufbau, falls Sie das Projekt interessiert: Lassen Sie sich nicht von den SMD-Bauteilen vom Selbstbau abhalten! Die "Dinger" sind so groß, dass man sie mit bloßem Auge gut auf die Platine bringt (SMD1206 - die größte Bauform).

Zahlreiche Abbildungen, die hier im Beitrag keinen Platz fanden, etwa zum Aufbau des Gehäuses, Schaltbilder und Bestückungspläne, originale Eagle-Dateien, den C-Quellcode der Firmware, das Programm zur Steuerung samt des C#-Quellcodes, all das finden Sie zum Downloadbereich.

Ein letzter Tipp: Installieren Sie EAGLE, laden die jeweilige BRD-Datei (Platinenansicht) und nutzen Sie während der Bestückung - insbesondere der CPU-Platine - die Zoomfunktion, um Details zur Bestückung gut und sicher zu erkennen. Das erspart Fehlplatzierungen von Baulemeneten.

Befehle zur Steuerung des Sinusgenerators

Die Fernsteuerbefehle (9600 Baud, 8,N,1, sind an die CAT-Kommandos von Kenwood angelehnt und erweitert. Jeder Befehl endet mit einem Semikolon (;) ohne ein folgendes Carriage Return (CR) oder LineFeed (LF).

Befehl        Beschreibung
AC01;        Schrittweite bis AC13;
BD;        Band herunterschalten
BU;        Band hochschalten
BS01;        Setze Band
FA;        VFO A - Umschalten auf VFO A
FB;        VFO B - Umschalten auf VFO B
FA00001234567;        Frequ VFO A setzen, 11 Stellen
FB00014200000;        Freq VFO B Setzen, 11 Stellen
FD;        Frequenz um Schrittweite heruntersetzen
FU;        Frequenz um Schrittweite heraufsetzen
RA;        Lesen VFO A - Antwort: RA+11 Stellen Frequenz;
RB;        Lesen VFO B - Antwort: RB+11 Stellen Frequenz;
RC;        Remote CW - leitet CW-Modus ein
RD;        Zeichen - Taste gedrückt (Mouse Enter-Event)
RE;        kein Zeichen - Taste losgelassen (Mouse Leave-Event)
RS;        Lesen Schrittweite - Antwort: RS+11 Stellen Frequenz;
ST;        Status - Antwort: FA; oder FB;
ZT;        Zweiton- / Dual-Modus
WO;        Wobbeln einschalten

CW;        schaltet in den CW Modus für Taste
CW + 24 Zeichen;        Morsen von 24 CW Zeichen (feste Länge)
CC0123456789;        Morsen von 10 CW Zeichen (feste Länge)
KY + 24 Zeichen;        wie Befehl CW
BA;        Senden einer Bake, 24 CW Zeichen
TB;        Taste 1
TC;        Taste 2
TD;        Taste 3
TE;        Taste 4
TF;        Taste 5
TG;        Taste 6
TH;        Taste 7
TI;        Taste 8

Download von Dateien zu diesem Projekt

Schaltbilder, Platinenlayouts, C#-Sourcen, Eagle-Dateien, Hexdatei zum Brennen des Prozessors und andere nützliche Dateien stehen zum Download bereit. Und hier geht es zum Download.