Hi Eine Frage bezüglich Clock Genauigkeiten: Mein External Crystal Oscillator mit 16 MHz hat eine Genauigkeit von +/-10 PPM. Der Oszillator ist an ein STM32 angeschlossen. Ich generiere daraus ein 153.6 MHz main clock. Damit treibe ich einen timer PWM mit 2.048 MHz. Das ist der Input Clock von meinem AD Wandler. Der AD Wandler erzeugt dann damit 250 Samples per Second. 1. Haben die 250 Samples per second immer noch +/- 10 ppm? 2. Stimmt diese Rechnung: worst case habe ich alle 100k Samples ein Sample zu viel oder zu wenig? 3Bleibt eigentlich die Frequenz bei gleich bleibender Temperatur und abgesehen von Aging dann gleich über Zeit? Also kann ich davon ausgehen dass meine Aufnahme von 8 Stunden konstant die selber sampling frequency hat bei gleich bleibender Temperatur? 4. Wie war das eigentlich früher bei den alten Digital-Armbanduhren? mit einem +/-10 PPM Quartz wurden sie dann ja auch alle 100k Sekunden eine se Versatz haben, oder? Danke
:
Bearbeitet durch User
1. Es heißt "Quarz" und nicht "Quartz". 2. ppm bleibt ppm, egal bei welcher Frequenz. 3. Natürlich ändert sich die Frequenz über die Temperatur und über die Alterung.
Moin, Was samplest du denn, dass du dir da Gedanken ueber die Anzahl der Samples machen willst? Ein DCF77-Signal? Gruss WK
Die 153.6 MHz werden ja über eine PLL erzeugt, d.h. da ist eh ein Jitter drauf. Warum müssen denn die 100k Samples so super genau sein? Der Einfluß der Temperatur läßt sich mit einer Heizung verringern (OXCO) oder mit Kompensation (TXCO). Zur Kompensation wird die Temperatur gemessen und über eine Tabelle entsprechend Kondensatoren am Quarz zugeschaltet.
Hallo Matthias, die Frequenz von rund 153.6 MHz wird aus der Frequenz von 16 MHz durch eine PLL-Schaltung erzeugt. Diese beinhaltet eine Phasenregelung, die bewirkt, dass die Frequenz von rund 153.6 MHz stets um einen Mittelwert pendelt. Über einen langen Zeitraum betrachtet ist dieser Mittelwert genauso stabil wie die externe Frequenzquelle. Beim Momentanwert der Frequenz von rund 153.6 MHz kann jedoch aufgrund des Pendelns von Stabilität nicht gesprochen werden.
Mat. K. schrieb: > 4. Wie war das eigentlich früher bei den alten Digital-Armbanduhren? Sie waren und sind immer noch nicht 100% genau.
Mat. K. schrieb: > 1. Haben die 250 Samples per second immer noch +/- 10 ppm? ppm ist eine Verhältniszahl, genau so wie bei %. Also werden die Zusammenhänge wohl dieselben sein, und die Samples werden genau so um die 0,001% abweichen können.
Mat. K. schrieb: > Wie war das eigentlich früher bei den alten Digital-Armbanduhren? mit > einem +/-10 PPM Quartz wurden sie dann ja auch alle 100k Sekunden eine > se Versatz haben, oder? Das wäre etwa 1 Sekunde pro Tag. Könnte hinkommen. Aber weil das die Worst-Case Angabe über den gesamten Tmeperaturbereich ist, waren die Uhren tatsächlich besser, weil die Temperatur am Handgelenk niemals lange -40°C oder +70°C hatte, sondern meist im Bereich um 20°C lag. Mat. K. schrieb: > Eine Frage bezüglich Clock Genauigkeiten Eine Gegenfrage: warum fragst du? Welches Problem hast du? Welche Aufgabe möchtest du mit diesen Anfragen lösen?
Hileider musste ich sehr viel Schreiben um meine Anwendung zu erklären. Die Frage ist ja erstmal allgemein. Und ich glaube ihr habt sie eingehend alle beantwortet. Vielen Dank. Passt.
Mat. K. schrieb: > Hileider musste ich sehr viel Schreiben um meine Anwendung zu erklären. Versuche einfach eine kurze Zusammenfassung in drei Sätzen Heutzutage wäre zur Erhöhung der Genauigkeit eines Quarzoszillator noch GPSDO zu nennen. Ob das nötig ist, bzw. dir viele andere Probleme vom Hals schafft, hängt von deiner Anwendung ab.
> Handgelenk niemals lange -40°C oder +70°C hatte, sondern meist im > Bereich um 20°C lag. Mal abgesehen davon das die Annahme sicher glaubwuerdig ist, an meinem Arm hat es grade 25.5Grad. Sagt meine Armbanduhr. Der Hersteller koennte also sogar diesen Temperaturwert nehmen und das rechnerisch kompensieren. Vanye
Die Zeiten mögen ausreichend genau sein, wenn aus dem wohltemperierten Quarz hergeleitet werden. Ob sie noch genau sind, wenn sie durch einen Mikroprozessor behandelt werden, habe ich größere Zweifel, da Befehlsausführungszeiten verschieden sein können.
Lu schrieb: > Die Zeiten mögen ausreichend genau sein, wenn aus dem > wohltemperierten > Quarz hergeleitet werden. Ob sie noch genau sind, wenn sie durch einen > Mikroprozessor behandelt werden, habe ich größere Zweifel, da > Befehlsausführungszeiten verschieden sein können. Dann ist das Programm da drauf nicht viel wert, wenn das davon abhängig sein sollte.
Lu schrieb: > Ob sie noch genau sind, wenn sie durch einen > Mikroprozessor behandelt werden, habe ich größere Zweifel, da > Befehlsausführungszeiten verschieden sein können. Seit wann? Jeder Mikroprozessor/-controllerhersteller gibt im Datenblatt genau an wie lange ein Befehl braucht. Und das ändert sich auch nie. Vanye R. schrieb: > Der Hersteller koennte also sogar diesen Temperaturwert > nehmen und das rechnerisch kompensieren. Ich würde vermuten, das die Kurve Temp/Abweichung an dieser Stelle so flach ist (obwohl sehr elliptisch), das selbst 20-30° keine nennenswerten Unterschiede mehr ausmachen, plus: wie genau ist die Temperaturmessung? Am Ende ist die Abweichung durch 1 Woche Fieber kleiner als die die durch einen "+-0,5°C"-Sensor all year long entsteht.
Jens G. schrieb: > Dann ist das Programm da drauf nicht viel wert, wenn das davon abhängig > sein sollte. Der ADC wird vermutlich permanent seine Daten wegschaufeln. Die MCU muss es nur abholen und vermutlich an eine fremdgetaktete Weiterverarbeitung schicken, die exakt diese Samples erwartet. Hatte ich mal bei einer speziellen Analog zu ISDN Wandlung bei dem ich einen propritären Bus emulieren musste. Mit zwei separaten Oszillatoren ist das aber nicht ohne weiteres erreichbar. Wenn man an den Clock der anderen Stufe kommt, daraus mit PLL den MCU Takt erzeugen. Jittert, ist aber ansonsten synchron. Umgleiche Samples hingegen führen zu Sprüngen im Signal und das hört man.
Jens M. schrieb: > Jeder Mikroprozessor/-controllerhersteller gibt im Datenblatt > genau an wie lange ein Befehl braucht. Schon beim STM8 kann man das nicht mehr mit Bestimmtheit sagen. Hängt von der Pipeline ab. Der ADC kann aber autarkt laufen und alle X Zyklen einen Wert liefern. Die MCU braucht nicht vorhersagbare Ausführungszeiten. Sie muss nur die Puffer rechtzeitig abholen bzw. füllen.
Jens M. schrieb: > Seit wann? Jeder Mikroprozessor/-controllerhersteller gibt im Datenblatt > genau an wie lange ein Befehl braucht. Und das ändert sich auch nie. Viele Mikrocontroller kennen so etwas wie Interrupts. Die grätschen in den Zeitablauf des Programms rein. Da nützt es überhaupt nichts, dass die Befehlsausführungszeit bekannt sind, wenn durch zufällige Interrupts im Programmablauf ganze Blöcke von Befehlen dazwischen geschoben werden. Feste Zeiten überlässt man besser einem unabhängig laufenden Timer/Zähler.
Michael schrieb: > Jens M. schrieb: >> Jeder Mikroprozessor/-controllerhersteller gibt im Datenblatt >> genau an wie lange ein Befehl braucht. > > Schon beim STM8 kann man das nicht mehr mit Bestimmtheit sagen. > Hängt von der Pipeline ab. Das ist im gegebenen Kontext schnurzegal. Auf dem Weg vom 16MHz Quarzoszillator über die PLL auf 153 Komma knips MHz über den Timer für die 2.048 MHz PWM bis hin zum ADC ... nirgendwo ist das Timing von der Ausführungszeit einer CPU Instruktion abhängig. Oder vom Zustand einer Pipeline.
Egal wie lange die Ausfuehrungszeiten sind, die 10ppm kann man trotzdem einhalten. Die Frage ist eher was wofuer die 10ppm wichtig waeren. Eine Sekunde pro Tag ist doch schon gut.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.