Schlagwort-Archive: Frequenzgenerator

#9 Frequenzgenerator mit dem AD9833 DDS und Arduino – Sinus, Dreieck und Rechteck von 1Hz bis einige MHz

Hier stelle ich einen programmierbaren Frequenzgenerator mit dem DDS Baustein AD9833 vor.
Er wird vom Arduino angesteuert und ist über ein Terminal Programm vom PC aus einstellbar für Frequenz und Kurvenform.
Frequenzen: 1Hz bis einige MHz in 1Hz Schritten, quarzgenau
Kurvenformen: Sinus, Dreieck und Rechteck

Von Analog Devices das Datenblatt AD9833 und die Application Note AN-1070.
Dort findet Ihr weitere Infos zum IC und zu der Ansteuerung. Weiterlesen

AD9833 Frequenzgenerator mit dem Arduino programmiert und vermessen

Ich habe einen AD9833 Frequenzgenerator mit dem Arduino programmiert. Er kann Frequenzen von 0 bis zu 12,5MHz und die Kurvenformen Sinus, Dreieck und Rechteck ausgeben.

Hier das AD9833 Datenblatt und für die praktische Anwendung die Application Note AN-1070 von Analog Devices.

Er wurde mit dem Arduino Uno programmiert.
Die Anschlüsse sind:
Uno – AD9833
5V  > VCC
GND > GND
D6 > FNC
D7 > DAT
D8 > CLK

Und hier das Arduino Programm: Weiterlesen

Den ADF4351 Frequenzgenerator 35MHz bis 4,4GHz vom Arduino Uno ansteuern

Mit dem AFD4351 von Analog Devices lassen sich Frequenzen von 35 MHz bis 4,4 GHz erzeugen. Er ist digital vom Arduino ansteuerbar. Die Frequenz und Ausgangsleistung kann eingestellt werden. Damit ist er prima als Synthesizer zur Frequenzerzeugung geeignet.

Der interne VCO erzeugt 2,2 – 4,4 GHz und ist PLL gesteuert stabil. Diese Frequenzen können direkt als Sinus ausgegeben werden. Die Frequenzen darunter werden über digitale Frequenzteiler erzeugt, das heißt es werden Rechteck Signale ausgegeben mit den entsprechenden Oberwellen nach der Fourier Reihe.

Vom PC ist das Programm über die serielle Ausgabe steuerbar. Mit der Eingabe von h im Seriellen Monitor des Arduino Programms oder einem anderen Terminal Programm gibt es die Hilfe für die akzeptierten Steuerbefehle. Weiterlesen

Ein simpler Rechteckgenerator mit dem Arduino

Mit der Arduino tone() Anweisung lassen sich Töne / Rechteckfrequenzen auf einem beliebigen digitalen Pin ausgeben. Damit ist es sehr einfach einen Rechteckgenerator zu realisieren.

// Simpler Rechteckgenerator an Pin 10
//
// Matthias Busse Version 1.0

unsigned int frequenz=10000;

void setup() {
  tone(10,frequenz);
}

void loop() {
}

Es lassen sich Frequenzen von 31 Hz bis 65535 Hz erzeugen. Weiterlesen

Der Frequenzgenerator und Frequenzzähler

Ich habe mit einem wahren Kabelgrab den Rechteckgenerator LTC1799 an mein 5V Netzteil mit einem 7805 angeschlossen.

Dem Rechteckausgang habe ich zu etwas mehr Leistung verholfen mit einem 7400 IC bei dem alle 4 NAND parallel geschaltet sind und so für einen niedrigen Ausgangswiderstand sorgen.

Diese Ausgangs Rechteckfrequenz geht auf meinen neuen Arduino Nano USB. Hier wird die Frequenz ermittelt und auf einem 16×2 LCD Display angezeigt. Die Beschreibung mit dem Uno gibt es hier. Weiterlesen

Ein DDS Sinus Frequenzgenerator einstellbar von 1Hz bis 40MHz mit dem AD9850 und dem Arduino Uno

Mit der fertigen AD 9850 DDS Platine (z.B. von ebay für unter 10 Euro) und dem Arduino Uno lässt sich ziemlich einfach ein einstellbarer Sinus Frequenzgenerator aufbauen. Dieser ist dann durchstimmbar von 1 Hz bis 40 MHz in 1 Hz Schritten. Weiterlesen

Unterschiedliche Signalformen mit dem R2R DA-Wandler ausgeben. Dreieck, Impuls, Sägezahn direkt mit dem Arduino Uno.

Hier werden Sägezahn Kurven mit steigender und mit fallender Flanke erzeugt, eine Dreieckskurve und eine Impulsausgabe mit ggf. einer langen Auszeit. Es werden der Arduino Uno und der 4-bit DA-Wandler verwendet.

Wie im vorherigen Artikel beschrieben wird das byte Feld mit Werten beschrieben.

Wenn nun eine Sägezahnspannung mit kontinuierlich steigender Flanke ausgegeben werden soll, kann folgendes Feld mit 16 Stützwerten verwendet werden.

Weiterlesen

Ein Sinus Signal mit dem R2R DA-Wandler am Arduino Uno ausgeben.

Ein Sinus Signal wird mit dem DA Wandler erzeugt und ausgegeben.

Dazu werden als erstes die Sinus Stützwerte berechnet. Für schnelle Frequenzen müssen wir wenig Stützwerte verwenden. Wenn die Frequenz niedriger wird, können mehr Stützwerte genommen werden.

Bei dem 4-Bit DA-Wandler sind 16 Ausgangsspannungen einstellbar, von 0 bis 15 Binär.
Das entspricht einer Spannung von 0 bis 4,7V. Weiterlesen

Ein Rechtecksignal mit hoher Frequenz direkt aus dem Arduino Uno ausgeben

Mit der schon vorher besprochenen Funktion lassen sich hohe Rechteck Frequenzen erreichen.

while(k==10) {
  PORTB=B00111100; // 15
  asm("nop\n nop\n");
  PORTB=B00000000; // 0
}

Weiterlesen

Ein Rechteck Signal mit einstellbarer Frequenz ausgeben

Nachdem ich nun die Obergrenze des Rechtecksignals getestet habe, will ich mir jetzt mal die unteren Frequenzen ansehen. Da bieten sich die delay(ms) und delayMicroseconds(us) Funktionen an.

Ein Prozessortakt dauert bei 16 MHz Takt 62,5 Nano Sekunden. Meine while schleife mit den nops und Portausgaben benötigt 6 Takte. delayMicroseconds() lässt sich in 1 Mikrosekunden Stufen einstellen bis hin zu 16383, was hier einer Frequenz von ca. 31 Hz entspricht. Weiterlesen