Hallo, ich benötige für ein Mikrocontrollerprojekt einen Quarz oder vorzugsweise einen Oszillator mit einer Schwingung von 2^x Hz, deutlich größer als 2^15 Hz. Er sollte zudem möglichst genau sein, d.h. kleiner 5ppm. Bisher habe ich nur Quarze für z.B. 2^22Hz gefunden, leider bestenfalls mit 10ppm. Oszillatoren, ganz zu schweigen von TCXO, sind mir noch nicht über dem Weg gelaufen. Zum Mikrocontroller kann ich im Moment noch nicht mehr sagen, als daß ich wohl einen besseren Atmel mit USB verwenden werde. Meine Fragen: Kann mir jemand von Euch verraten, wo ich geeignete Quarze/Oszis finde/kaufen kann? Wie schwer/sicher ist es wirklich, eine Oszillatorschaltung für meine Zwecke zu entwickeln? Vielen Dank im Vorraus!
Boris schrieb: > Wie schwer/sicher ist es wirklich, eine Oszillatorschaltung für meine > Zwecke zu entwickeln? Was genau sind Deine Zwecke? Für USB genügen jedenfalls 12Mhz +-0.5%.
(Wichtige) Ergänzung: Fällt vielleicht dem einen oder andern von Euch auch noch ein passendes Entwicklungsboard auf, bei dem sich vielleicht der Quarz gut tauschen lässt?
faustian schrieb: > Teilste durch tausend Du meinst wohl durch 1024. Das ist aber vmtl. nicht genau das was ich haben wollte.
Travel Rec. schrieb: > Was genau sind Deine Zwecke? Für USB genügen jedenfalls 12Mhz +-0.5%. Den USB hatte ich nur wegen der Spannung für den Quarz genannt, falls relevant, also 5V oder vielleicht 3,3V. Ich steuere mit dieser Frequenz zu Testzwecken Uhrenmotoren an. Damit die Versuche auch ihre Ordnung haben, also eine 2^(x+15)-Frequenz. - Aber ich freu mich schon, daß ihr so schnell antwortet!! Ich bin gespannt!
Wieso 1024, wenn es wirklich 32.76800000MHz sind (gibt es), musst Du (evtl in der Software) durch 1000 teilen, ausser deine Quarze sind in Mebihertz ....
Hmm, vielleicht stehe ich auf dem Schlauch... Also, daß es viele 32768MHz-Quarze gibt habe ich schon gesehen, aber wie kann man mit einem Mikrocontroller durch 1000 teilen, ohne Fourietransformation? Ich kenne nur Rechenoperationen wie shiften, usw.
Mal andersrum gefragt: Was wäre wenn ich einen VCXO verwenden würde? Wie soll ich mir das Einstellen der gewünschten Frequenz praktisch vorstellen? Haben die kleine Schräubchen, wie alte Quarzuhren mit Trimmer oder benötigen die noch spezielle Kondensatoren .... Ich meine die haben doch sehr weite Frequenbereiche. Wie schwer ist es da, eine Frequenz von 2^22Hz genau einzustellen? Ich glaube auch die VCXO sind tendenziell ungenaurer als feste XO oder?
Hallo, faustian schrieb: > aber 32.768MHz gibts. Teilste durch tausend und.... Da ich das hier letztens schonmal las: wozu soll der gut sein??? 2 hoch 25 wäre in der Gegend die nächste 2er Potenz und das sind 33554432 Hz oder 33.554MHz, um in Deiner Schreibweise zu bleiben. Gruß aus Berlin Michael
mal eine ganz andere frage, die möglichweise besser zum ziel führt: wie gedenkst du deinen uhrenmotor anzusteuern? falls du einfach z.b. 10 impulse pro sekunde benötigst, kannst du das mit irgendeinem uC und irgendeinem quarz machen.
"Also, daß es viele 32768MHz-Quarze gibt habe ich schon gesehen, aber wie kann man mit einem Mikrocontroller durch 1000 teilen, ohne Fourietransformation?" Zaehlen und vergleichen? Hier soll ja ein Takt und keine Zahl geteilt werden.
Für die von Dir gewünschten Frequenzen, musst Du dir wohl einen Quarz anfertigen lassen, ist aber nicht so teuer/schwierig wie es klingen mag: http://andyquarz.de/pageID_4902356.html Da es sich im Bereich von 1.5..30MHz (wir dort angegeben) um Grundtonquarze handelt, kannst Du sie ggf. auch direkt an controllerinterne Quarzoszillatorschaltungen anschließen. Wie sehr Dir das überhaupt weiterhilft, ist ohne genaue Beschreibung Deines Problems kaum zu sagen. Viel Erfolg Sascha
Jörg Wunsch schrieb: > Mit einem Timer Upps, manchmal sieht man den Wald vor lauter Bäumen nicht!! Stimmt! (gluglugug - am rot Anlaufen)
arno nyhm schrieb: > Da es sich im Bereich von 1.5..30MHz (wir dort angegeben) um > Grundtonquarze handelt, kannst Du sie ggf. auch direkt an > controllerinterne Quarzoszillatorschaltungen anschließen. > Wie sehr Dir das überhaupt weiterhilft, ist ohne genaue Beschreibung > Deines Problems kaum zu sagen. Ich denke das geht vermutlich schon. Der erste Schritt wäre ja schon mal erreicht, eine geeignete Frequenz zu haben. Nur in Bezug auf die Genauigkeit müßte ich mir noch überlegen, ob mehr Mühe nötig ist. Ich muß mal nachschauen, was die Datenblätter geeigneter Quarze sagen.
arno nyhm schrieb: > Für die von Dir gewünschten Frequenzen, musst Du dir wohl einen Quarz > anfertigen lassen Gibt es denn keine Möglichkeit einen 2^22Hz- oder 32,769MHz-Quarz mit eigener Oszillatorschaltung noch etwas in meinen Genauigkeitsbereit zu ziehen? Wie weit wäre das denn möglich? (z.B. von 10ppm -> 5ppm?) Oder ist der Aufwand zu groß? Vielen Dank auch schon einmal für Eure Beteiligung!
Jörg Wunsch schrieb: > Mit einem Timer. Die Frage klingt jetzt wirklich akademisch, würde mich aber mal interessieren: Wieviel Ungenauigkeit könnte der Timer zusätzlich in meinen Takt bringen?
Dein Problem ist nicht, einen Quarz(oszillator) hinreichend genau auf Deine Frequenz zu bekommen. Ihn dort zu halten, unter allen Spannungen, Temperaturen und sonstigen Einflüssen, ist die hohe Kunst. Was Du brauchst, ist ein TCXO oder sogar ein OCXO
Master Snowman schrieb: > falls du einfach z.b. 10 > impulse pro sekunde benötigst, kannst du das mit irgendeinem uC und > irgendeinem quarz machen. Leider ist das nicht so einfach.
Nur aus Neugier: Geht es um Echtzeit oder um plesiochrone Datenuebertragung?
Till Uhde schrieb: > Was Du brauchst, ist ein TCXO oder sogar ein OCXO Ein OCXO ist denke ich zu teuer. Die sollen ja auch viel Strom benötigen. Gibt es dazu noch etwas zu sagen?
faustian schrieb: > Nur aus Neugier: Geht es um Echtzeit oder um plesiochrone > Datenuebertragung? Stell mir bitte die Frage anders. Wo ist da der Unterschied?
faustian schrieb: > Geht es um Echtzeit oder um plesiochrone > Datenuebertragung? Wenn Du mit Echtzeit meinst, daß ich ständig aktiv das Verhalten der Motoren beeinflusse (Regelung), dann zweiteres. Anmerkung: Ich komme nicht aus der Nachrichtentechnik, ich befasse mich mit Motoren.
Boris schrieb: > Wieviel Ungenauigkeit könnte der Timer zusätzlich in meinen Takt > bringen? Ein vernünftig implementierter Timer bringt keine zusätzliche Ungenauigkeit mit sich. Falls dein Controller aber nur einen relativ primitiven Timer hat, den man beim Erreichen eines bestimmten Zählerstandes "zu Fuß" in der ISR wieder auf einen anderen Wert setzen muss, dann kommt die Latenz der ISR bzw. deren zeitliche Unbestimmtheit hinzu.
Jörg Wunsch schrieb: > Falls dein Controller aber nur einen > relativ primitiven Timer hat, den man beim Erreichen eines > bestimmten Zählerstandes "zu Fuß" in der ISR wieder auf einen > anderen Wert setzen muss, dann kommt die Latenz der ISR bzw. > deren zeitliche Unbestimmtheit hinzu. Auch dann kann man zyklusgenau timen, z.B. bei den einfachen 8051. Der Timer läuft nach dem Überlauf weiter, also einfach den Verkürzungswert addieren. Man muß davon noch Zeit für die Addition abziehen und die ist immer konstant. Unter C muß man sie aus dem Listing ermitteln. Peter
Peter Dannegger schrieb: > Der Timer läuft nach dem Überlauf weiter, also einfach den > Verkürzungswert addieren. Das geht aber nur, wenn die Zeit zwischen Überlauf und der Bearbeitung der ISR konstant ist und nicht jittert (bspw. weil ein [höher priori- sierter] Interrupt gerade bearbeiet wird). Wenn ich es mir aussuchen kann, würde ich jedenfalls einen Timer bevorzugen, der das in Hardware erledigt. Ob nun so wie beim AVR, dass der Zähler vorwärts zählt und beim Erreichen eines bestimmten Standes automatisch auf 0 geht, oder wie beim ehrwürdigen Z80, bei dem der Zähler mit einem einstellbaren Wert vorgeladen wird und dann rückwärts bis 0 zählt, spielt dabei weniger eine Rolle.
Jörg Wunsch schrieb: > Peter Dannegger schrieb: >> Der Timer läuft nach dem Überlauf weiter, also einfach den >> Verkürzungswert addieren. > > Das geht aber nur, wenn die Zeit zwischen Überlauf und der Bearbeitung > der ISR konstant ist und nicht jittert (bspw. weil ein [höher priori- > sierter] Interrupt gerade bearbeiet wird). > Nein, wenn man in der ISR (dann ist das "Jittern" ja schon passiert) den weitergelaufenen Timer ausliest (das ist der "Jitter", bzw. "Verkürzungswert") und den Timer dann neu startet unter Berücksichtigung dieses Wertes. Die Berechnung / neu starten ist konstant und kann einberechnet werden. Natürlich darf die ISR selbst innerhalb dieser Aktion nicht von einer höher priorisierten ISR unterbrochen werden.
Bernhard M. schrieb: > Natürlich darf die ISR selbst innerhalb dieser > Aktion nicht von einer höher priorisierten ISR unterbrochen werden. Außerdem hast du immer noch die Unsicherheit von 1 digit, da der Zähler ja kurz nach dem Auslesen (während der Berechnung) noch um 1 weitergezählt worden sein könnte. Oder du hältst den Timer vor dem Auslesen an und startest ihn danach neu, aber das könnte auch weiteren Jitter generieren. Ja, machbar ist das schon, aber es wäre nicht mein Vorzug
Boris, um was für Motoren handelt es sich denn überhaupt? Wie wirst Du diese ansteuern? Welche Rolle spielt der Mikrocontroller - was soll er erledigen? Sehr genaue Oszillatoren sind immer noch eine gewisse 'Kunst' - schnell kommt man bei Quarzen nicht mehr um eine Temperaturstabilisierung herum, also einen Ofen (OCXO). Die 20/10ppm die vom Andy angeboten werden sind schon nicht schlecht, evtl. kann er es auch noch genauer fertigen, da musst Du ihn wohl mal direkt fragen! In einer einfachen Oszillatorschaltung, so z.B. auch bei den der Mikrocontroller, lässt sich die Schwingfrequenz mittels eines zusätzlichen (Trimm-)Kondensators etwas 'ziehen', den Temperaturdrift beeinflusst das aber weiter negativ. Hast Du mal grob abgeschätzt/durchgerechnet wie genau dein System überhaupt sein muss - wie stark sich eine gewisse Abweichung bemerkbar machen wird? 'Möglichst genau' ist zwar immer eine nette Anforderung, doch steigt der Aufwand für die letzten Etappen enorm an, ob es sich wirklich lohnt sollte man dann mal konkret abschätzen. Dein Problem schein ja mit Uhren zu tun zu haben - wenn Du wirklich Langzeitpräzision mit geringsten Abweichungen benötigst, solltest Du vielleicht in Richtung Rubidium- oder DCF77-Frequenznormal gehen, welches dann einen anderen Oszillator stabilisiert. Ein größeres Experiment mit vielen synchronisierten Komponenten wird bei mir von einem mit Rubidium-Frequenznormal stabilisierten Timer gesteuert - dabei liefert das Frequenznormal 'ultragenaue' 5MHz welche als Ausgangsfrequenz für mehrere PLL-Stufen dienen, um die benötigten Frequenzen zu liefern - so kämst Du auch von einer gegebenen Frequenz auf deine gewünschte: PLL. Der 'Efratom FRS' ist sehr gutmütig und einfach anzusteuern, alle Magie passiert im inneren! Gebraucht, bei Helmut-Singer, kostet so ein Modul weniger als so mancher OCXO - von daher ist es vielleicht eine Überlegung wert?! http://www.helmut-singer.de/stock/-542008900.html Grüße Sascha
Jörg Wunsch schrieb: > Außerdem hast du immer noch die Unsicherheit von 1 digit, da der > Zähler ja kurz nach dem Auslesen (während der Berechnung) noch um > 1 weitergezählt worden sein könnte. Man darf dann natürlich keinen Vorteiler verwenden (hat der 8051 nicht). Damit ist man CPU-zyklusgenau. > Oder du hältst den Timer vor > dem Auslesen an und startest ihn danach neu, aber das könnte auch > weiteren Jitter generieren. Sollte man beim 8051 machen, da die 16Bit nicht gleichzeitig gelesen werden und ein 8Bit Überlauf möglich ist. Oder man garantiert, daß der Interrupt innerhalb 256 Zyklen nach Überlauf erfolgt (höchste Priorität zuweisen). Beim Anhalten entsteht kein Jitter. Peter
Hallo Sascha, also für normale Menschen klingt ein Rubidiumzähler schon abgefahren. Aber vielleicht bringe ich meinen Chef so auch wieder auf dem Boden. (Lach!) Nun, bei Euren Überlegungen sollte ich die Genauigkeitsanforderungen wirklich noch einmal prüfen. Aber die Lösung find ich allemal Klasse! Ich prüf auf jeden Fall mal was der kostet, würde mich interessieren. Vielleicht denk ich mal privat dran, fänd ich näckisch, damit fällt mir schon allerhand ein... ;) Peter, an was denkst Du, wenn Du von 8051 sprichst? Für mich ist das ein riesiges Feld. --------------------------------------- Also ich fasse mal zusammen: Taktproblem: 32,768MHz (mit Augenmerk Timer/Interruptprioritäten) oder 2^22Hz (<10ppm noch nicht aufgefunden) Genauigkeit: Rubidium, TCXO, Oszi bauen lassen (bis 10...20ppm) Entwicklungsboard zum leichten Quarztausch scheint wohl zu entfallen, da dem Takt mehr Aufmerksamkeit gegeben werden muß. Also erst Quarz-/Oszillatorwahl dann Entwicklungsboard. --------------------------------------- Na, vielen Dank für die vielen Antworten! Ich glaube fast wir sind am Ende angekommen, oder fällt noch jemandem etwas zu Genauigkeit, Takt oder Beschaffung ein? Über Links und Anregungen bin ich natürlich weiterhin dankbar! Vielen Dank noch einmal!
Rubidium-Oszilatoren und weiteres taktvolles Equipment gibt es zum Glück nicht nur in Singers Vollpreis-Apotheke, sondern bspw. auch beim freundlichen Chinesen im Netz um die Ecke: http://stores.ebay.de/Flyingbests-Equipment Vier Datum-Rubidum-Oszillatoren habe ich dort vor etwa einem halben Jahr erworben, Lieferzeit knapp drei Wochen, incl. einer Woche für die von DHL selbst ausgeführte Zollabfertigung, zur Entrichtung des 19prozentigen Wegelagerer-Bakshish. Recht beeindruckend ist es, zwei 10MHz-Rubidium-Oszillatoren an X und Y eines Scopes zu hängen, um nach ca. 90s zu sehen, wie die Lissajous-Schleife langsam "einfriert"... ;-) MfG
Bei den Rubidiumteilen lese ich immer wieder dass die Dinger doch diverse Verschleissmodi und keine unbegrenzte Lebensdauer haben.... OCXO gibts oefter bei Hoefler - gerade wohl leider nicht ;( Auf den letzten DAT hatte er massenhaft 32.768MHz 3.3V Vectron OCXOs auf dem Tisch, vielleicht mal anfragen ob er noch ein paar hat (meinen nutze ich als Labornormal und gebe den hoechstens im Tausch gegen einen anderen OCXO her).
Ich denke ich nehme Rubidium in meine Liste der Möglichkeiten mit auf. Werde mich informieren, wie es mit der Stromversorgung aussieht, wie das Signal abzugreifen ist, wie erschütterungsanfällig ... Vielen Dank.
visitor schrieb: > Recht beeindruckend ist es, zwei 10MHz-Rubidium-Oszillatoren an X und Y > eines Scopes zu hängen, um nach ca. 90s zu sehen, wie die > Lissajous-Schleife langsam "einfriert"... Selbst die Lissajous-Figur des Rb-Oszillators gegen den OCXO eines alten sowjetischen Zählfreuenzmessers (Ч3-54) wird schon beeindruckend langsam, wenn man den OCXO erstmal kalibriert hat. Zwar liefert der OCXO irgendwas, nur keinen Sinus, so dass die Figur sehr lustig aussieht, aber der komplette Umlauf der Figur lag dann auch bei einigen 10 s. Ich kann mir allerdings nicht vorstellen, warum man Motoren mit der Genauigkeit einer Atomuhr steuern können muss. Immerhin, so ein Rb-Oszillator geht im Verlauf von vielleicht eines Jahrzehnts um eine Sekunde falsch. Normale synchrone Funkkommunikationsprotokolle wie IEEE 802.15.4 kommen mit einer Genauigkeit von ±40E-6 aus.
Noch eine Frage: Die Temperaturstabilität halte ich für ein vernünftiges Argument, doch für meine Frage möchte ich sie zunächst einmal vernachlässigen: Mal angenommen, ich die gewohnte Genauigkeit eines Uhrenquarzes (32768Hz, mit Oszilatorschaltung ca.5ppm) würde mir ausreichen. Gibt es eine mögliche Schaltung mir der man die Frequenz (2^15 * 2^x) vervielfachen könnte (also 2^15 * 2^x), ohne an Genauigkeit einzubüßen? - Wieder bin ich gespannt am Warten!
@ Boris (Gast) >Gibt es eine mögliche Schaltung mir der man die Frequenz (2^15 * 2^x) >vervielfachen könnte (also 2^15 * 2^x), ohne an Genauigkeit einzubüßen? Ja, nennt sich PLL. MFG Falk
Ok, und wieder zurück zu den Rubidium-Oszillatoren: Was hat deren Frequenz mit meiner gewünschten (2^x+15Hz) zu tun? Wie geschieht falls nötig die Wandelung? Gruß Boris
Boris schrieb: > Mal andersrum gefragt: > > Was wäre wenn ich einen VCXO verwenden würde? Wie soll ich mir das > Einstellen der gewünschten Frequenz praktisch vorstellen? Haben die > kleine Schräubchen, wie alte Quarzuhren mit Trimmer oder benötigen die > noch spezielle Kondensatoren .... > > Ich meine die haben doch sehr weite Frequenbereiche. Wie schwer ist es > da, eine Frequenz von 2^22Hz genau einzustellen? > Stehe ich auf dem Schlauch? 4,194xxxMHz gibt es doch standardmäßig als Quarz. Dazu noch ein 74HC4060. fertig. Trimmen ginge auch. Ansonsten ist meine Antwort wie immer: Si570
Hallo, es sieht so aus, als ob sich das Problem mit einem TCXO lösen lässt. Ein freundlicher Hersteller ist sogar bereit mir einen zu schenken. Besser wärem mehr, da bei SMD und ja noch viel falsch gehen kann... Aber immerhin, es sieht so aus, als ob in diese Richtung endlich Licht ist. Scheinbar sind die Hersteller nur etwas langsamer gewesen. ------------------------ Es hat sich für mich eine Folgefrage ergeben, doch ich dachte, daß ich die besser in einem getrennten Thread stelle: Beitrag "Atmel mit separatem integriertem USB-Oszillator"
Abdul K. schrieb: > Ehrlich gesagt, Boris, du bist vollkommen unverständlich. Oh, dann werde ich versuchen, mich zu verbessern! ;)
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.