Arduino DDS Signal Generator, empfehlenswert?

Hallo Leute,

Hatte eine Diskussion in s.e.design und ein Daene brachte als Alternative zu meinem Fund diesen interessanten DDS Oszillator:

formatting link

Hat fast alles was ich braeuchte und ich wusste gar nicht dass es aus China solche OpenSource Projekte gibt. Dann aber ein Wermutstropfen:

formatting link

Zitat "Minor frequency instability,...". Wenn das nur wegen des Schaltreglers waere (MC34063 mit offener Spule ... wuerg) koennte ich den raussezieren und durch etwas gescheites ersetzen. Wenn es aber ein vergeigtes Layout ist dann waere u.U. Ende der Fahnenstange.

Ich brauche fuer eine Versuchsanlage was spektral sauberes im Bereich

10kHz bis 1MHz, programmierbar, lokal einstellbar, bisschen Power dahinter (so 2Vrms in 50ohm Last). In s.e.design scheint sonst niemand dieses Modul zu kennen, hat von Euch schonmal jemand davon gehoert?

Ich hatte vorher diesen im Auge, aber da gibt es so gut wie nix an Unterlagen zu, und ebenfalls etwas negativen Kommentar:

formatting link

--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg
Loading thread data ...

Am 03.02.2013 22:19, schrieb Joerg:

Ebay 230903304354 oder ähnliche nehmen, sind nur 40 Bit Controlword um die Frequenz seriell reinzuschieben. Die Endstufe sollte für dich kein Problem sein, habe ein Tüte voll hier auf Vorrat :-)

Butzo

Reply to
Klaus Butzmann

Wuerde ich normalerweise auch so tun. Allerdings brauche ich ein Display und lokale Frequenzeinstellung mit Drehknopf. Das wird dann eine laengere Bastelei. In der Kiste muss schon so viel anderer Kram gebaut werden, da wollte ich beim DDS diesmal einen auf dekadent machen.

--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg

Ich habe da auch mal welche von ins Regal gelegt.

Das ist genau das Modul, von dem ich Dir neulich geschrieben hatte ;-)

Wäre eventuell dies hier eine Alternative?

formatting link

War mir neulich über den Weg gelaufen, als ich das L/C Meter LC200A geordert hatte.

73 de Tom
--
DL7BJ * DL-QRP-AG #1186 * DARC  OV I19 * FISTS #15933 * ARRL 
http://www.dl7bj.de                https://twitter.com/dl7bj
Reply to
Thomas 'Tom' Malkus

Joerg wrote:>

Was für Features brauchst du denn? Kommt mir etwas teuer vor nur für eine nakte Arduino Platine mit ein paar Extras und billigem Display. Aber die Arduino-IDE ist auch für Nicht-Programmierer recht einfach, wenn du z.B. einfache Logiken in Abhängigkeit von Eingangssignalen umsetzen willst, daher je nach Anforderung vielleicht nicht schlecht.

Ich habe den hier:

formatting link

Hat auch eine serielle Schnittstelle, womit man beliebige Signalformen, und Frequenzen für die festen Signalformen programmieren kann, habe ich bis jetzt aber noch nicht gebraucht. Schön ist der große Raster-Knopf zum Einstellen. Dreht man langsam, wird fein geregelt (in 1 Promille-Schritten) und in größeren Abständen je schneller man dreht. Recht praktisch, wenn man mal was testet. Und man kann per Taster jeweils *10, /10 einstellen.

Hier mal zwei Beispiele:

2,7 MHz Rechteck:

formatting link

110 kHz Sinus:

formatting link

Bei der überlagerten FFT sieht man einen Spike bei ca. 107 MHz bis auf ca. -58 dBV (bei 5 Vpp Amplitude). Ist vielleicht mein Testaufbau, aber vielleicht ist das auch die interne Samplerate. Habe hier sonst nichts Gutes zum Messen, aber ansonsten scheint die Frequenz und Wellenform recht stabil zu sein.

Wobei ich lese gerade du willst das einbauen. Müsste ich mal aufmachen, wieviel da drin ist. Ist doch schon recht groß die Kiste, wenn du das nicht einfach wo mit draufstellen kannst.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Dachte ich mir schon irgendwie, wusste aber nicht mehr genau wer es war und wann. Meintest Du auch das Arduino DDS Modul? Weisst Du ob das Leute schon mal fuer SSB oder CW Funkgeraete eingesetzt haben? Denn dann waere es spektral sauber genug fuer meinen Aufbau.

formatting link

hatte.

Wenn das Display Deutsch parlierte waere es kein Problem. Aber es hat keinen Encoder fuer die Frequenzeinstelung und das waere recht wichtig.

--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Das ist fuer mich ziemlich wichtig :-)

Wobei spaeter schon SW-Arbeiten anfallen und die muessen wohl bei mir im Labor geschehen. Aber hier ist jemand in der Naehe der ein SW-Ingenieurbuero hat (und eine Pferdezucht).

Wichtig waere dass es keinen Jitter oder solche Sperenzchen veranstaltet und leider gab es da im Web nicht nur positives. Deshalb meine Frage ob hier jemand was in Richtung Funk damit gemacht hat.

Schoen beim Arduino DDS ist auch die serielle Schinttstelle, da muss man keinen Hack hinter einem FTDI Chip machen.

Ich muss das u.U. mal aus einer SCADA Software heraus steuern, abhaengig von AD-gewandelten Signalen. Kriege ich vermutlich selbst hin, solange das maschinennah ist und nicht in die hoeheren Weihen von C steigt.

formatting link

Sowas aehnliches habe ich auch, von Mastech. Dieser Bereich scheint inzwischen recht fest in chinesischer Hand zu sein.

Manchmal wundert man sich. Habe mal ein chinesisches Tischmultimeter aufgemacht. Eine Platine hinter der Frontplatte, ganz weit hinten einsam und verlassen ein Trafo, sonst bestand der Innenteil zu ueber 90% aus Luft. Unten drin noch eine Stahlplatte ohne Funktion, vermutlich damit sich's bei Anheben schoen schwer und teuer anfuehlt. Das neue Fluke hingegen ist proppevoll, aber das ist auch ein ganz anderes Kaliber.

--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg

"Joerg" schrieb im Newsbeitrag news: snipped-for-privacy@mid.individual.net...

Arduino ist doch was für Kunststudenten, die lieber "sketchen" statt programmieren...

Duck und weg...

Chregu

Reply to
Christian Müller

Da wird der AD9833 eingesetzt und weitere Op Amps von Analog Devices. Ich kann den Analogteil in der Schaltung zwar nicht beurteilen, aber generell ist es ja nicht allzu teuer. Kannst doch einfach mal einen kaufen und ausmessen, nachdem du den zu heiß werdenden Negativ-Spannungsregler ausgetauscht hast :-)

Also die Arduino Plattform ist das genaue Gegenteil von maschinennah. Aber schaue dir mal die Firmware auf der Webseite an. Die PDE-Datei ist ein Arduino-Sketch und kannst du in einem Texteditor öffnen. So wie das aussieht, ist das die gesamte Firmware, die das System hat, plus die Headerdatei (und bis auf die Arduino Standard Sachen wie Bootloader usw.).

Aber Vorsicht, der Code sieht nicht so gut aus: keine einzige Zeile kommentiert, viele Copy-And-Paste Teile, schlecht strukturiert. Ganz am Ende gibt es die Funktion "Set_DDS", die zum Setzen der Wellenform und Frequenz verwendet wird. Beim Arduino wird die "loop"-Funktion zyklisch in einer Endlosschleife aufgerufen. Da könntest du dann ansetzen und deine eigenen Abfragen und Frequenzänderungen programmieren.

Die Arduino Dokumentation selbst ist recht gut. Hier z.B. ein Testprogramm, um die serielle Schnittstelle zu initialisieren, Bytes zu empfangen und wieder als Dezimalzahl auszugeben:

formatting link

Das ist tatsächlich alles was man braucht. Keine Config-Bits setzen, keine Chip-Register programmieren o.ä. Nur die Sketch-Datei in der IDE öffnen, Compilieren und Upload per Mausklick, fertig. Ist alles ziemlich High-Level und einfach, können sogar Kunststudenten anwenden :-) Nur ein Debugger fehlt bei Arduino leider noch.

Man kann aber auch inline-Assembler verwenden, wenn man möchte. Braucht man aber meist nicht, da intern ein C-Compiler verwendet wird, ist also auch recht schnell.

Die Hardware ist aber generell auch mit AVR Studio oder WinAVR verwendbar, wenn man Arduino nicht mag oder einen Debugger braucht.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Frank Buss ( snipped-for-privacy@frank-buss.de):

Oder mit BASCOM, was für Joerg auch etwas wäre. Ich breche mir mit Arduino immer die Finger. Das ist zwar eigentlich C, aber alles in einem einzigen Quelltext und ich glaube, für diesen einfachen Kram denke ich zu sehr in Registern ;-)

Ich habe auch den Eindruck, dass die Programme recht groß werden, habe es aber nach 2-3 Versuchen auch zu den Akten gelegt. avr-gcc, avrdude und Code::Blocks tun es auch.

73 de Tom
--
DL7BJ * DL-QRP-AG #1186 * DARC  OV I19 * FISTS #15933 * ARRL 
http://www.dl7bj.de                https://twitter.com/dl7bj
Reply to
Thomas 'Tom' Malkus

Alles in einem Quelltext ist nur wie es die Hobby-Programmierer machen :-) Man kann es auch schön übersichtlich in Libraries aufteilen, oder auch einfach per include C Dateien auslagern.

Den Eindruck habe ich eigentlich nicht, da schon die Standard-Library viel bietet, aber ich habe bisher noch nichts mit BASCOM zum Vergleich gemacht.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Nein, ich meinte auch dieses 6? Modul. Das gibt es von diversen Anbietern, nicht nur unter der Artikelnummer, die Klaus gepostet hat.

Ich bin irgendwo über dieses Modul im Zusammenhang mit einem Kurzwellengerät gestolpert. Finde es nur nicht wieder. Jörg, DL8DTL scheint das bereits in Benutzung zu haben:

formatting link
Keine Ahnung, ob er hier noch mitliest.

Dies hier habe ich gerade noch entdeckt:

formatting link

Dort gibt es auch etwas Arduino Code zu dem Modul.

Und noch einer:

formatting link

Mit etwas googeln findet man da massenweise etwas. Einer hat das Teil in seinen alten FT101B als VFO eingesetzt. Vielleicht helfen Dir die Links weiter, da sind ja auch Messungen enthalten.

Wenn man einen Schaltplan hat, könnte man die Software tauschen und einen Drehwertgeber einsetzen. Würde das lange Basteln verkürzen. Du kannst aber auch einfach diesen hier mit einem Arduino Uno oder so nehmen

formatting link

und mit Arduino das DDS Modul ansteuern. Bei obigen Links siehst Du, dass das nur ein paar Zeilen Code sind. Soweit ich weiß, gibt es bei Arduino die Routinen für Drehencoder auch bereits fertig. Musst halt schauen, was da wie zusammen passt, ist ja alles nur ein Steckbaukasten ;-)

73 de Tom
--
DL7BJ * DL-QRP-AG #1186 * DARC  OV I19 * FISTS #15933 * ARRL 
http://www.dl7bj.de                https://twitter.com/dl7bj
Reply to
Thomas 'Tom' Malkus

Das ist C++ und es gibt ein Eclipse-Plugin, das ist dann mal eine vernünftige Grundlage. Ich habe gerade mein erstes Gerät fertigprogrammiert, schön mit verschiedenen Klassen für Display/Tastatur, Remote, Powermanagement, Memory, 64bit-Arithmetik usw.

So etwas habe ich bisher in Assembler gemacht und das sind wirklich Welten - Arduino ist dagegen so bequem und komfortabel wie man es sich nur wünschen kann.

Reply to
Edzard Egberts

Frank Buss ( snipped-for-privacy@frank-buss.de):

Aber mit der "IDE" eher umständlich ;-)

Mit BASCOM habe ich noch nie etwas gemacht, das kann ich nicht vergleichen. Wenn man sich aber bei mikrocontroller.net etwas von dem BASCOM Code anschaut, sieht der nicht gerade schlecht aus, ich meine für einen Einsteiger vom Ver- ständnis her.

Für Arduino gibt es bereits eine Lite Lib:

formatting link

73 de Tom
--
DL7BJ * DL-QRP-AG #1186 * DARC  OV I19 * FISTS #15933 * ARRL 
http://www.dl7bj.de                https://twitter.com/dl7bj
Reply to
Thomas 'Tom' Malkus

Edzard Egberts (ed snipped-for-privacy@tantec.de):

Auf meiner Tastatur ist die plusplus Taste defekt ;-) Hmm, Eclipse Plugin sollte ich mir vielleicht mal anschauen.

CodeBlocks ist allerdings sowas von schnell ...

73 de Tom
--
DL7BJ * DL-QRP-AG #1186 * DARC  OV I19 * FISTS #15933 * ARRL 
http://www.dl7bj.de                https://twitter.com/dl7bj
Reply to
Thomas 'Tom' Malkus

Joerg schrieb:

Hallo,

auch wenn alles ordentlich gemacht ist, wenn mit DDS eine krumme Frequenz (krumm im Verhältnis zur DDS Taktfrequenz) erzeugt werden soll gibt es natürlich ein gewisses Phasenrauschen. Da steht dann die Anzeige eines Frequenzzählers nicht ganz so schön wenn man die Torzeit eher klein gewählt hat. Wenn man dagegen bei 30 MHz DDS Takt einen Sinus mit z.B. 1 MHz erzeugt steht die Anzeige wie eine Eins wenn denn der DDS Takt auch stabil genug ist.

Bye

Reply to
Uwe Hercksen

Das hoffe ich auch dass es nur das ist. Ich habe mal an den daenischen Reviewer geschrieben, sehen was er mit instabil meinte. Mir reicht es wenn ich 200kHz, 201kHz, 202kHz und so weiter einstellen kann.

Ich kann auch notfalls den Tiefpass rausrupfen, ersetzen und dann deutlich weiter unten abfiltern. Oder in Neu-Speak einen Hack machen.

--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg

seinen

sind

Wenn es als VFO zufriedenstellend geht reicht es definitiv. Ich weiss allerdings dass diese DDS Chips an sich sauber genug sind, das ist nicht das Problem. Ich wollte vermeiden LCD Module, Encoder uns alles andere Geraffel selbst ranfriemeln zu muessen (es werden einige Testanlagen, aber keine tausende wo sich ein Layout lohnt). Daher meine Frage ob dieses Komplettmodul ok ist. Denn wenn die Instabilitaet von einem vergeigten Layout kaeme waere das unguenstig.

formatting link

nur

für

passt,

Notfalls mache ich das so, aber dann noch Encoder dranfrickeln und so ... wenn es mit dem fertigen Modul geht waere mir das lieber. Da sind jetzt schon mindestens fuenf Module in der Kiste drin, einige selbstgezimmerte. Wenn ich die Mechanik baue ist es zumindest nicht mehr so kalt in der Garage :-)

--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg

Joerg ( snipped-for-privacy@invalid.invalid):

Ist auf jeden Fall die bequemere Variante, wir werden ja nicht jünger ;-)

73 de Tom

PS: Noch ziemlich frisch, kam gerade die Tage im DL Rundspruch:

formatting link
Ist doch mal erfreulich, dass dieser Trend anhält, zumindest in den USA.

--
DL7BJ * DL-QRP-AG #1186 * DARC  OV I19 * FISTS #15933 * ARRL 
http://www.dl7bj.de                https://twitter.com/dl7bj
Reply to
Thomas 'Tom' Malkus

Joerg schrieb:

Hallo,

bei 200 kHz sollte bei üblichen Taktfrequenzen kein grösseres Phasenrauschen auftreten, bei 201 kHz aber schon eher.

Den vorhandenen Tiefpass kannst Du doch drin lassen wenn Du eh zusätzlich deutlich weiter unten abfiltern willst.

Der Akkumulator in der DDS sollte natürlich genügend Bits haben damit man bei der gegebenen Taktfrequenz auch wirklich 200kHz, 201kHz, 202kHz und so weiter definiert und genügend genau einstellen kann. Aber 32 Bit reichen dafür locker, bei 50 MHz Taktfrequenz und 25 MHz maximaler Signalfrequenz kann man noch Unterschiede von 5,8 mHz einstellen, für

201,00000 oder 201,00001 kHz reicht es ja noch. Nur 16 Bit wären etwas mager, da kann man dann auch bis zu 381 Hz danebenliegen.

Bye

Reply to
Uwe Hercksen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.