Simple-DDS
Stand: 6. April 2013

Die ersten Versuche mit den Low-Cost-DDS-Moduln aus China erfolgten unter Verwendung von ARDUINO-Hardware und sind in [1] näher beschrieben. Danach bestand aber auch noch der Wunsch zur Realisierung einer Minimallösung, wobei zur Steuerung des DDS-Bausteins nur noch ein kleiner 8-Pin-Microcontroller des Typs "ATTINY45" zum Einsatz kommen sollte. Das zugehörige Schaltbild zeigt Abb.1. Wie man hier erkennt, verbleiben zur Auslösung unterschiedlicher Funktionen nur zwei nutzbare Prozessorports.


Abb.1  DDS-Minimalversion

Sie gilt es, möglichst sinnvoll zu nutzen, wofür sich mehrere Möglichkeiten anbieten:

1.) Verwendung von "PB3" und "PB4" als Eingänge zum Schalten von bis zu 4 Festfrequenzen ( binär codiert )

2.) Verwendung von "PB3" ODER "PB4" als Analogeingang. Unter Verwendung des prozessorinternen 10Bit-AD-Wandlers erzeugt die z.B. vom Schleifer eines Potentiometers abgenommene 0 bis +5V-Gleichspannung Variablenwerte zwischen 0 und 1024. Nach geeigneter Teilung können diese benutzt werden um daraus entweder
a.) mehrere frei gewählte und im Programmcode fest abgelegte DDS-Ausgangsfrequenzen zu generieren.
oder
b.) beginnend von einer vorgegebenen Startfrequenz in einem festen Kanalraster liegend kalkulierte DDS-Ausgangsfrequenzen zu generieren.

3.) Verwendung von "PB3" und "PB4" zum Anschluss eines Increment- bzw. Drehencoders ( rotary encoder ) zur Frequenzfeinabstimmung in vorgegebenen Schritten.

4.) Erweiterte Betriebsmöglichkeiten würden sich erschliessen, wenn es gelänge, noch einen zusätzlichen Prozessor-Port zu aktivieren. Durch Setzen der Fuse "RSTDISBL" ist das auch grundsätzlich möglich, wobei der derzeitige RST-Anschluss ( Pin1 ) als Port "PB5" aktiviert wird. Mit dieser Massnahme ist allerdings der Nachteil verbunden, dass die sog. "In Circuit Programmierung" ( ICSP ) anschliessend nicht mehr möglich ist und fortan nur noch die Nutzung eines geeigneten Hochvolt-Programmers verbleibt. Erschwert werden damit ggf. notwenig werdende Änderungen am Programmcode. Wurde Port "PB5" aber dennoch auf beschriebene Weise aktiviert, so kann man die Lösungswege 2.) und 3.) kombinieren und damit eine Feinabstimmung rund um mehrere mit einem Poti aufrufbare Festfrequenzen realisieren.

NACHBAU

Hier zum Herunterladen die BASCOM-Quellcodes der Einkanal-Basisversion. Erweiterungen können nach Bedarf erfolgen

Um die beim BASCOM-Kompilieren erzeugten HEX-Files in ATTINY-Processoren übertragen zu können, verwende ich z.B. einen USB-ICSP-Programmierstick nach [8]. Von den Seiten der gleichen Firma kann auch die dazu passende Windows-Software heruntergeladen werden kann. 


Abb.2   ICSP-Programmieradapter

Mithilfe eines 6pol. Wannensteckers und einer 8pol. DIL-IC-Fassung wurde zudem ein kleiner Adapter gem. Abb.2 aufgebaut. Nach Verbindung mit dem Progammierstick kann er zur ICSP-Programmierung von zeitweise in die DIL-Fassung gesteckten ATTINY-Prozessoren benutzt werden.

LINKLISTE

[1] http://www.kh-gps.de/dds.htm
[2] http://www.kh-gps.de/bascom_arduino.htm
[3] http://www.pongrance.com/DDS-9850.html
[4] http://www.pongrance.com/DDS-9850-exp-manual.pdf
[5] http://www.g4jnt.com/AD9850-Controller.zip
[6] http://ja9ttt.blogspot.de/2012/01/ad985051-dds-control-part2.html
[7] http://www.multiforum.se/afu/index.php?mforum=afu
[8] http://shop.myavr.de/index.php?sp=article.sp.php&artID=200006

E-Mail contact via: