AD9833 (Programmierbarer Wellenformgenerator) 1 Controller mit AVR
Einführung
Es gibt so viele Projekte, um einen AD9833 zu verwenden. Dies ist eines solcher Projekte. Im Vergleich zu anderen Projekten ist dieses viel kleiner und viel billiger, weil ich einen AVR (statt Arduino usw.) verwendet habe. Sie steuern den AD9833 über eine serielle Schnittstelle. Das ist sowohl ein Vorteil als auch ein Nachteil. Zumindest ist es ein großer Vorteil für Leute wie mich, die fast alles über ein Terminal machen wollen. Natürlich weiß ich: solche Leute sind in der Minderheit ;-)
Wenn Sie einen Standalone-Controller suchen, sehen Sie zum Beispiel:
-
DIY Function/Waveform Generator von GreatScottLab
-
How to Build Your Own Function Generator Using Analog Devices' AD9833 von Cezar Chirila
(und viele andere Projekte.)
Anforderungen
-
AD9833-Platine (siehe Foto)
-
AVR mit 4 KB oder mehr Flash.
-
USB-Seriell-Karte
Geprüfte AVRs
-
ATtiny85
-
ATmega8
-
ATmega328P
Wie man kompiliert
-
editieren Sie
config.h -
editieren Sie
Makefile(insbesondere den Gerätenamen und die Einstellungen des Brenners) -
make -
make flash
Wie zu verwenden
Sie können den AD9833 über eine serielle Konsole steuern.
Versuchen Sie h oder ?, um Hilfemeldungen zu sehen (wenn Sie das Programm mit USE_HELP kompiliert haben).
Grundlegende Befehle
Bei allen Befehlen wird die Groß-/Kleinschreibung nicht beachtet.
- [Zahl]
-
Frequenz (in Hz). Um eine Frequenz anzugeben, können Sie die folgenden Notationen verwenden:
-
100
-
10k
-
1.5k
-
1k5 (= 1,5k)
-
2M
-
-
S -
Sinuswelle
-
T -
Dreieckswelle
-
Q -
Rechteckwelle
-
RESET -
Reset an den wAD9833 senden
-
H,? -
Hilfemeldung anzeigen
EEPROM (muss mit USE_EEPROM kompiliert werden)
-
SAVE -
aktuelle Register in EEPROM speichern. Der AVR lädt die gespeicherten Werte beim Reset (wenn gespeicherte Daten im EEPROM vorhanden sind). Mit anderen Worten, nachdem Sie die Register gespeichert haben, müssen Sie nicht die USB-Seriell-Karte anzuschließen, solange Sie den AD9833 mit der Frequenz und der Wellenform verwenden.
-
LOAD -
lädt die gespeicherten Werte.
-
ERASE -
Löschen der gespeicherten Werte.
Beispiel
$ dterm /dev/ttyUSB0 4800
AD9833 CONTROLLER VERSION 1.0
h # <--- Hilfemeldung
Usage (case insensitive):
[freq]: set frequency
e.g.: 100 10k 1.5k 1k5 (= 1.5k) 2M
S: sine wave
T: triangle wave
Q: square wave
RESET: send reset to AD9833
SAVE: save current registers
LOAD: restore saved registers
ERASE: erase saved registers
H, ?: help
t # <--- Dreieckswelle auswählen
25k # <--- Frequenz einstellen (25 kHz)
Example: output of AD9833 (triangle wave, 25 kHz)
Analog Devices: AD9833 Datasheet and Product Info
