Elektronisch steuerbarer Oszillator

Gast #3083592
Lesenswert?

Hallo,

ich möchte einen Oszillator bauen, den ich mit meinem AVR steuern kann.
Ich habe nur keinen blassen Schimmer, wie ich das machen soll.
Es ist egal, in welchem Frequenzbereich der Oszillator liegt, ich möchte 
nur ein bisschen rumprobieren. 25, 50, oder 100khz Raster ist auch in 
Ordnung.


Greetz, HFfreak

P.S.: Super wäre auch eine Erklärung der Schaltung.
#3083620
Lesenswert?

HFfreak schrieb:

> ich möchte einen Oszillator bauen, den ich mit meinem AVR steuern kann.
> Ich habe nur keinen blassen Schimmer, wie ich das machen soll.
> Es ist egal, in welchem Frequenzbereich der Oszillator liegt, ich möchte
> nur ein bisschen rumprobieren. 25, 50, oder 100khz Raster ist auch in
> Ordnung.

Also ein DDS-Generator? Dann solltest Du danach googlen, bzw. die
Suchfunktion des Forums nutzen.
Gruss
Harald
Persönliche Seite #3083630
Lesenswert?

HFfreak schrieb:
> ich möchte einen Oszillator bauen,

Welche Wellenform?

- Sinus
- Dreieck
- Sägezahn
- Rechteck (am einfachsten!)

> den ich mit meinem AVR steuern kann.

>25, 50, oder 100khz Raster ist auch in Ordnung.

Wenn dir ein Rechteck am Ausgang reicht, kannst du das Ganze mit einem 
AVR in Minimalbeschaltung realisieren, indem du den integrierten 
Timer benutzt.
Gast #3083643
Lesenswert?

HFfreak schrieb:
> Hallo,
>
> ich möchte einen Oszillator bauen, den ich mit meinem AVR steuern kann.
> Ich habe nur keinen blassen Schimmer, wie ich das machen soll.
> Es ist egal, in welchem Frequenzbereich der Oszillator liegt, ich möchte
> nur ein bisschen rumprobieren. 25, 50, oder 100khz Raster ist auch in
> Ordnung.
>
>
> Greetz, HFfreak
>
> P.S.: Super wäre auch eine Erklärung der Schaltung.

Na servas... und nun suchst Du einen Privatlehrer hier in diesem 
Forum, der Dir
- die Schaltung sucht
- erklärt
- und auch für Rückfragen zur Verfügung stehen soll?

Nicht schlecht, dieser Anspruch..... Naja, was zahlst Du für die 
öffentliche Lehrstunde?

Oder hast Du eh schon die üblichen Varianten wie DSS, VCO oder was sonst 
noch so zur Verfügung steht mittels der Suchmaschine Deines geringsten 
Mißtrauens abgesucht und hast nix gefunden, was dir weiterhilft? Wenn 
das so ist - was hast Du gefunden und warum taugt es nicht für Dein 
bischen rumprobieren?

Du könntest Dir jedenfalls zuerst einmal die AN14 von Linear Technology 
zu Gemüte führen. Die beantwortet Deine Frage zwar nicht vollständig, 
ist aber dennoch eine elegante und schöne Versammlung von Schaltungen, 
wie einstellbare Oszillatoren gebaut werden können....


Grüße

MiWi
Gast #3083892
Lesenswert?

HFfreak schrieb:
> Ich habschon ein paar mal gegoogelt. Da bekomme ich n Und ich brauche
> ein Sinussignal.ur Patentdokumente.

Aha. was stören Dich Patente? solange Du damit nicht in Serie gehst und 
die Teile verkaufst ist das vollkommen egal. Vor allem wenn Du eh nur 
"rumprobieren" willst.

Hier im Forum gibts viel, suche hier.

Und nochmals: lies die AN14 von Linear Technology. Oder eine der vielen 
ANs von Analog Devices zu deren DDS-Chips. Über die unzähligen anderen 
Möglichkeiten im Netz gute Quellen zu AVR-gesteuerten Sinusgeneratoren 
zu finden will ich gar nicht weiterschreiben.

Weil die Arbeit des Lernens kann Dir niemand abnehmen. Und da sind die 
og. Quellen eine große Hilfe um danach besser Fragen zu stellen.

Grüße

MiWi
Gast #3085012
Lesenswert?

Da gibt es so einen Algorythmus um das Frequenzsteuerwort für die 
Register zu berechnen, oder so. Im Tutorial 
http://www.youtube.com/watch?v=1Cd60S-81Qs so bei 7:50 sagt der, wie man 
das berechnet und hier wird das auch noch mal erklärt 
http://webshed.org/wiki/AD9850_Arduino

Ich checks aber einfach nicht. Ich möchte im Endprogramm mit einem 
Drehimpulsgeber und meinem Arduino durch drehen die Frequenz im 25hz 
Raster eingeben. Ich raffs aber einfach nicht, wie das jetzt mit der 
Umrechnung einer Frequenz in die Register funktioniert :'( Ich werde die 
Platine übrgends seriell ansteuern.
Gast #3085021
Lesenswert?

Aber die Funktionsweise eines DDS ist schon klar? Weshalb man welchen 
wert bei jedem clock hinzuzaehlen muss ist auch klar? die kommunikation 
zum DDS ist auch klar?

Das Datenblatt schon angeschaut? Ich zieh mir eigentlich eher ein 
Datenblatt rein, und kein Viedo von UTube
Gast #3085024
Lesenswert?

Sorry wegen Doppelpost.

In den Code-Examples steht

unsigned long tuning_word = (frequency * pow(2, 32)) / DDS_CLOCK;

kann ich also unter der Variablen "frequency" eine beliebige Frequenz in 
MHZ mit Nachkommastellen [!!!] festlegen, der dann unter dem long 
"tuning_word" abgelegt wird, den ich dann mit ?!
Gast #3085027
Lesenswert?

Huch, da war einer schneller, als ich schreiben kann ;)

Die serielle und parallele Kommunikation zum DDS und bei welcher Flanke 
was gesendet werden muss, ist mir klar. Datenblatt hab ich schon 5x 
gelesen. Das Utube Video hat mich nur auf diese Platine gebracht.
#3085053
Lesenswert?

Hallo HFfreak

Das ist seine Aussage:
Fout (MHz) = X * 125 MHz / 2^32;

Umgestellt nach X:
X = (Fout MHz) * 2^32 / (125 MHz)

X:    Inhalt des Steuerregisters
2^32: größte mit dem Steuerregister darstellbare Zahl
Fout: Ausgangsfrequenz

Jetzt gibt es ein Problem, das Zwischenergebnis wird größer als in eine 
Long-Variable passt. Float hat nur 7 relevante Dezimal-Stellen und es 
geht Auflösung verloren.

Dafür gibt es einige Lösungswege, die hier im Forum schon diskutiert 
wurden. Einfach mal danach suchen.
Gast #3085058
Lesenswert?

HFfreak schrieb:
> Ich nehme jetzt das:
>
> Ebay-Artikel Nr. 230903304354
>
> Ich komme nur mit der Steuerwortberechnung nicht zurecht. Das verstehe
> ich einfach nicht.

ein steuer-ic für AD9850 gibts auch schon fertig bei der bucht, heißt 
SAD504:

http://www.ebay.de/itm/SAD504-Steuer-IC-fur-AD9850-Modul-DDS-Funktionsgenerator-und-LCD-Anzeige-/310624875218?pt=LH_DefaultDomain_77&hash=item4852af72d2
Gast #3085067
Lesenswert?

@smiley46

vielen Dank! Kann ich denn im Programmcode eine Mhz-Zahl mit 
Kommastellen verwenden? Ich denke ja. Beispiel: 4,68Mhz
Das mit der Auflösung; ist das nicht eher unrelevant? Um welche Feinheit 
handelt es sich denn und, wann bzw., wie macht diese sich negativ 
bemerkbar?

@flo

Der Chip ist mir auch schon in den Sinn gekommen. Hat aber zu wenig 
Features. Ich will mit meinem Arduino etwas machen.
#3085085
Lesenswert?

> Das mit der Auflösung; ist das nicht eher unrelevant?

Möglicherweise würde das für die 25 Hz Auflösung sogar reichen. Bei 
kleineren Frequenzen wird die Auflösung auch besser.

Für viele Anwendungen reicht das aber nicht. Warum willst Du Dich 
einschränken, wenn es schon fertige Lösungen dafür gibt?
Gast #3085093
Lesenswert?

Und wenn ich zum Beispiel das Steuerwort für 10Mhz haben will, muss ich 
duch

10 * 2^32 / 125 = 343597383,7

rechnen? Das ist ja in dezimal. Für das Register brauche ich doch 
binärcode, oder? Wenn ich das in binär umwandele, kommt 
"10100011110101110000101000" raus. Für die Frequenzsteuerung brauche ich 
doch 32 Bits? (W0 bis W31)
Der Binärcode hat aber nur 26 Stellen?! Was mache ich dann?

Ich möchte selbst einen kleinen Prüfsender bauen und möchte eine 
einstellbare Trägerfrequenz haben.
#3085247
Lesenswert?

> = 343597383,7
> das in binär umwandele, kommt "10100011110101110000101000" raus.

Ich krieg zu Fuß das raus:
343597383 = 0x147AE147 = 0001 0100  0111 1010  1110 0001  0100 0111

Aber Du möchtest eine feinere Auflösung:

10.000.000 * 2^32 / 125.000.000 =
10.000.025 * 2^32 / 125.000.000 =

oder:

(10.000.000/25) * 2^32 / (125.000.000/25)
(10.000.000/25) * 2^32 / 5.000.000

oder mit 8ppm Fehler:

(10.000.000/25) * 859 = 343.600.000
(10.000.025/25) * 859 = 343.600.859

Auf diese Weise ist noch keine Float Bibliothek notwendig. 
Wahrscheinlich hat der Oszillator schon einen größeren Fehler als 8ppm.
Gast #3085699
Lesenswert?

flo schrieb:
> ein steuer-ic für AD9850 gibts auch schon fertig bei der bucht, heißt
> SAD504:

"Was "für ein Ding" ist das denn? Ein Datenblatt dafür kann ich nicht 
finden...

...hat da vielleicht jemand etwas Firmware in einen 28poligen Controller 
gegossen, auf den Phantasienamen SAD504 getauft, und verkauft das jetzt 
als Spezialllösung?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren