Hallo zusammen Ich habe bei einem kleinen Datenlogger das Problem mit ungenauer RTC. Konkret ist ein STM32F091 mit einem 32,768kHz Quarz (CFS-20632768HZFB) mit 12,5pF Lastkapazität und angegebenen +-5ppm verbaut. Die Cs sind momentan 22pF. Nachdem ich den Logger nun 7 Tage laufen gelassen habe, hatte die RTC eine Abweichung von ~120 Sekunden (RTC ist zu langsam). Wenn ich richtig gerechnet habe entspricht das 200ppm Abweichung... Das ist für meinen Geschmack arg daneben. In welche Richtung und wie muss ich nun die Kapazitäten anpassen, dass zumindest 10-20ppm herauskommen. Für die Feinjustierung bietet der STM intern die Möglichkeit den Clock anzupassen, aber hab leider noch keinen Plan wie. Die 512Hz oder 1Hz Ausgabe nützt mir nichts solange ich keine genaue Referenz habe. Die entsprechenden Messgeräte habe ich leider nicht, und ein GPS Modul mit PPS Ausgang für ~300 Euro ist auch nicht gerade wenig. Hat jemand einen Tipp? Gruss Patrick
Hallo, ich kenne aus anderen Datenblättern, dass mit die Kapazitäten berechnen kann. Sind die 22pf schon die berechneten oder willkürlich (aus irgendeinem Schaltplan) verwendet? Oft braucht man für die 32k auch überhauptkeine externen Kondensatoren. Grüße
Patrick B. schrieb: > In welche Richtung und wie muss ich nun die Kapazitäten anpassen, dass > zumindest 10-20ppm herauskommen. Die Kapazitäten sollte deutlich kleiner werden - aber 10 ppm bekommst auch dann nur in einem kleinen Temperaturbereich..
> ... mit 12,5pF Lastkapazität und angegebenen +-5ppm verbaut. > Die Cs sind momentan 22pF. Bist du ein Ignorant? Wenn 12,5 pF gefordert sind, dann nimmt man auch 12,4 pF. > Für die Feinjustierung bietet der STM intern die Möglichkeit den Clock > anzupassen, aber hab leider noch keinen Plan wie. Jetzt ist die richtige Zeit, um sich mit dem Datenblatt oder der Applikationsschrift zur RTC zu beschäftigen.
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00221665.pdf Patrick B. schrieb: > In welche Richtung und wie muss ich nun die Kapazitäten anpassen Ins Blaue: kleiner ist schneller. Probier mal 10pFahrräder. Tipp: Trimmko selbstbau aus dünnem Cu-Lackdraht; ein Drahtstück "heisse" Seite, und die "kalte" (Masse) Seite mit einem eng drumherungewickeltem Drahtstück basteln. Millimeterkleine Konstrukte bewegen da schon "Welten". Parallel zu vorhandenen Kondensatoren, zum trimmen. HTH
Curry schrieb: > Bist du ein Ignorant? > > Wenn 12,5 pF gefordert sind, dann nimmt man auch 12,4 pF. Aha. Curry schrieb: >> Für die Feinjustierung bietet der STM intern die Möglichkeit den Clock >> anzupassen, aber hab leider noch keinen Plan wie. > > Jetzt ist die richtige Zeit, um sich mit dem Datenblatt oder der > Applikationsschrift zur RTC zu beschäftigen. Nein. Solange der Quarz um 200ppm verstimmt ist geht gewaltig etwas schief. Das solte vorher gelöst werden.
> Die 512Hz oder 1Hz Ausgabe nützt mir nichts solange ich keine genaue Referenz
habe. Die entsprechenden Messgeräte habe ich leider nicht, und ein GPS Modul mit
PPS Ausgang für ~300 Euro ist auch nicht gerade wenig.
Das ist etwas wenig .. vergiss es ganz einfach. Nur schon um dich in die
Genauigkeit von Zeitmessern einzuarbeiten ist ein GPS Clock das absolute
Minimum. Der gibt dir zumindest statistisch gut verteilt einen 1
Sekunden clock. Da naechst bessere ist ein GPS gelockter Synthesizer.
Das waere dann ein Synthesizer auf das GPS gelockt. Dazu gibt es
beliebig viele Projekte und Produkte.
Siehe "GPS disciplined Oscillator"
Curry schrieb: > Bist du ein Ignorant? > > Wenn 12,5 pF gefordert sind, dann nimmt man auch 12,4 pF. ehm, ja. Nur sind die beiden Cs wechselstrommässig in Serie, womit aus 2*22pF 11pF werden. Dein "Vorschlag" geht schon mal massiv in die falsche Richtung und DB lesen wäre auch angebracht... M. S. schrieb: > Sind die 22pf schon die berechneten oder willkürlich (aus > irgendeinem Schaltplan) verwendet? Das war mal eine grobe Schätzung aufgrund der DB-Angaben des Quarzes. Die Streukapazitäten kenne ich ja nicht. zeitnuß schrieb: > Die Kapazitäten sollte deutlich kleiner werden - aber 10 ppm bekommst > auch dann nur in einem kleinen Temperaturbereich.. Die Temperatur ist nicht so wichtig. Der Logger wird in einem Raum mit +-3 Grad eingesetzt.
Patrick B. schrieb: > M. S. schrieb: >> Sind die 22pf schon die berechneten oder willkürlich (aus >> irgendeinem Schaltplan) verwendet? > > Das war mal eine grobe Schätzung aufgrund der DB-Angaben des Quarzes. > Die Streukapazitäten kenne ich ja nicht. Dann würde ich mal das Datenblatt konsultieren - die Angabe des Quarzes alleine genügt nicht!
Patrick B. schrieb: > Hat jemand einen Tipp? Den Fehler ermitteln (hast du getan) und dann in Software rausrechnen.
Curry schrieb: >> ... mit 12,5pF Lastkapazität und angegebenen +-5ppm verbaut. >> Die Cs sind momentan 22pF. > > Bist du ein Ignorant? > > Wenn 12,5 pF gefordert sind, dann nimmt man auch 12,4 pF. Und die 12,5pF beziehen sich am Ende noch auf die Gesamtkapazität, also inklusive Layout. Dann nimmt man natürlich kein 12,4pF sondern einen entsprechend geringeren Wert. Patrick B. schrieb: > Die entsprechenden Messgeräte habe ich leider nicht, und ein GPS Modul mit > PPS Ausgang für ~300 Euro ist auch nicht gerade wenig. Dann nimm ein günstigeres. Selbst ein aktueller µ-Blox NEO-M8T mit zwei konfigurierbaren Zeit-Ausgängen kostet deutlich weniger als 80€. Ältere GPS Module mit 1PPS-Ausgang, z.B. NEO-7N bekommst du für unter 15€ https://www.ebay.de/itm/272600035053
Hallo! Zum einen: Die 12,5pF beziehen sich auf die Gesamtkapazität, bei deinen 2x22pF sind das entsprechend 11pF (aus Sicht des Quarzes sind sie in Serie geschaltet!) - also die Richtung stimmt. Ich kenne zwar Deinen Aufbau nicht, beachte aber, daß auch die µC-Pins und -Zuleitungen Kapazitäten von mehreren pF haben - auf S 69/128 im STM-Datenblatt werden z.B. insgesamt 10pF als Anhaltspunkt angegeben. Realistisch hast Du aktuell also nicht 11pF, sondern mindestens 21pF Gesamtkapazität. Du könntest also als ersten Versuch die Kondensatoren durch 2x10pF ersetzen. Zusätzlich bring' auch das Quarzgehäuse auf ein definiertes Massepotential, damit da keine weiteren Störungen einfließen können.
:
Bearbeitet durch User
Wolfgang schrieb: > Curry schrieb: >>> ... mit 12,5pF Lastkapazität und angegebenen +-5ppm verbaut. >>> Die Cs sind momentan 22pF. >> >> Bist du ein Ignorant? >> >> Wenn 12,5 pF gefordert sind, dann nimmt man auch 12,4 pF. > > Und die 12,5pF beziehen sich am Ende noch auf die Gesamtkapazität, also > inklusive Layout. Dann nimmt man natürlich kein 12,4pF sondern einen > entsprechend geringeren Wert. Der Wert wird wohl immer größer ausfallen als der beim Quarz angegebene, jdf. solange Cs nicht den üblichen Bereich weniger pF überschreitet.
1 | C1 * C2 |
2 | Cl = ------- + Cs |
3 | C2 + C1 |
https://www.st.com/resource/en/application_note/cd00221665.pdf --- war aber grad einer schon schneller.
> > Hat jemand einen Tipp? Maxim: Slow Clocks The following are the most common scenarios that cause a crystal-based RTC to run slow. 1. Overshoots on RTC input pins. It is possible to cause a RTC to run slow by periodically stopping the oscillator. This can be inadvertently accomplished by noisy input signals to the RTC. If an input signal rises to a voltage that is greater than a diode drop (~0.3V) above VDD, the ESD protection diode for the input pin will forward bias, allowing the substrate to be flooded with current. This, in turn, stops the oscillator until the input signal voltage decreases to below a diode drop above VDD. This mechanism can cause the oscillator to stop frequently if input signals are noisy. Therefore, care should be taken to ensure there is no overshoot on input signals. Another situation that is common to overshoot problem is having an input to the RTC at 5V when the RTC is in battery-backup mode. This can be a problem in systems that systematically shut down certain circuits but keep others powered up. It is very important to ensure there are no input signals to the RTC that are greater than the battery voltage (unless stated otherwise in the device data sheet) when the device is in battery-backup mode. 2. Wrong crystal. A RTC typically runs slow if a crystal with a specified CL is less than the CL of the RTC. The severity of the inaccuracy is dependent on the value of the CL. 3. Stray capacitance. Stray capacitance between the crystal pins and/or to ground can slow an RTC down. Therefore, care must be taken when designing the PCB layout to ensure the stray capacitance is kept to a minimum. 4. Temperature. The further the operating temperature is from the crystal turnover temperature, the slower the crystal oscillates. See Figures 3 and 4. --- Quelle: https://www.maximintegrated.com/en/app-notes/index.mvp/id/58
Patrick B. schrieb: > Das war mal eine grobe Schätzung aufgrund der DB-Angaben des Quarzes. > Die Streukapazitäten kenne ich ja nicht. Dann lass uns mal etwas feiner schätzen, und rechnen: Cl=Cl1*Cl2/(Cl1+Cl2)+Cs Annahme: Cl1= Cl2= 22pF Streukapazität 3pF: Cl= 14pf Streukapazität 4pF: Cl= 15pf Streukapazität 5pF: Cl= 16pf Streukapazität 6pF: Cl= 17pf ...zu hoch, Ozsillator zu langsam, was zu beweisen war. Annahme: Cl1= Cl2= 10pF Streukapazität 3pF: Cl= 8pf Streukapazität 4pF: Cl= 9pf Streukapazität 5pF: Cl= 10pf Streukapazität 6pF: Cl= 11pf ...zu niedrig, aber in die richtige Richtung trimmbar. Weiterer Tipp zum trimmen der 10pF: Wenn du keinen Cu-Lackdraht hast, geht hier auch Koaxkabel; ganz grobe Marschrichtung sind 1pF/cm. Zwei gleich lange Stücke (erstmal zu lang!) an die Kondensatoren parallel anlöten, Schirm auf Masse, Seele an die "heisse" Seite. Frequenz testen; iterativ die Koaxe paarweise kürzen bis es passt. HTH
Jürgen W. schrieb: > Ich kenne zwar Deinen Aufbau nicht, beachte aber, daß auch die µC-Pins > und -Zuleitungen Kapazitäten von mehreren pF haben - auf S 69/128 im > STM-Datenblatt werden z.B. insgesamt 10pF als Anhaltspunkt angegeben. Hmmm 10pF klingen nach sehr viel. Haste mal bitte einen link zu diesem Dabla?
Ohne den genauen Typ herauszusuchen: https://www.st.com/resource/en/datasheet/stm32f091cc.pdf Die Angabe auf S69 bezieht sich zwar auf den HF-Oszillator, aber auch die allgemeinen IO-Pins haben jew. 5pF Kapazität, siehe Tabelle 53 auf S80. Dazu kommt die Leitungskapazität von 3-5pF plus die Kapazität der Leitung vom Quarz selbst. Bitte beachte, daß sogar die Pads eines 0402-Bauteils zueinander schon 1pF haben. Also: 12,5pF-5pF (Zuleitungen) = 7,5pF => 15pF je Kondensator, davon 5pF Pin-Kapazität abgezogen liefert 10pF.
Hallo Patrick, eine Justierung aus Software-Ebene oder mit Zieh-Kondensatoren macht nur Sinn, wenn der Quarz bereits stabil schwingt, was bei so starken Abweichungen nicht zu erwarten ist. Der LSE Oszillator arbeitet nur mit sehr wenig Energie, um die Batterie zu schonen, deswegen ist er weitaus empfindlicher, als der HSE Oszillator. Schon 3cm lange Leitungen können ihn dazu bringen, völlig zu versagen. Auch ist noch lange nicht jeder Quarz kompatibel. Du musst zuerst dein Hardwareproblem lösen, erst danach macht es Sinn, über Kompensation per Software (bzw. Counter) nachzudenken.
Ich habe hier noch eine teilbestückte, abgeglichene Platine für einen Kanal (FIN3) mit TCXO für € 35. Lediglich das Display muß ergänzt werden. http://mino-elektronik.de/FM_407/fmeter_407.htm#b1 Der Schaltplan ist ganz oben auf der Seite.
Jürgen W. schrieb: Danke, sehr informativ, wieder etwas über SMD gelernt :D Stefanus F. schrieb: > Du musst zuerst dein Hardwareproblem lösen, erst danach macht es Sinn, > über Kompensation per Software (bzw. Counter) nachzudenken. Absolut, deswegen ja dieser Thread und der Vorschlag 22pF--->10pF. Cl=Cl1*Cl2/(Cl1+Cl2)+Cs Annahme: Cl1= Cl2= 10pF, Streukapazität 10pF: Cl= 15pF // zu hoch :-( Annahme: Cl1= Cl2= 6p8F, Streukapazität 10pF: Cl= 13pF // zu hoch :-( Annahme: Cl1= Cl2= 4p7F, Streukapazität 10pF: Cl= 12p35F // passt Hoffentlich schwing das Ding damit vernünftig. Aus der Dokomentation des F0 werde ich nicht wirklich schlau, aber es sieht so aus als könnte man auch am gain des Oszillatorschwingkreises zwischen low/mediumlow/mediumhigh/high "LSE oscillators with transconductance modifiable on the fly (dynamically). " in Software rumfummeln. Sorry, nicht meine Baustelle. Also dann neuer Vorschlag: 4,7pF für Cl1 und Cl2. Patrick, hoffentlich hast du nicht wegen 10pF eine Bestellung ausgelößt LOL
Das Nucleo-64 Board ist gemäß Schaltplan (https://www.st.com/resource/en/schematic_pack/nucleo_64pins_sch.zip) an dieser Stelle mit 2x 4,3pF bestückt. Im Zweifelsfall würde ich das einfach mal so nachbauen, ST wird sich dabei schon etwas gedacht habe.
Stefanus F. schrieb: > an dieser Stelle mit 2x 4,3pF bestückt. > > Im Zweifelsfall würde ich das einfach mal so nachbauen Jaaa 4,3pF. Steht auch im pdf deines Links wirklich da, ich traue meinen Augen kaum :D Kann man sogar "präzise" kaufen, wieder was gelernt, danke! https://at.rs-online.com/web/p/keramik-multilayer-kondensatoren/8145653/ 4,3pF zum ersten, höre ich weniger? 4,3pF zum zweiten, höre ich weniger? tbc :D
Stefanus F. schrieb: > Das Nucleo-64 Board ist gemäß Schaltplan > (https://www.st.com/resource/en/schematic_pack/nucleo_64pins_sch.zip) > an dieser Stelle mit 2x 4,3pF bestückt. > > Im Zweifelsfall würde ich das einfach mal so nachbauen, ST wird sich > dabei schon etwas gedacht habe. Der Quarz ist auch für Cl 6pF ausgelegt... Die 4,3pF ergeben plus 5pF des Pins ergeben total 4,65pF. Wenn man die 1,35pF Shunt-Kapazität gemäss DB noch dazu rechnet, ergibt das ja perfekt die 6pF. :) Jetzt habe ich zumindest einen Ansatz zum rechnen... 2 Cent schrieb: > 4,3pF zum zweiten, höre ich weniger? Ja ich, ich biete mehr (aufgrund der Ladekapazität von 12,5pF anstelle von 6pF wie beim Nucleo ;) ). Shunt-Kapazität ist 1,2pF. Ladekapazität 12,5pF und Pin-Kapazität 5pF. (12,5pF - 1,2pF) * 2 = 22.6pF 22,pF - 5pF = 17.6pF Somit müsste die Effektive Kapazität wohl zwischen 10-18pF zu finden sein.
:
Bearbeitet durch User
Curry schrieb: > Wenn 12,5 pF gefordert sind, dann nimmt man auch 12,4 pF. Aha. Da hat jemand keine Ahnung ;-) Die Leiterplatte und der Pin des STM32 haben ja keine Kapazität. Im Übrigen liegen die Kapazitäten in Serie, da sind 22pF 11pF, und das ist gar nicht so verkehrt. Bzw. wäre es, wenn das Layout nicht wäre. Das kann man grob abschätzen, aber dann muss man messen. Wie macht man das dann? Im Idealfall generiert man sich ein Signal aus dem RTCC-Clock (Bei PICs kann man z.B. den Takt in einem Timer verwenden) und misst die Frequenz. Das geht mit einem guten DSO mit Statistikfunktion so leidlich (Mitterwer aus 10000 Messungen), oder mit einem Frequenzzähler. Das Problem ist, dass man zu Beginn gar nicht weiß, in welche Richtung das geht. Das ist Probieren.
Patrick B. schrieb: > Shunt-Kapazität ist 1,2pF. Ladekapazität 12,5pF und Pin-Kapazität 5pF. > (12,5pF - 1,2pF) * 2 = 22.6pF > > 22,pF - 5pF = 17.6pF Diese Rechnerei mit Nachkommastellen bringt Dich nicht weiter. Wenn man es genau braucht, muß man einen Trimmkondensator einbauen und mit einem passenden Frequenzzähler abgleichen. Dabei kann man dann auch noch sehen, welche Driften bei Temperaturänderungen auftreten.
m.n. schrieb: > Diese Rechnerei mit Nachkommastellen bringt Dich nicht weiter. Wenn man > es genau braucht, muß man einen Trimmkondensator einbauen und mit einem > passenden Frequenzzähler abgleichen. Dabei kann man dann auch noch > sehen, welche Driften bei Temperaturänderungen auftreten. Mit den Nachkommastellen hast du recht. Denn die Kapazität des Layouts kann man auch nicht so genau berechnen... Es reicht aber aus, das einmal abzugleichen, und mit z.B. 30 weiteren Exemplaren der Platine gegenzuprüfen (um Exemplarstreuung auszuschließen). Bei 25°C, also auf dem Labortisch, denn da ist auch der typische Wert angegeben. Bei einem Einzelstück ist das sowieso unnötig, das gleicht man einmal ab und fertig. Wenn man Ansprüche hat, die über die üblicen 20ppm hinausgehen, muss man soweiso etwas anderes als einen billigen Uhrenquarz verwenden. Man kann z.B. einen hochpräzisen Quarsoszillator verwenden.
Jemand schrieb: > Es reicht aber aus, das einmal abzugleichen, und mit z.B. 30 weiteren > Exemplaren der Platine gegenzuprüfen (um Exemplarstreuung > auszuschließen). So sieht es aus! Wenn man sich die Temperaturdrift ansieht, ergibt ein genauer Abgleich bei einer Serie keinen Sinn, erst recht nicht, wenn das Gerät zu jeder Jahreszeit auch noch im Freien betrieben wird. Solange noch jedes halbe Jahr die Uhren umgestellt werden, kann man die 1 - 2 Minuten Abweichung gleich mit korrigieren. Präzisere Oszillatoren ((V)TCXO mit <= 1 ppm) bedingen eine höhere Ruhestromaufnahme (1 - 2 mA), was aber tolerabel sein kann. Als Lösung dazwischen bieten spezielle Uhrenbausteine wenige ppm Abweichung bei geringer Stromaufnahme.
Beim Chinesen gibts da grade schöne RTC Module mit nem TCXO. Günstiger als der IC selber. IC: https://www.maximintegrated.com/en/products/digital/real-time-clocks/DS3231.html
Patrick B. schrieb: > Wenn ich richtig > gerechnet habe entspricht das 200ppm Abweichung... Das ist für meinen > Geschmack arg daneben. Ja. Vielleicht stimmen die Werte deiner Kondensatoren nicht, oder du hast einen Aufbau (Steckbrett?) mit riesigen Streukapazitäten. Abblockkondensatoren am IC "vergessen"? Das aktuelle(!) Schaltbild und ein Foto vom Aufbau könnten helfen die Ursache zu finden.
Es handelt sich um einen 4-Lagen Print mit Top | Speisung | GND | Bottom Aufbau. Der Controller und die Quarze sind alle auf Bottom. Ich hab mir mal den Clock der RTC (über Controller-HW heruntergeteilt und ausgegeben) auf dem Oszi (vom Arbeitgeber) angesehen: Bei 2x18pF Last hatte ich 512,0025Hz bei >2k Samples gemessen. Die Samplerate des Oszis habe ich auf 20GS reduziert, damit ich nicht Stunden warten musste. Wenn ich mich nicht verrechnet habe ist das noch ~5ppm Abweichung bei Raumtemperatur. Das reicht für mich aus. Ich werde das ganze dann noch bei 1Hz Ausgabe untersuchen.
Patrick B. schrieb: > Wenn ich mich nicht verrechnet habe ist das noch ~5ppm Abweichung bei > Raumtemperatur. Rechnen ist ja immer schön, aber mit welchem Fehler rechnest Du denn beim Takt des Scopes? ;-)
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.