(Kleine) Spielerei

mit dem DDS Chip AD9850


Features:

  • Frequenzerzeugung (Sinus)
  • Arduino Duemnilanove oder UNO
  • eine kleine Demo mit
  • dem DDS Chip AD9850

Bild 1: Viel Aufwand braucht es nicht, um mit dem Arduino und einem DDS-Chip Sinussignale zu erzeugen.

(Kleine) Spielerei mit Arduino

…und dem AD9850-DDS-Chip

Das Arduino-Projekt erlebte in den letzten Jahren einen regelrechten Siegeszug. Der Grund liegt sicherlich in der leichten Handhabung, den zahlreichen Bibliotheken und der Programmierung, so dass auch Programmieranfänger dank steiler Lernkurve bald zu brauchbaren Lösungen gelangen. Meist reicht es aus, bestehende Programme etwas zu modifizieren. Da wundert es nur wenig, dass es zur nachmittäglichen Sonntagsspielerei mit dem DDS-Chip nur einiger Kabel und wenige Zeilen Arduino-Codes bedarf.

Die meiste Programmierarbeit haben andere bereits in Form einer Arduino-Library (Programmbibliothek) für den AD9850-Chip erledigt und unter [1] bereit gestellt. Diese Bibliothek von Programmfunktionen stellt leistungsfähigen Quellcode bereit, um den DDS-Chip zu initialisieren und Frequenzen zu erzeugen. Die Bibliothek entstammt einem AD9850-Shield mit der Bezeichnung AH_AD9850. Als Hardware dient hier ein Arduino Duemilanove und - nicht der Shield (also eine Aufsteckplatine) - sondern die praktische Filterplatine aus dem DL1DBR-Sinusgenerator (siehe Artikel hier im Heft) und die Trägerplatine mit dem DDS-IC (Bild 1). Dazu musste man die Programmbibliothek nicht einmal anpassen.


Bild 2: Wenige Zeilen Programmcode erzeugen Sinussignale unterschiedlicher Frequenzen in einer Programmschleife.

Bild 2 zeigt die wenigen Zeilen des Programms, um den DDS-Chip (auf dem von E-Bay bezogenen Breakout-Board) zu initialisieren und in einer Schleife Frequenzen von eins, zwei, drei und vier kHz zu erzeugen. Es ist natürlich jede andere Frequenz bis zu 40 MHz möglich, anzugeben in Hertz.

Zunächst wird jedoch über Define-Befehle festgelegt, welche Arduino-Pins zum Datentransfer mit dem DDS-IC benutzt werden. Es werden die Pins 6 bis 9 des Arduino mit dem AD9850 verbunden. Hinzu kommen zwei Kabel für die Spannungsversorgung von 5 Volt und Masse.

Damit jeder sieht, dass der Prozessor arbeitet, wird in der Programmschleife (loop()) die Leuchtdiode auf der Arduino-Platine (Pin 13) blinken. Mit dem Befehl, der vor dem Setup()-Befehl steht, teilt man der Programmbibliothek die Pinbelegung mit. Dann folgt das Setup(). Hier wird der Pin für die LED auf Output geschaltet und der AD9850 initialisiert, also auf den Betrieb vorbereitet.

In der Schleife (loop()) wird jeweils eine gewünschte Frequenz übertragen, fünf Sekunden gewartet und die nächste Frequenz bestimmt. Am Ende der Schleife beginnt es von vorn, solange, bis der Strom abgeschaltet wird. Darauf aufbauend fällt es nicht schwer, das Programm eigenen Wünschen entsprechend zu erweiten.


Bild 3: Um mit der Bibliothek arbeiten zu können, wird sie zuerst in die Arduino-Entwicklungsumgebung integriert.

Bibliothek einbinden

Damit die AD9850-Bibliothek in der Arduino-Entwicklungsumgebung nutzbar ist, muss sie darin integriert werden. Kopieren Sie dazu den Ordner AD9850 aus dem Downloadfilein das Verzeichnis libraries ihrer Arduino-Installation. In der Regel dürfte das beispielsweise unter Windows der Ordner C:\Programme\Arduino…\libraries sein. Nun die Entwicklungsumgebung starten und das Arduino-Programm laden, starten und kompilieren. Es ist im Menü Datei / Beispiele zu finden.

Das Arduino-Konzept beweist wieder einmal, dass man mit Elektronik auf leichtem Weg und mit wenig Aufwand eine Menge interessanter Dinge realisieren und dabei Spaß haben kann. Interessant ist es auch, den Sourcecode der Bibliotheken zu betrachten, um daraus zu lernen. Weil diese Bibliothek recht klein ist, fällt es in diesem Fall besonders leicht zu verstehen, was "hinter den Kulissen" passiert. Und wann nehmen Sie ihren Arduino zur Hand? Weitere Anregungen zum Thema gibt die unter [1] angegebene Webseite.

[1] AD9850-Library für Arduino: http://www.arduino.alhin.de/index.php?n=67


Download von Dateien zu diesem Projekt

Arduino-Programm (Sketch) und die Arduino-Programmbibliothek für den AD9850 stehen zum Download bereit. Und hier geht es zum Download.

sh2014