Forum: HF, Funk und Felder Elektronisch steuerbarer Oszillator


von HFfreak (Gast)


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.

von Harald W. (wilhelms)


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

von Magnus M. (magnetus) Benutzerseite


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.

von MiWi (Gast)


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

von HFfreak (Gast)


Lesenswert?

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

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

HFfreak schrieb:
> Und ich brauche ein Sinussignal.

Ein Ansatz auf die Schnelle:  Klangerzeugung
                              ^^^^^^^^^^^^^^
                                anklicken

von Uwe (de0508)


Lesenswert?

Schau mal nach
DDS AD9834 bei QRPProject.de in der UNIDDS zu finden.
DDS, Platinen etc. gibt es immer auch einzeln.

von B e r n d W. (smiley46)


Lesenswert?


von MiWi (Gast)


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

von HFfreak (Gast)


Lesenswert?

Ich nehme jetzt das:

http://www.ebay.de/itm/AD9850-DDS-Signal-Generator-Modul-Module-0-40MHz-Test-Equipment-neu-/230903304354?pt=Mess_Pr%C3%BCftechnik&hash=item35c2e8d0a2

Ich komme nur mit der Steuerwortberechnung nicht zurecht. Das verstehe 
ich einfach nicht.

von B e r n d W. (smiley46)


Lesenswert?

> Das verstehe ich einfach nicht.

Was genau verstehst Du nicht?

von HFfreak (Gast)


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.

von i-Troll (Gast)


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

von HFfreak (Gast)


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 ?!

von HFfreak (Gast)


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.

von B e r n d W. (smiley46)


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.

von flo (Gast)


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

von HFfreak (Gast)


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.

von B e r n d W. (smiley46)


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?

von HFfreak (Gast)


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.

von B e r n d W. (smiley46)


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.

von Robert K. (Gast)


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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.