はっくはっくキッチン
Hack Hack Kitchen

AD9833 Controller mit AVR

 2021/05/24

AD9833 (Programmierbarer Wellenformgenerator) 1 Controller mit AVR

AD9833 Controller board with USB interface converter
AD9833 Controller board with USB interface converter

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 ;-)

AD9833 Controller board
AD9833 Controller board

Wenn Sie einen Standalone-Controller suchen, sehen Sie zum Beispiel:

(und viele andere Projekte.)

Anforderungen

  • AD9833-Platine (siehe Foto)

  • AVR mit 4 KB oder mehr Flash.

  • USB-Seriell-Karte

Schaltplan

./ad9833ctrl-sch-thumb.png
Schematic of AD9833 Controller (click to enlarge)

Geprüfte AVRs

  • ATtiny85

  • ATmega8

  • ATmega328P

Wie man kompiliert

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

Example: output of AD9833 (triangle wave, 25 kHz)