DDS-Generator
mit ARDUINO-Board und BASCOM-Software
8. Februar 2013
Here
is automatic translation made by Google:
http://translate.google.de/translate?sl=de&tl=en&js=n&prev=_t&hl=de&ie=UTF-8&eotf=1&u=http%3A%2F%2Fkh-gps.de%2Fdds.htm&act=url
Die
schon seit vielen Jahren
erhältlichen DDS-Schaltkreise eignen sich hervorragend zur
Erzeugung stabiler Sinus- oder Rechtecksignale in weiten
Frequenzbereichen. So ist z.B. der weit verbreitete Typ
"AD9850" im Bereich von nahezu Null bis etwa 40 MHz nutzbar.
Die
Steuerung erfolgt dabei üblicherweise mithilfe von
Microcontrollern über einen SPI-Datenbus.
Der Einsatz von DDS-Chips
ist besonders einfach umsetzbar,
wenn sie gemeinsam mit einem passenden
Taktgenerator auf einer kleinen Platine
untergebracht sind. Via z.B. EBAY sind
entsprechende, aus chinesischer Produktion stammende Boards [Abb.1]
schon für wenige Euro erhältlich ( Suchwort: "AD9850" ) .
Abb.1 China-DDS-Board mit
AD9850
Nähere Angaben
zu diesen Boards findet man z.B. in [2],[3],[4]. Sie werden mit einer
Versorgungsspannung von 5V betrieben. Wie auch aus
dem Schaltbild Abb.2 ersichtlich, erfolgt die Ausgabe der erzeugten
Sinussignale über ein Tiefpassfilter.
Abb.2 Schaltbild des DDS-Boards
Um
erste Erfahrungen mit dieser Art DDS-Generatoren sammeln zu
können, ging es zuerst einmal nur darum, bestimmte Festfrequenzen
zu erzeugen um damit ggf. Quarzoszillatoren ersetzen zu können.
Aus Gründen der Einfachheit sollte fertig verfügbare
ARDUINO-Hardware ( Typ "UNO" oder kompatible ähnliche Versionen )
benutzt werden, um damit die benötigten Steuerungsvorgänge
auszulösen. Wie auch schon an anderer Stelle beschrieben [1],
benutze ich die genannte Hardwareplattform gern auch in Verbindung mit
Bascom-AVR-Software. So entstand das in den Abbildungen 3 ud 4
dargestellte erste Projekt. Durch Änderung der Frequenzeingaben im
Quellcode konnten auf diese Weise unterschiedlichste Festfrequenzen im
Bereich bis etwa 40 MHz versuchsweise generiert werden.
Abb.3 Frequenzgenerator mit
ARDUINO-Board und AD9850-DDS
Minimalkonfiguration zur Erzeugung von Festfrequenzen ( F ca. 0-40MHz )
Abb.4 Das Gleiche noch einmal in
einer etwas anderen Darstellung
Der
nächste Schritt bestand nun im Aufbau eines universellen
DDS-Frequenzgenerators mit Up/Down-Tasten und einstellbaren
Schrittweiten, wobei diese zwischen etwa 10Hz und 1 MHz liegen sollten.
Zudem sollte noch die Möglichkeit zur Frequenz-Feinabstimmung
mithilfe eines Drehgebers hinzukommen. Die Abbildungen 5 und 6 zeigen
das entsprechende Projekt. Zur Anwendung kam wiederum das schon weiter
oben genannte ARDUINO-UNO-Board , wobei ein ebenfalls fertig
erhältliches Aufsteck-LED-Shield [siehe auch 1] benutzt wurde, um
damit eine Frequenzanzeige realisieren und die Steuerfunktionen
auslösen zu können. Bei Bedarf war lediglich noch der
erwähnte Drehgeber zusätzlich anzuschliessen.
Abb.5 Frequenzgenerator mit
ARDUINO-Board ( hier nicht gezeigt ),
aufsteckbarem LCD-Keypad-Shield und AD9850-DDS;
Steuerung über Tasten und Drehencoder ( optional; hier nicht
gezeigt )
Abb.6 Das Gleiche noch einmal in
einer etwas anderen, etwas erweiterten Darstellung
Während die
Tasten "S3" und "S4" der Anwahl verschiedener Abstimmschritte ( ca.
10Hz bis 1 MHz ) dienen, erfolgte die eigentliche Frequenzeinstellung
mithilfe der Tasten ""S4" und "S1". Die mit "Select Mode"
bezeichnete Taste "S5" erlaubt neben dem VFO-Betrieb
auch noch den Aufruf von 9 zusätzlichen, derzeit noch im
Programmcode fest abgelegten Festfrequenzen. Eine erweiterte Version,
die es dem Anwender auch ohne BASCOM-Kompilierung ermöglicht, hier
Frequenzen eigener Wahl im EEPROM-Bereich des Prozessors abzulegen, ist
in Vorbereitung.
NACHBAU
Hier herunterladbar sind
1. eine
Basisversion der BASCOM-Software. Sie errlaubt das Generieren einer
beliebigen
Festfrequenz bis etwa 40 MHz und kann mit oder
ohne zusätzliches Aufsteck-LCD-Shield betrieben werden und
2. einer
erweiterten Version für den Betrieb mit LCD-Keyboard-Shield und
Steuermöglichkeiten gem. Abb.6. Nachdem ich allerdings bei
Berechnung größerer Rasterschritte an die Grenzen der unter
BASCOM erreichbaren mathematischen Genauigkeit stiess, wurde die
Firmware in der aktuellen Version 1.5 dahingehend geändert, dass
unabhängig vom gewählten Raster, mit einem ggf.
angeschlossenen Drehgeber immer nur eine Frequenzfeinabstimmung in
10Hz-Schritten möglich ist.
Die in den Quellcodes enthaltenen BAS-Files können aber
entsprechend eigener
Wünsche bzw. Frequenzen angepasst und mithilfe von BASCOM-AVR
kompiliert werden. Derzeit kann ich allerdings nicht sagen, ob das auch
noch mit der kostenlos erhältlichen ( und in ihrem Leistungsumfang
begrenzten ) BASCOM-AVR-Testversion möglich ist. Als Ergebnis der
Kompilation enthält man in jedem Fall das via
ICSP-Verbindung in den ARDUINO-Prozessor zu schreibende
jeweilige HEX-File.
LINKLISTE
E-Mail
contact via: