Forum: Mikrocontroller und Digitale Elektronik Frequenznormal selber bauen GPS diszipliniert 16MHz low cost ATmeg329p Assembler


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Bernhard S. (bernhard)



Lesenswert?

Geschätztes Forum,

ein kleines Beispiel, wie mit wenig Aufwand ein kostengünstiges
16MHz Frequenznormal aufgebaut werden kann.

Genauigkeit liegt bei ca. maximal +/- 1Hz.

Das Prinzip ist ganz einfach. Ein 16MHz Quarz wird durch eine 
Kapazitätsdiode (Varicap) um ca. +/- 50Hz "gezogen".

Der hochgenaue 1s GPS-Impuls wird in den µC eingespeist, dieser 
berechnet dann die 8Bit PWM (Regelspannung) für die Kapazitätsdiode.

Die Regelspannung muss zwischen 0...5V betragen (Messpunkt).

Vorabgleich:

- GPS Signal abschalten
- kurz nach Programmststart beträgt die Regelspannung ca.2,5V
- mit dem Trimmer grob 16MHz einstellen
- Taste Frequenz min betätigen Ausgangsfrequenz ca. 15.999.950 Hz
- Taste Frequenz max betätigen Ausgangsfrequenz ca. 16.000.050 Hz
- GPS einschalten....warten, nach einigen Sekunden liegen 16MHz an

Anmerkung:

Das ganze Gebilde ist sehr temperaturabhängig , selbst nach dem Öffnen 
des Zimmerfensters bei einer Außentemperatur von 3°C, ändert sich sofort
die Ausgangsfrequenz, der AVR korrigiert nach.

Liegt kein GPS Signal mehr an, dann nimmt die Genauigkeit mit der Zeit 
ab.

Die Ausgangsfreuenz ist nahezu korrekt, wenn sich die Regelspannnung 
längere Zeit nicht ändert.

Wenn der µC die untere oder obere Regelspannung (PWM) erreicht hat 
leuchtet die rote LED und der BEEP warnt fürchterlich.

Problem:

Die Dimensionierung der Kapazitäten am Quarz und an der Kapazitätsdiode 
und am Trimmer ist nicht immer einfach, ggf. Werte abändern.

Nachtrag:
Bei jedem GPS-Impuls darf nur ein Klick zu horen sein, wenn nicht, 
dann stimmt etwas mir der Entprellung nicht !

Theoretisch müsste dieses Prinzip auch mit Quarzen von
8MHz, 4MHz, 2MHz und 1Mhz funktionieren, hab's aber nie getestet.

In der Version2 (FN_16MHz_ATmega328p_V2.hex) leuchtet die grüne LED, 
wenn die Phasenreglung eingerastet ist, und die Ausgangsfrequenz schon 
ziemlich "genau" ist.

Bernhard

: Bearbeitet durch User
von Anja (Gast)


Lesenswert?

Hmm,

ich würde eher so was nachbauen wenn ich ein Frequenznormal bräuchte:

https://www.eevblog.com/forum/projects/lars-diy-gpsdo-with-arduino-and-1ns-resolution-tic/

Ein OCXO anstelle des Quarzes reduziert die Temperaturabhängigkeit.
Ein TIC erhöht die Phasenauflösung auf ca. 1ns. (bei Arduino).

Gruß Anja

von m.n. (Gast)


Lesenswert?

Bernhard S. schrieb:
> Genauigkeit liegt bei ca. maximal +/- 1Hz.

Rund 1 * 10^-7 ist also die Startbedingung.

Anja schrieb:
> ich würde eher so was nachbauen

Für 0,1 ppm reicht auch ein VCTCXO, der ohne Aufheizzeit und -leistung 
schnell eine stabile Frequenz liefert. Wenn es um ein "Frequenznormal" 
geht, dann sollte man auch 10 MHz erzeugen.


Mal sehen, wie lange es dauert, bis wir bei der Forderung nach 1 * 
10^-12 angekommen sind ;-)

von W.S. (Gast)


Lesenswert?

m.n. schrieb:
> Mal sehen, wie lange es dauert, bis wir bei der Forderung nach 1 *
> 10^-12 angekommen sind ;-)

Grinse du nicht gar so laut. Bis auf 1E-12 kannste ewig warten. 
Unsereiner hat schon so seine Probleme, 1E-10 gut zu halten, bei einem 
Quarz mit drangeklöppelter Kapazitätsdiode kommt mir da eher der alte 
Auersbach-Zähler in den Sinn: ein Trimmer für's Grobe, dann noch einer 
für's Feine und das Ganze unter einer Plastikhaube, die eigentlich zu 
einem Printtrafo gehört. So sah dort der OCXO aus. War zwar 'nur' für 
1E-8 aber dennoch ne Zumutung.

Und 1 PPS bei 16 MHz ist allenfalls für 1E-7 gut. Das weißt du 
natürlich. Für ne Stelle mehr müßte man dazu die Meßzeit verzehnfachen. 
Und so weiter, vom Jitter durch die Herumschalterei der Abstimmspannung 
mal ganz abgeshen.

Also: ein netter Versuch des TO, aber für die nächste Version wäre erst 
einmal etwas mehr Nachdenken angesagt.

W.S.

von Peter R. (Gast)


Lesenswert?

Warum? wenn 10^-7  gebraucht wird?

m.n. schrieb:
> Mal sehen, wie lange es dauert, bis wir bei der Forderung nach 1 *
> 10^-12 angekommen sind ;-)

Endlich jemand, der nicht gleich in die -9 oder -12 klettert. -7 reicht 
doch völlig aus, wenn man grad nicht die Erde neu vermessen will.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Ich hätte bei dem 100k neben (MP) noch eine kleine Drossel in Serie mit 
vorgesehen. ;-)

von Peter R. (pnu)


Lesenswert?

Schade, der hex code zeigt nicht, wie eigentlich der Kontroller 
verwendet wird, insbesonders ob da ints eingesetzt werden.

C oder Assembler wäre da schon informativer.

von Pandur S. (jetztnicht)


Lesenswert?

Ein schoenes Projekt. Verbesserbar durch
- ein temperaturisolierendes Gehaeuse. Low cost.
- laengere Integrationszeit. Also nicht jeden Click gleich reagieren, 
sondern verteilt ueber laengere Intervallen. Pro zehnfache 
Integrationszeit bekommt man eine Deziamlstelle mehr. Integrationzeit 
bedeutet nicht einfcah warten... Sehr low cost.
- ein OCXO bringt bessere Werte zu Beginn weg. Laesst dann auch 1000sek 
Integrationszeit zu, was ich bei einem Einfachansatz wie beschrieben 
bezweifle. Eigentlich haben viele OCXO Steuereingaenge, welche innerhalb 
4.5 ppm angesteuert werden koennen. Ein VCOXCO, resp OCXO geht fuer 
30Euro aufwaerts.

von Pandur S. (jetztnicht)


Lesenswert?

> Schade, der hex code zeigt nicht, wie eigentlich der Kontroller
verwendet wird, insbesonders ob da ints eingesetzt werden.

Integer ? Naja, du musst hoch genug zaehlen koennen, also 32 bit.
Interrupts ? Allenfalls waere ein Capture interrupt hilfreich, sonst 
muss man pollen.
Man sollte uebrigens beachten, dass ein GPS 1 Sekunden Puls 50ns Jitter 
haben kann.

: Bearbeitet durch User
von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Angehängte Dateien:

Lesenswert?

Was auch noch ins Gewicht fällt, ist der Temperaturdrift der 
Kapazitätsdiode.

Wenn du per Temperaturfühler den noch rechnerisch kompensieren könntest, 
würde es ev noch stabiler werden.
BD139?!? ist das BB139 ?
https://datasheetspdf.com/pdf-file/1408174/ITT/BB139/1

73 55

von Im Moment nicht eingeloggt (Gast)


Lesenswert?

Pandur S. schrieb:

> Man sollte uebrigens beachten, dass ein GPS 1 Sekunden Puls 50ns Jitter
> haben kann.
Eher 100ns und so gut wie alle NEO8 uBlox Empfänger aus China sind 
Fälschungen, da ist eher noch schlimmeres zu erwarten.

von Michael M. (do7tla)


Lesenswert?

Bernhard S. schrieb:
> Das ganze Gebilde ist sehr temperaturabhängig , selbst nach dem Öffnen
> des Zimmerfensters bei einer Außentemperatur von 3°C, ändert sich sofort
> die Ausgangsfrequenz, der AVR korrigiert nach.

Mit ein Quarzofen bekommt man das auch mit der Stabilität hin.
Nur muss die Schaltung länger in Betrieb sein, damit der Ofen eine 
konstante Temperatur hat und der ATM muss nicht mehr so stark 
nachregeln.

von W.S. (Gast)


Lesenswert?

Peter R. schrieb:
> Warum? wenn 10^-7  gebraucht wird?

Wenn nur 1E-7 benötigt wird, dann nimmt man einen kleinen TCXO, der 
sowas von Hause aus kann. Dazu benötigt man keinen GPS-Empfänger.

Der Rest wäre nur bastlerischer Elan.

W.S.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Ist sogar möglich das der PWM noch in den Oszillator einstreut. ;-)

Temperatur drift, kommt hauptsächlich beim Quarz und der Kapazitätsdiode 
zum Tragen.

Wäre natürlich möglich diese rechnerisch mit Temperatursensor noch zu 
kompensieren, so ähnlich wie es ein OCXO macht.

: Bearbeitet durch User
von Hans-Georg L. (h-g-l)


Angehängte Dateien:

Lesenswert?

Bin jetzt eingeloggt ;-)

Die LEA Serie von uBlox ist für GPSDO besser geeignet und die Gefahr von 
Fälschungen ist geringer weil die ein anderes Gehäuse haben. Meine 2 
ausgelöteten LEA8 aus China sind soweit ich es mit dem uBlox Tool 
beurteilen kann echt. Eine Mittelung über Minuten bringt erst die GPS 
Genauigkeit und solange bestimmt der geregelte Oszillator die 
Genauigkeit. Ich bin gerade dabei das für ein Rb zu machen.

von Pandur S. (jetztnicht)


Lesenswert?

Ich wuerde den unpassenden PWM durch einen DAC ersetzen. Ein 16bit DAC 
geht fuer vielleicht 5 Euro, das lohnt sich allemal fuer eine saubere 
Ansteuerung der Kapazitaetsdiode.

von Ralf (Gast)


Lesenswert?


von Wolfgang (Gast)


Lesenswert?

m.n. schrieb:
> Für 0,1 ppm reicht auch ein VCTCXO, der ohne Aufheizzeit und -leistung
> schnell eine stabile Frequenz liefert. Wenn es um ein "Frequenznormal"
> geht, dann sollte man auch 10 MHz erzeugen.

Wenn da nicht der kleine Unterschied zwischen Stabilität und Genauigkeit 
wäre ...

von m.n. (Gast)


Lesenswert?

W.S. schrieb:
> Wenn nur 1E-7 benötigt wird, dann nimmt man einen kleinen TCXO, der
> sowas von Hause aus kann. Dazu benötigt man keinen GPS-Empfänger.

Eben nicht ganz. Günstige 1 € VCTCXO Teile haben 0,5 ppm über den 
gesamten Temperaturbereich. Für die Langzeitstabilität ist dann ein 1 
pps-Signal hilfreich, was ja nicht dauernd aktiv sein muß und nach 
wenigen Sekunden trotz Jitter einen hinreichend guten Mittelwert für den 
Vergleich Sollwert - Istwert liefert.

Peter R. schrieb:
> C oder Assembler wäre da schon informativer.

Steht im Titel und wer Berhard S. hier "verfolgt", kennt seine 
Leidenschaft, in Assembler zu programmieren.

Da die erzeugten 16 MHz nicht "normal" sind und vermutlich dazu dienen, 
seine Frequenzzähler genauer messen zu lassen, kann man auch einen 
anderen Weg gehen.
Anstatt die lokalen 16 MHz nachzuführen, reicht es aus, einen 
Skalierungsfaktor zu ermitteln und den angezeigten Wert passend zu 
korrigieren. Wegen des Wertebereiches wird es mit Integerberechnungen da 
etwas schwieriger. Mit double Zahlen geht es deutlich einfacher.
Hierzu ein "alter Hut": 
Beitrag "reziproker Frequenzzähler, GPS-stabilisiert, ATmega162"

Wolfgang schrieb:
> Wenn da nicht der kleine Unterschied zwischen Stabilität und Genauigkeit
> wäre ...

Wenn Du diesbezüglich bei 0,1 ppm damit Probleme hast, lass die Finger 
von Elektronik.

von Pandur S. (jetztnicht)


Lesenswert?

Weshalb sollte man wegen 16MHz ploetzlich in double rechnen, wenn 
Longint auch genuegen wuerden ?

von Peter R. (pnu)


Lesenswert?

Mit Abkürzungen ist es halt nicht so leicht, mit ints hab ich 
"interrupts" abgekürzt und nicht integers.

btw, natürlich wird bezüglich der Genauigkeit gleich wieder das 
Besteigen der Achttausender breitgetreten (10^-9 und höher, Jitter im 
-zig-nanos-Bereich), obgleich es sich darum handelt, wie man den 
nächsten zum Rodeln geeigneten Berg hochkommt. (einfach10^-7)

Und dass da jemand einen Feld-Wald-Wiesen-Quarz mit GPS zu einer 
genaueren Frequenzerzeugung benutzt ist ja schön, interessanter wäre 
aber das WIE. Und ein  hex-file dafür zu disassemblieren ist wohl etwas 
viel Aufwand.

: Bearbeitet durch User
von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Pandur S. schrieb:
> Ich wuerde den unpassenden PWM durch einen DAC ersetzen. Ein 16bit DAC
> geht fuer vielleicht 5 Euro, das lohnt sich allemal fuer eine saubere
> Ansteuerung der Kapazitaetsdiode.

Eine weitere Möglichkeit wäre, den Ausgang zum Integrationskondensator 
grundsätzlich hochohmig zu lassen (DDRD.3=0), lediglich zur Korrektur 
pro Sekunde einmal den PORTD.3 auf die Richtung der Korrektur 
(hoch/runter), und den DDRD.3 proportional zur festgestellten 
Abweichung, einige Mikrosekunden einzuschalten.
Müsste lediglich die LED am PD3 entfernt werden.

von m.n. (Gast)


Lesenswert?

Pandur S. schrieb:
> Weshalb sollte man wegen 16MHz ploetzlich in double rechnen, wenn
> Longint auch genuegen wuerden ?

Weil das Komma von alleine fließt und es damit einfacher ist. Die 
Berechnungen sollten schon eine Stelle genauer als das letztlich 
geforderte Ergebnis sein.
Longint hat keine eindeutige Größe. Meinst Du long long?

Pandur S. schrieb:
> Ein 16bit DAC
> geht fuer vielleicht 5 Euro, das lohnt sich allemal fuer eine saubere
> Ansteuerung der Kapazitaetsdiode.

Der ATmega328 bietet 16 Bit PWM-Auflösung. Das ist völlig ausreichend, 
da es nicht schnell sein muß.

von W.S. (Gast)


Lesenswert?

m.n. schrieb:
> Meinst Du long long?

Er hat nicht int64 geschrieben.

W.S.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

m.n. schrieb:
> Der ATmega328 bietet 16 Bit PWM-Auflösung. Das ist völlig ausreichend,
> da es nicht schnell sein muß.

Ja nur sollte da wirklich nicht nur eine R-C Glättung hin, sondern eine 
RLC Glättung, wie ich schon in dem Post 
[Beitrag "Re: Frequenznormal selber bauen GPS diszipliniert 16MHz low cost ATmeg329p Assembler"] geschrieben habe.

Dann kann man PWM problemlos nehmen.

Ansonsten ist das Risiko groß das der PWM in den Quarzoszillator 
einstreut.

Die Regelspannung von Kapazitätsdioden, werden in den Appnotes meistens 
mit einer Drossel gegen HF Geblockt.

Kommt dazu dass du bei 100kOhm auch den Thermischen Drift der 
Kapazitätsdiode vergrößerst da ihr Regel-Strom ebenfalls ein 
Temperaturdrift aufweist.

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Patrick L. schrieb:
> Kommt dazu dass...

Daß man gar viele Detailverbesserungen andenken kann. Dazu sage ich nur 
eines: Mit einem sinnvollen OCXO ist das Ganze viel leichter zu machen, 
wenn es ein Referenzgenerator sein soll. Dort hat man bereits die 
Stabilisierung in der Temperatur und die Spannungssteuerung der Frequenz 
drin, ebenso hat man einen sinnvoll breiten Einstellbereich, denn es ist 
für einen Referenzoszillator, der auf weniger als 1 Hz bei 10..16 MHz 
einzuregeln ist, nicht sinnvoll, dort einen Verstellbereich von +/- 50 
Hz oder noch mehr zu haben. Und besonders teuer ist so ein OCXO auch 
nicht. Mit so etwa 20€ ist man da dabei. Und wenn es nicht die 
Werkstatt-Referenz sein soll, sondern 'nur' der Oszillator in einem 
sonstigen Gerät (Radio usw.), dann reicht es auch aus, da einen noch 
billigeren TCXO zu nehmen und den anhand der Werkstattreferenz einmal 
ordentlich einzustellen. Ggf jährlich mal überprüfen.

W.S.

von m.n. (Gast)


Lesenswert?

Peter R. schrieb:
> Und dass da jemand einen Feld-Wald-Wiesen-Quarz mit GPS zu einer
> genaueren Frequenzerzeugung benutzt ist ja schön, interessanter wäre
> aber das WIE.

Das ist im Grunde doch supersimpel.
Mit Timer1 wird per input-capture die Periodendauer des 1 pps-Impulses 
gemessen. Die Überläufe zählt man einfach mit und bildet die Differenz 
zum letzten Zeitpunkt.
Im abgeglichenen Zustand ergibt das einen Zählerstand von 16000000. Ist 
der Zählerstand größer, muß der Takt verkleinert werden und umgekehrt.


Bei 0,1 ppm ist ein Fehler von 60 ns zulässig, was in etwa dem maximalen 
Jitter eines 1 pps-Impulses entspricht. Das bedeutet, daß man jede 
Sekunde einen Korrekturwert bekommen kann.
Eine erste Verfeinerung ergibt sich, wenn man über die letzten 10 s 
einen gleitenden Mittelwert bildet und somit den eff. Jitter reduziert.

Wie schon angedeutet, wäre ein VCTCXO die bessere Wahl, der er deutlich 
temperaturstabiler arbeitet.
Für möglichst schnelle Einschwingzeit nimmt man einmalig oder bei jedem 
Einschalten die Kennlinie der Kapazitätsdiode/TCXO auf.

Wenn man doch beim nackten Quarz bleiben möchte, dann packt man diesen 
zumindest in eine kleine Schachtel, um direkte Zugluft zu vermeiden.
Wichtiger als eine vermeintliche Drossel für die PWM-Glättung zu 
verwenden, ist eine stabile Versorgungsspannung. Auch hier ist ein 
VCTCXO mit separatem 3V3-Regler (aus dem auch das PWM-Signal abgeleitet 
wird) von Vorteil.

Sofern man nicht auf niedrige Stromaufnahme achten muß geht natürlich 
immer auch ein OCXO. Aktuell im Angebot: 
Beitrag "10MHZ OCXO KVG O.60.800504-LF 3.3V"

von HAL9000 (Gast)


Lesenswert?

Hi !

Ganz gut ist auch das hier: https://dl4zao.de/projekte/index.html

Die Firmware dazu ist allerdings gruselig. Die habe ich neu
geschrieben.

von Bernhard S. (bernhard)


Lesenswert?

Ingo W. schrieb:
> Eine weitere Möglichkeit wäre, den Ausgang zum Integrationskondensator
> grundsätzlich hochohmig zu lassen (DDRD.3=0), lediglich zur Korrektur
> pro Sekunde einmal den PORTD.3 auf die Richtung der Korrektur
> (hoch/runter), und den DDRD.3 proportional zur festgestellten
> Abweichung, einige Mikrosekunden einzuschalten.
> Müsste lediglich die LED am PD3 entfernt werden.

Danke Ingo, eine super Idee!

Die momentane starre 8Bit-PWM Kopplung zur Erzeugung der Regelspannung 
ist zwar eine Möglichkeit, aber die Aufladung bzw. Entladung über einen 
kürzen Impuls ist, bei einer entsprechenden Dimensionierung von R und C, 
feinstufiger.




Patrick L. schrieb:
> Ich hätte bei dem 100k neben (MP) noch eine kleine Drossel in Serie mit
> vorgesehen. ;-)

Warum, könntest Du es uns fachlich begründen?

Momentan wird das PWM-Signal (62kHz) 2x geglättet,

10k//100µ und 100k//20p (Varicap), eine Frequenzmodulation ist am Quarz 
ist nach meiner Meinung vernachlässigbar.

m.n. schrieb:
> Wenn es um ein "Frequenznormal"
> geht, dann sollte man auch 10 MHz erzeugen.

Man kann, man muss aber nicht ;-)

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Bernhard S. schrieb:
> Warum, könntest Du es uns fachlich begründen?

Ja.
Fachliche Begründung:(Wem es zu lange ist muss es ja nicht lesen) ;-)
... weil PWM "Harte Flanken" generiert und je nach Frequenz des 
PWM-Signals, können da Harmonische entstehen, die den Oszillator 
beeinflussen.
Je nach Eingang der Quarzoszillator Stufe reichen da schon µV Pegel um 
den Oszillator aus dem Takt zu bringen.
Kann aber muss nicht!

Selbst schon eine DSO Sonde kann den Oszillator ungünstig beeinflussen, 
also kann es der PWM erst recht.

Schau dir das Signal an, wenn du keine Veränderung siehst (über das 
ganze PWM Regelspektrum) ist der Filter genug, aber ich denke du wirst 
eine Veränderung sehen
Ideal zum Feststellen und oft schon gesehen, ist wenn du ein DSO im 
Eye-Mode hast.
Dann sieht man es extrem gut wie wenig es braucht um den Quarzoszi aus 
dem Takt zu bringen.
Oft reicht schon eine Einstreuung eines benachbarten/Parallel 
verlaufendem Digitalsignals/Leiterbahn.

Musste schon Oft Probleme von Kunden lösen, die genau das Problem 
hatten.
In der Regel merkt man die kleinen "Ausreißer" nicht aber bei 
zeitkritischen Anwendungen können die "Ausreißer" zu Problemen führen 
die dann fast "Zufällig" auftauchen.

Soll ja nur als gut gemeinter Rat sein, da ich da schon einige mahle 
Schaltungen/Layout genau mit solchen Problemen von Kunden überarbeiten 
musste.
Das sind Hinterhältig gemeine Fehler, die mann nur selten entdeckt, weil 
sie nur Sporadisch auftauchen, wen die "Spikes" genau, in den 
Flankenschwellen des Eingangs Schmitt-trigger auftauchen bzw. 
zusammentreffen.
Das sind dann immer wieder kleine "nS" Hüpfer, die sich summieren und 
irgend wann ist der Takt so verschoben dass es auffällt.

von Kurt (Gast)


Angehängte Dateien:

Lesenswert?

So ähnlich hab ich das schon vor 8 Jahren mit einem popligen Tiny24 
gemacht.

Erscheint der pps (noch) unregelmäßig, oder nach längerem pps-Ausfall 
gibt es rotes Licht.  Lässt sich der Quarz-Oszillator nicht auf die 
Sollfrequenz einregeln, bleibt es bei rotem Licht.

Kommt der pps regelmäßig und zeigt wiederholt, dass nur minimal 
nachzuregeln ist, gibt es grünes Licht. Fällt der pps danach aus, geht 
die Anzeige für kurze Zeit auf GN + RD = Warnung.

Mit günstigen Amateur-Mitteln werden 10 MHz +/-1 Hz (0,1 ppm) plausibel 
bereitgestellt. Nicht mehr und nicht weniger. Solange GPS empfangbar 
ist, braucht es keine Kalibrierung!

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Kurt schrieb:
> So ähnlich hab ich das schon vor 8 Jahren mit einem popligen Tiny24
> gemacht.

Jep aber du hast ein 3 Stuffen Filter, somit hast du einiges bessere PWM 
Glättung laut deinem geposteten Schema. ;-)
Das Schema vom TO zeigt nur 1 Filterstuffe und dazu auch kein 
Blockkondensator der die HF Anteile sauber blockt.

Ich gehe davon aus, dass du in Anbetracht des kleinen PWM->Analog "C" 
von nur 1000nF hast etwas höhere PWM Frequenz fährst.
Gehst aber auch mit 100kOhm auf die CapDiode womit auch bei dir, durch 
ein leichten Temperaturdrift die Regelspannung etwas "wandern" könnte.

73 55

: Bearbeitet durch User
von Kurt (Gast)


Lesenswert?

Das Problem ist aber heutzutage die Kapazitätsdiode: Gibt's kaum noch!

Die optimale VariCap ist natürlich die BB139 (bei Bernhard S. falsch als 
BD139 bezeichnet). Vor wenigen Jahren konnte ich noch wenige Exemplare 
ergattern...

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Kurt schrieb:
> Das Problem ist aber heutzutage die Kapazitätsdiode: Gibt's kaum noch!
Also ich habe noch Rollenweise CapDioden, allerdings SMD da wir selber 
VCO's herstellen ;-)

Kurt schrieb:
> (bei Bernhard S. falsch als
> BD139 bezeichnet).

Jup hatte ich in meinem Post drauf hingewiesen und grad das Datenblatt 
angehängt;
Beitrag "Re: Frequenznormal selber bauen GPS diszipliniert 16MHz low cost ATmeg329p Assembler"

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Bernhard S. schrieb:
> Momentan wird das PWM-Signal (62kHz) 2x geglättet,
>
> 10k//100µ und 100k//20p (Varicap), eine Frequenzmodulation ist am Quarz
> ist nach meiner Meinung vernachlässigbar.

Was meinst du mit 2x glätten?
Bei 62kHz würden die 100kΩ//20pF allenfalls Oberwellen wegnehmen, die 
nach den 10kΩ//100µF aber sowieso nicht mehr vorhanden sind.
Der zweiten TP trägt zur Glättung nichts bei.

von Kurt (Gast)


Lesenswert?

@  Patrick L. (Firma: S-C-I DATA GbR) (pali64)

Meine Glättung ist schneller beim Einschalten, unterdrückt aber die 
PWM-Frequenz (8K Hz) noch ausreichend:  Ripple <= 1/3 PWM-Step. Hastige 
Regelsprünge werden von der Software abgefangen.

Ehrlich gesagt, habe ich mir bisher keine Gedanken darüber gemacht, ob 
eine Sperrspannung (I -> 0) über 100 kOhm thermisch schlechter wirkt, 
als über 10, oder 1000 kOhm.

Beim vorgesehenen Gebrauch im "Heim-Labor" würde in jedem Falle entdeckt 
werden, wenn die Abstimmung auf die Sollfrequenz (auch thermisch) nicht 
mehr funktioniert. Rote LED!

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Kurt schrieb:
> Beim vorgesehenen Gebrauch im "Heim-Labor" würde in jedem Falle entdeckt
> werden, wenn die Abstimmung auf die Sollfrequenz (auch thermisch) nicht
> mehr funktioniert. Rote LED!

Merkt deine Software bei 20° Differenz ca 0.5%?
Das dürfte bei deiner Schaltung so ca. der Drift sein was ich anhand der 
Widerstände und anderen Bauteilen in deiner Schaltung(Schema) 
ausgerechnet habe ;-)

Hängt natürlich noch stark von der Güte deines Quarzes ab da hast du 
leider keine Typenbezeichnung aufgeführt.

: Bearbeitet durch User
von Kurt (Gast)


Lesenswert?

Hallo Patrick L. (Firma: S-C-I DATA GbR) (pali64),

ich befürchte, dass du dir kluge Gedanken machst, die an Sinn und 
Funktion meiner Schaltung vorbei gehen. Sie erfasst, ob der VCXO per PWM
auf 10.000.000 +/- 1 Pulsen zwischen 2 pps-Pulsen abstimmbar ist.

Gelingt es, verlässlich hintereinander eine Taktrate von 10.000.000 +/- 
1 zwischen 2 pps-Pulsen zu messen, wird "grünes Licht" gegeben. Der 10 
MHz-Ausgang liefert offensichtlich 10 MHz +/-0,1 ppm.

Funktioniert das nicht, wird keine Fehler-Ursache vermutet, sondern nur 
signalisiert, dass die 10 MHz nicht auf 0,1 ppm genau sein können.

von m.n. (Gast)


Lesenswert?

Patrick L. schrieb:
> Fachliche Begründung:(Wem es zu lange ist muss es ja nicht lesen) ;-)
> ... weil PWM "Harte Flanken" generiert und je nach Frequenz des
> PWM-Signals, können da Harmonische entstehen, die den Oszillator
> beeinflussen.
> Je nach Eingang der Quarzoszillator Stufe reichen da schon µV Pegel um
> den Oszillator aus dem Takt zu bringen.
> Kann aber muss nicht!

Diesen Scherz soltest Du besser für den 1.4. aufheben. Nachher baut das 
jemand noch tatsächlich nach oder bettet seinen Controller in ein 
Ferritgehäuse ein, das bei Mitternacht und Vollmond aus einem Block 
gefräst wurde.

Ein Tiefpass 2. - 3. Ordnung reicht hier völlig aus. Daß man das 
PWM-Signal vor der Filterung nicht ringförmig um den Quarz führt oder an 
dessen Gehäuse legt, sollte allgemein bekannt sein.

Alles andere ist Hysterie und Wichtigtuerei.

von W.S. (Gast)


Lesenswert?

m.n. schrieb:
> Ein Tiefpass 2. - 3. Ordnung reicht hier völlig aus.

Naja, der Tiefpaß sollte auch sinnvoll dimensioniert sein. Wenn ich mir 
das 3. Bild des TO so anschaue, dann schnipst die Abstimmspannnung nach 
einem Tastendruck doch ziemlich herum, was dann einen ähnlichen 
Frequenz-Hopser bedeutet. So etwas ist schlußendlich eine ziemlich 
miserable Kurzzeit-Stabilität.

W.S.

von Purzel H. (hacky)


Lesenswert?

Ein RC Tiefpass heisst noch nicht, dass die gefilterte Frequenz auch weg 
ist. Es bedeutet nur, dass die Amplitude abgesenkt wurde. Die Frage ist 
daher, auf wieviel abgesenkt ? 10^-3 ? 10^-4 ?

von Michael M. (michaelm)


Lesenswert?

Purzel H. schrieb:
> Ein RC Tiefpass heisst noch nicht, dass die gefilterte Frequenz auch weg
> ist. Es bedeutet nur, dass die Amplitude abgesenkt wurde. Die Frage ist
> daher, auf wieviel abgesenkt ? 10^-3 ? 10^-4 ?

https://www.elektroniktutor.de/analogtechnik/tiefpass.html

von Purzel H. (hacky)


Lesenswert?

Ich stelle die Frage ja nicht. Das muss sich der Designer ueberlegen, 
welchen Rippel er auf der Kapazitaetsdiode haben will/darf/kann. Die 
ueblichen 20dB sind naemlich nur eine Absenkung um den Faktor 10 in der 
Amplitude. Bedeutet aus 5V PWM wird erst 0.5V Rippel. Eine Absenkung auf 
0.001 der Amplitude, sind dann schon 60dB, sind dann schon 3 Dekaden in 
der Frequenz. Und dann hat man schon das Problem, dass die Teile nicht 
mehr das machen was man denkt.
Ein 50Hz Tiefpass der bei 50kHz 60dB bringt. Also ein Elko anstelle 
eines keramischen Caps hat dann ploetzlich einen Leckstrom, ..

: Bearbeitet durch User
von Bernhard S. (bernhard)


Lesenswert?

@alle

Momentan verwende ich dieses Modul, GPS Breakout-Platine, MTK3339.

Welche Module würdet Ihr empfehlen?

von Bernhard S. (bernhard)


Lesenswert?

Kurt schrieb:
> Das Problem ist aber heutzutage die Kapazitätsdiode: Gibt's kaum noch!

Nimm eine andere, ev. würde ein ganz normale Diode dafür ausreichen, es 
kommt nur auf die Kapazitätsänderung und auf die Erfüllung der 
Schwingbedingung an ;-)

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ingo W. schrieb:
> Eine weitere Möglichkeit wäre, den Ausgang zum Integrationskondensator
> grundsätzlich hochohmig zu lassen (DDRD.3=0), lediglich zur Korrektur
> pro Sekunde einmal den PORTD.3 auf die Richtung der Korrektur
> (hoch/runter), und den DDRD.3 proportional zur festgestellten
> Abweichung, einige Mikrosekunden einzuschalten.
> Müsste lediglich die LED am PD3 entfernt werden.

Dieser sehr interessanten Idee bin ich mal nachgegangen, Danke für den 
Tipp.

Folgende Erscheinung:

Der PB3 ist zwar hochohmig, aber lädt bzw. entlädt ganz leicht den 
100µF Elko, Ursache vermutlich interne Leckströme.

Bei 10k, 100µF und 100µs wird der Elko pro Sekunde um ca. 2mV auf- bzw 
entladen.

Dauert dann natürlich ein weilchen,
bis ca. 2,5V Regelspannung erreicht sind ^^

Eventuell könnte auch ein Tantal-Elko die Leckströme gegen GND 
minimieren.

: Bearbeitet durch User
von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Erklärt jetzt nicht den beobachteten Leckstrom, könnte aber zu einer 
erhöhten Stromaufnahme führen: Da der Port D3 nicht als Analogeingang 
ausgelegt ist, hat er auch kein "digital input disable register" (didr), 
womit der digitale Eingang gesperrt werden kann. Eventuell wäre es 
besser, für den Zweck ein Pin mit Eingangsfunktion (z.B. PC2) zu nutzen.

von m.n. (Gast)


Lesenswert?

Bernhard S. schrieb:
> Dieser sehr interessanten Idee bin ich mal nachgegangen, Danke für den
> Tipp.
>
> Folgende Erscheinung:
>
> Der PB3 ist zwar hochohmig, aber lädt bzw. entlädt ganz leicht den
> 100µF Elko, Ursache vermutlich interne Leckströme.

Solche Schaltungen baut man anders auf: Schalter ohne relevante 
Leckströme und hochohmigen Puffer. Dann reicht 1 µF locker.

Da hast Du einen fliegenden Aufbau, soweit zu erkennen Timer1 garnicht 
verwendet und von vielen Seiten den Rat bekommen, den Tiefpaß mehrstufig 
auszulegen.
Somit wäre es ein Leichtes, den OCR1A-Ausgang auf PWM-Ausgabe umzulöten 
und meinetwegen ein 12 Bit PWM-Signal (mit 4 kHz) zu generieren. Das 
ergibt eine hinreichende Auflösung bei schneller Einschwingzeit.
Eine stabile Versorgungsspanung setze ich voraus.

Sowie ich Deine anderen Beiträge verfolgt habe, wirst Du meinen Rat 
sicherlich nicht befolgen ;-)

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Mann muss das Verstehen, wenn man sich hier durch die Beiträge 
durchrackert.

Sehr viele sagen gegen den Rat eines Zusätzlichen Filters aus:

m.n. schrieb:
> Diesen Scherz soltest Du besser für den 1.4. aufheben. Nachher baut das
> jemand noch tatsächlich nach oder bettet seinen Controller in ein
> Ferritgehäuse ein, das bei Mitternacht und Vollmond aus einem Block
> gefräst wurde.

Wenn das so beim TO Hängen bleibt meint er dass sein Filter OK ist und 
versteht nicht was mit:

Purzel H. schrieb:
> Ein RC Tiefpass heisst noch nicht, dass die gefilterte Frequenz auch weg
> ist. Es bedeutet nur, dass die Amplitude abgesenkt wurde. Die Frage ist
> daher, auf wieviel abgesenkt ? 10^-3 ? 10^-4 ?
Und:
m.n. schrieb:
> Ein Tiefpass 2. - 3. Ordnung reicht hier völlig aus. Daß man das
> PWM-Signal vor der Filterung nicht ringförmig um den Quarz führt oder an
> dessen Gehäuse legt, sollte allgemein bekannt sein.
>
> Alles andere ist Hysterie und Wichtigtuerei.
Gemeint ist.
Da er ja nicht Profi ist.

Deshalb Nochmals!

Du hast nur 1 Filterstufe, und eine sehr niedrige PWM Frequenz.
Da kommen sicher genügend Ripple durch um den Schwingkreis des Quarzes 
zu beeinflussen.
Verwende doch das Design von:

Kurt schrieb:
> So ähnlich hab ich das schon vor 8 Jahren mit einem popligen Tiny24
> gemacht.
im Post:Beitrag "Re: Frequenznormal selber bauen GPS diszipliniert 16MHz low cost ATmeg329p Assembler"

Da ist eine viel bessere Filterung, und auch bessere PWM Frequenz 
realisiert. ;-)

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ingo W. schrieb:
> Erklärt jetzt nicht den beobachteten Leckstrom, könnte aber zu einer
> erhöhten Stromaufnahme führen: Da der Port D3 nicht als Analogeingang
> ausgelegt ist, hat er auch kein "digital input disable register" (didr),
> womit der digitale Eingang gesperrt werden kann. Eventuell wäre es
> besser, für den Zweck ein Pin mit Eingangsfunktion (z.B. PC2) zu nutzen.

Ein Versuch macht Klug.

100µF an PB1 (als Eingang, Pull-UP off)

Der Elko wird auf ca. 120mV auf- bzw. entladen. s. Bild

Den Eingangswiderstand des Multimeters wollen wir mal großzügigerweis 
vernachlässigen.

Patrick L. schrieb:
> Da ist eine viel bessere Filterung, und auch bessere PWM Frequenz
> realisiert.

Wie hoch ist denn die PWM-Frequenz ?

In meinem Beispiel 62kHz.

: Bearbeitet durch User
von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Bernhard S. schrieb:
> Wie hoch ist denn die PWM-Frequenz ?
>
> In meinem Beispiel 62kHz.

OK deine PWM Frequenz ist hoch genug ich hatte bei der Simulation den 
Widerstand des von dir verwendeten Pin mit einbezogen, da hätte die 
Frequenz 91 kHz sein müssen wenn du aber ein Pin hast der quasi OC ist 
dann reicht deine Frequenz.
Mit dem 100µF müsste aber laut Simulation, die maximale Spannung von 5V 
schon bei etwa 70% des PWM erreicht werden.

Ideal wäre ja das Tastverhältnis:
50% PWM= 2.5V und 99% =5V.
Wenn du nahe daran kommst, ist deine PWM im Verhältnis Frequenz, Lade-C 
und Filter-last ideal. wie sieht es da bei dir aus?.

Wie ich schon geschrieben habe, würde ich eine Ferrit Perle nach den 
100K Widerstand setzen. Dieser würde sicher die AC Anteile aus deiner 
PWM Filtern. Der 100µF ist dazu, zu wenig HF Stabil und wird die Spikes 
nicht ganz blocken können.

Ich hatte miteinbezogen dass "Kurt" ja ein quasi OC Nutzt und somit sein 
Lade-C, Prozessor seitig nicht entladen wird.

Bei deinem Verwendeten Pin und µC hast du ja eine Entladung durch den µC 
Pin so wie ja ein Vorposter schreibt.
Kann dies aber nicht Verifizieren, weil ich grad kein Simulationsmodell 
für die µC zur Hand habe.

: Bearbeitet durch User
von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Frequenznormal 20MHz selber bauen, GPS geregelt, mit wenig Aufwand.

Genauigkeit: +/- 1Hz = 0,05ppm

Inbetriebnahme:

- GPS deaktivieren
- Neustart des ATmega328p, die Regelspannung beträgt
  ca. 2,5V am 19KHz 10Bit PWM-Ausgang
- mit den Trimmern ca. 20MHz am Ausgang einstellen
- Taste "Frequenz min", Regelspannung gegen GND (minimale Frequenz)
- Taste "Frequenz max", Regelspannung gegen +5V (maximale Frequenz)

- GPS aktivieren (low aktiv)
- Neustart des AVR
- nach einigen Minuten ist das System eingeschwungen
- leuchtet die LED "Regelspannung + " oder "Regelspannung - "
  wird die Regelspannung nachgeregelt
- leuchtet die grüne LED für mehrere Sekunden, dann ist die
  Freude riesig, das System ist eingeschwungen :-)

von m.n. (Gast)


Lesenswert?

Oh! Timer1 wird nun für PWM-Erzeugung genutzt.

Da die 1 Hz Messungen an INT0/PCINT18 doch recht ungenau sind, wäre die 
Erfassung über ICP1 an AIN1 oder einem freien ADCx geschickter.
Gut, man kann den Controller auch schlafen legen und auf den ext. 
Interrupt warten.

Bei einem 20 MHz Taktsignal könnte man auch CLKPR so setzen, daß 10 MHz 
erzeugt werden. Zudem würde ich auch noch ein 10 KHz Signal erzeugen - 
per OCR1B oder einen anderen Timer.

von Bernhard S. (bernhard)


Lesenswert?

m.n. schrieb:
> Oh! Timer1 wird nun für PWM-Erzeugung genutzt.

Es stellte sich heraus, dass diese Variante bei der momentan vorhandenen 
Hardware doch die bessere ist.

8Bit ist etwas ungenau, zu grob, die relativ hohen Spannungssprünge 
bewirken zu große Frequenzsprünge, Ausgangssignal jittert unschön.

Die Kapazitätsvariante, kurzer Lade- btw. Entladestromstoß, ist zwar 
theoretisch gesehen sehr feinstufig, aber diverse Leck bzw.- Biasströme 
entladen permanent den C.

Anmerkung:
Bei der momentanen Konfiguration ändert sich die Ausgangsfreuenz um
ca. 200Hz (19.999.900...20.000.100Hz) bei einer Regelspannungsänderung
von 5V (0...5V).

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Wer mag, kann auch für das Eigenbau Frequenznormal statt der BD139 o.ä. 
eine ganz normale 1A Si-Diode verwenden, geht genauso gut :-)

Im 20MHz-Bereich ist die C/U Kennlinie nahezu gleich.

: Bearbeitet durch User
von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Die LCD OLED - Variante.

Besonderheit: der 20MHz Quarz wird durch den GPS-Impuls auf +/- 1Hz 
genau synchronisiert, das ergibt eine Genauigkeit von 0,05ppm.

Im Video Rudium(blau), Quarz(gelb) erkennt man deutlich die
systembedingte Phasenverschiebung.

Das analoge Zeigerinstrument zeigt die momentane Regelspannung an, 
erwärmt bzw. kühlt sich die Schaltung ab, ändert sich natürlich die 
Regelspannung.

Folgende Ausgangsfrequenzen sind möglich: 10MHz, 1MHz, 100kHz

Die Menues sind selbsterklärend.

Inbetriebnahme:

- GPS deaktivieren
- Neustart des ATmega328p, die Regelspannung beträgt
  ca. 2,5V am 19KHz 10Bit PWM-Ausgang
- mit den Trimmern ca. 10MHz am Ausgang einstellen
- Taste "Frequenz min", Regelspannung gegen GND (minimale Frequenz)
- Taste "Frequenz max", Regelspannung gegen +5V (maximale Frequenz)

- GPS aktivieren (low aktiv)
- Neustart des AVR
- nach einigen Minuten ist das System eingeschwungen
- leuchtet die grüne LED für mehrere Sekunden,
  dann ist das System ist eingeschwungen (login)

Die Ausgangsfrequenz jittert etwas, mit einem Rudium Frequenznormal kann 
die einfache Schaltung leider nicht mithalten.

: Bearbeitet durch User
von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Natürlich wäre eine Synchronisation mit einem DCF-Impuls möglich, ist 
aber nicht ganz einfach, da der der DCF-Impuls doch um einige ms 
jittert.

Im Video GPS(gelb), DCF(blau)

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.