-
-
Erfahrener Benutzer
Robotik Visionär
So schlecht ist die ursprüngliche Idee nicht. Bei vernünftiger Abschirmung sollte es gehen. Als kleine Abweichung sollte man eventuell den PLL nur von 4-16 MHz nutzen und dann ggf. einen Teiler durch 4 dahinterschalten.
Die Lösung mit 2 PLLs wird so einfach doch nicht gehen, denn man hat dann die feine Auflösung nicht mehr bei den hohen Frequenzen. Sinnvoll wäre ein 2 ter PLL nur wenn man sonst zu viel Jitter (Phasenrauschen) hat.
Der 2 te PLL wirkt dann nur als Filter für das Phasenrauschen und könnte einfach dahintergeschaltet werden. Sinnvoll ist das aber nur wenn das Signal ohne recht schlecht ist.
Wenn man das mit der Steuerung sonst gut verbinden kann wäre auch die Lösung mit Software DDS und PLL dahinter nicht schlecht.
Eine ähnliche Lösung habe ich aufgebaut, allerdings nicht mit soft-DDS, sondern mit einem Teiler mit Nachkommerstellen. Man hat da etwa 16 Bit Auflösung bei der Frequenz, allerdings nicht linear, sondern stückweise linear in der Periode und dann extra binäre Stufen dazu. Bei mit geht das mit ein HC4046 bis etwas über 20 MHz. Die Kombination mit Software DDS sollte vermutlich sogar etwas besser gehen.
Beim software DDS hat der µC schon viel zu tun, viel zeit für Modulation hat man da kaum. Wäre sicher möglich, aber wohl nicht sehr flexibel. Was man aber sicher hinkriegt sind feinere Schritte, wenn man will. Der Aufwand ist natürlich auch nícht so ohne:
µC , DA Wandler , Filter, Komperator , PLL mit festen Teiler (z.B: 32,64 oder 12.
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo,
ich habe mich gestern etwas über den FLL informiert.
Dabei ist mir eine Idee gekommen:
Wenn ich einen Controller als Regler nehme, einen DAC mit z.B.16Bit Auflösung dahinter schalte, dessen Ausgangsspannung evtl. auf den VCO des 4046 anpasse und die erzeugte Freuqenz dann wiederum mit dem Controller messe, sollte das doch hinhauen.
Damit die Anpassung an eine neue Frequenz nicht so lange dauert(wird als Nachteil beschrieben) könnte man ja bei der Anwahl einer neuen Frequenz einen festen Sollwert (duch eine Funktion im Controller berechnet) auf den DAC geben und die Regelung unterbrechen.
Kurz warten und dann erst die Regelung wieder zuschalten, damit sich die Schaltung auf den eingestellten Wert einregelt.
Probleme seh ich dabei nur beim VCO und der Frequenzmessung.
VCO: Wie reproduzierbar ist eine Frequenz bei einer bestimmten Eingangsspannung ( Temperatur etc.)
Frequenzmessung:
Schafft ein Controller es die geteilte Frequenz enstprechend genau zu messen?
Mit diesen Problemen werde ich mich demnäschst evtl. genauer befassen.
Zur Lösung mit dem DDS und der PLL
Eingentlich wäre hier ja nur ein Controller und ein PLL mit einem festen Teilerverhältnis nötig.
Hier sehe ich die Probleme wieder in der Dimensionierung des Loopfilters, und in der Stufung der Referenzfrequenz.
Kann ein Software DDS genügend fein, mit entsprechend hoher Frequenz arbeiten?
Für beide Möglichkeiten würde ein extra Controller vorgesehen, der nur das ausführt und seine Daten über einen Bus erhält.
Die Steuerung des ganzen (RAM-Verwaltung, Funktionswerte erzeugen und im RAm ablegen etc. ) wird eh sehr aufwendig und daher von einem extra µC übernommen.
Z.z. würde mich der FLL am meisten Reizen, da auch hier die Möglichkeit einer niederfrequenten Modulation besteht.
Hier hängt die Modulation ja eigentlich nur von der Geschwindikeit des DAC und der Regelung ab.
(Wenn man den Sollwert der Frequenz schon ziemlich genau über eine Funktionsvorschrift erzeugen könnte, wäre bei der Modulation, die Regelung sogar fast überflüssig)
mfg Benedikt Lippert
-
Erfahrener Benutzer
Lebende Robotik Legende
Hallo!
@ dreadbrain
Deine Überlegungen über FLL sind richtig. Wenn du genaueren als 10-Bit (1024 Pegel bei PWM) DAC brauchst, dann musst du einen externen nehmen, dann enfällt der Tiefpass und Warten auf die Reaktion. Durch Anwendung von Schieberegister lässt sich die Pinzahl des µCs auf zwei reduzieren.
Laut Datenblatt von 4046 VCO hat eine Stabilität von 0,15 % / K. Bei Bestimmter Spannung und für angenommenem Temperaturbereich sollte sich die Abweichung ausrechnen lassen.
Man kann auch entsprechend die Grenzen für die Frequenz festlegen innerhalb dessen keine Regulation vorgenommen werden soll. Die FLL hat eben den Vorteil, dass für jede Frequenz und bestimmten Temperaturbereich z.B. immer gleiche Toleranz in % für jede Frequenz vorgegeben werden kann, da die Ausgangfrequenz nicht, wie bei PLL, immer gleich der Sollfrequenz seien muss.
Die Auflösung bei Messung der Frequenz ist von Messzeit abhängig. Da der µC wahrscheinlich mit einem Quarz getaktet wird, ist die Frequenz mit seiner Genauigkeit und Stabilität gemessen. Bei 7,3728 MHz Quarz (thermisch stabiltester) habe ich mit PIC Frequenzen bis ca. 80 MHz mit Auflösung +/- 1 Hz und Messzeit 1s stabil gemessen. Bei 0,1 S wird die Auflösung 10 Hz, usw.
Du kannst die Frequenz in entsprechend längerem Zeitraum sogar genauer messen und die Frequenzmodulation eliminieren.
MfG
-
Erfahrener Benutzer
Robotik Visionär
Die Frequenzmessung geht noch deutlich besser als von Picture angegeben. Die 1 Hz Auflösung nach 1 s gelten für das einfache Zählen. Besser geht das, wenn man die Zeit zu den Flanken mißt. Die Frequenz sollte man dazu erstmal auf etwa 10-100 kHz runterteilen. Dann kann man schon nach etwa 10 ms eine relative Auflösung von etwa 1:10^6 erhalten, also etwa das was so ein einfacher Quarz hergibt. Für ein Regelung ist das schon ein ziehmlicher Vorteil, wenn die Frequenzmessung schnell ist. So viel Auflösung wird man kaum satbil auf den VCO übertragen können.
Man muß aber bedenken, das die VCO Lösung ähnlich empfindlich, oder eher noch emfindlcher, auf Störungen ist wie die derekte Lösung mit dem PLL. Eine Regelschleife muß man da auch noch stabil kreigen, was ziehmlich genau den Anforderungen an den PLL Loopfilter entspricht.
Im Prinzip ist der FLL nichts anderes als ein eher schlechter PLL in Software realiert.
Auch mit dem Sotware DDS ist ein sehr gute Frequenzauflösung möglich. Bei der üblichen Form mit 24 Bit Frequenzwert sollte man für das DDS Signal (ca. 10-200 kHz) eine Auflösung von etwa 0,1 Hz bekommen. Wenn man will kann man leicht auch noch mehr Auflösung bekommen, ist aber kaum nötig. Mit einem PLL dahinter, um auf 16 MHz zu kommen, hätte man etwa 10 Hz Auflösung. Das ist ziehmlich sicher besser als die Stabilität die man mit der FLL Lösung erreichen kann. Der Loopfilter für den festen PLL mit moderatem und festen Faktor ist nicht so schwer auszulegen.
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo,
erfordert die FLL Lösung soviel Korrektur, also wenn ich dem VCO eine feste Spannung vorgebe?
Schwankt der VCO so stark?
Hat jemand einen guten link zu DDS in software?
mfg Benedikt Lippert
-
Erfahrener Benutzer
Robotik Visionär
Eine bekannte seite für einen Software DDS mit ein AVR µC:
http://www.myplace.nu/avr/minidds/index.htm
Grundlagen zum DDS Prinzip gibt es ganz gut als Appl Notes von Analog Devices.
Die Frequenz des VCO ist nicht so stabil, da ist schon einiges an Drift mit der Temperatur und Versorgungsspannung drin. Auch duch mangelnde Abschirmung kann sich die Frequenz ändern. Das sind im Prinzip genau die Störungen die der PLL nachregeln muß. Für die Anwendung als PLL ist im wesentlichen das kurzzeitverhalten bis etwa 1 ms bis 1 s interessant was langsamer ist wrid ja in der Regel nachgeregelt.
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo,
ok, dann werd ich mich mal mit DDS auf einem AVR beschäftigen.
Wenn ich dan die max Frequenz habe, die ich erreiche, melde ich mich noch mal um den PLL zu berechnen.
mfg Benedikt Lippert
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo,
ich hab mir jetzt mal einen DDS-Generator mit einem M16 aufgebaut.
Ich betreibe Ihn mit 16Mhz und erreiche eine Maximalfrequenz von ca. 456Khz bei 32 bit Auflösung.
Nachdem ich das 456kHz Signal auf dem Oszi dargestellt habe ist mir aufgefallen, das dies seeehr viel Jitter enthält.
Macht das dem PLL etwas aus?
Ist es realistisch das ich den PLL mit einem Faktor von ca 36 betreibe?
Ist da der LOOP-Filter einigermaßenm leicht zu dimensionieren, und stabil?
mfg Benedikt
-
Erfahrener Benutzer
Robotik Visionär
Der PLL soll schnellen Frequenzänderungen ja nicht folgen. Da ist die Filterauslegung nicht so schwer. Wegen dem einfacheren Teiler sollte der PLL mehr so etwas wie mal 64 machen.
Das Digitale Signal vom DDS hat viel Jitter. Besser wird es hinter DA Wandler und Tiefpaß. Den DDS sollte man nicht ganz mit der maximalen Frequenz nutzen, sondern etwas Reserve lassen für den Tiefpaßfilter.
Der PLL kann vieles an hochfrequentem Jitter rausfiltern, aber natürlich nicht alles. In der analogen Darstellung sollte der DDS kein sichbares Jitter haben, sonst ist da noch was nicht OK am Code.
Wenn man dem DDS im Interrupt laufen läßt ist es gar nicht so einfach Jitter zu vermeiden, es geht aber. Eine Methode dazu ist es 2 Interrupts kurz hintereinander auszulösen: der erste unterbricht das Hauptprogramm, gibt interrupts wieder frei und macht dann nur noch ein paar NOPs. Dann kann der 2 te interrupt etwa 6 Zykelen später erfolgen und die eigentliche DDS routine ausführen. Man springt dabei gar nicht wieder in den ersten Interrupt zurück, sondern gleich wieder ins Hauptprogramm. Da man damit schon recht viel Zeit verliert, sollte man in einem Interrupt gleich z.B. 4 DDS-schritte rechnen und die Ausgaben dann passend verteilen, z.B. alle 20 Zyklen. Der Interrupts kommt dann nur alle 80 Zyklen. Die restlichen etwa 5% an Rechenzeit die noch fürs Hauptprogramm übrig bleiben sollten schon ausreichen für die Steuerung.
Ich würde mal schätzen, dass man im Interrupt auf eine Abatsrate von etwa 800 kHz kommen kann. Damit wäre die maximale sinnvolle Ausgangsfrequenz etwa 200 kHz.
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo,
ich hab den DDS nur digital aufgebaut, also nur ein Rechtecksignal als Ausgangssignal.
Ist da eine Umwandlung mit TP nötig um auf den PLL zu gehen?
Die Berechnung läuft auf einem extra Controller , der nix anderes zu tun hat. Dieser bekommt seinen Wert über einen 8-Bit Datenbus.
Bis 250 KHz ist der Jitter annehmbar ( auf dem Analogoszi sieht man den Schatten, der teilweise ca. eine 4tel Periode verschoben ist)
mfg Benedikt Lippert
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen