Hallo, ich habe ein Board designed und mehrfach aufgebaut mit einem STM32L010. Ich nutze die interne RTC + externen 32768 kHz LSE. Ich stelle nun fest, dass die ersten 4 Boards, die ich getestet habe, alle eine etwas zu schnelle RTC Clock haben. Die Boards gehen innerhalb einer Woche (604800s) zwischen 4 und 10 Sekunden vor, was einer Ungenauigkeit von < 17ppm entspricht. Ich habe ein 20ppm Quarz verbaut. Somit erscheinen mir die Werte erstmal plausibel. Ich habe nun basierend auf diesen Zahlen die RTCs der Boards kalibriert (RTC->CALR Register) und warte nun auf das Ergebnis. Da die Boards in einer halbwegs geschützten Umbgebung hängen, erwarte ich, ohne große Temperaturschwankungen, dass ich die RTC noch einen Tick besser hinbekomme. Mein konkretes Problem damit: Aktuell warte ich eine Woche bzw länger und schaue, wie falsch die Uhren gehen. Das mache ich mittels python-Skript und NTP synchronisierter Uhr im Rechner ich habe also vom PC + UART her noch vielleicht worst case 100 ms Unsicherheit. Ich habe noch ca 30 Boards vor mir und möchte diese nicht alle eine Woche liegen lassen, sondern die RTC schneller kalibrieren. Dafür habe ich mir erstmal den internen 512 Hz Takt der RTC nach außen gegeben. Ich habe einen Frequenzzähler (HP 5316A). Dieser zeigt mir auch eine gemessene Frequenz von knapp über 512 Hz an. Problem ist: Der Wert, den der Zähler anzeigt (ohne RTC Kalibrierung) springt immer mal wieder etwas auf und ab (je nach gating time). Zudem kenne ich die absolute Genauigkeit von meinem Zähler nicht. Aktuell betreibe ich den Zähler mit externer Referenz, die ich von einem R&S FSP Spectrum Analyzer gewinne. Genauere Angaben zur Genauigkeit habe ich aber keine. Welche Möglichkeiten habe ich, die RTC möglichst gut zu kalibrieren ohne lange zu warten? Ein paar Minuten Messzeit wären erträglich. Ich habe mir überlegt, ob ich mal bei Aliexpress so einen "GPS disciplined OCXO mit 10 MHz REF out" probiere. Hat damit jemand schonmal Erfahrungen gesammelt? Ich vermute, der LSE vom STM32L0 jittert und deshalb springt mein Frequenzzähler. Dieser zeigt bspw mit 4 Sekunden gate Zeit immer 512.0105 Hz an. Alle 10 Sekunden springt aber der Wert auf > 513 Hz. Weiß jemand, wo das herkommen könnte? Wenn ich die ref Frequenz von meinem Oszi messe, komme ich auf ~10 MHz und der Wert springt nicht. Da wackelt vielleicht die letzte Nachkommastelle mal.
M. N. schrieb: > Welche Möglichkeiten habe ich, die RTC möglichst gut zu kalibrieren ohne > lange zu warten? Ein paar Minuten Messzeit wären erträglich. Mit einem RP2040 Pico-Board könntest Du Dir einen einfachen, schnellen reziproken Frequenzzähler aufbauen: http://mino-elektronik.de/fmeter/fm_software.htm#bsp_RP2040 Im einfachsten Fall reicht das nackte Board mit einer Messrate von 3 Messungen/s.
M. N. schrieb: > Alle 10 Sekunden springt aber der Wert auf > 513 Hz. Die IO-Pins laufen ja mit dem CPU-Takt. Die Lesezugriffe der RTC-Register müssen also mit dem CPU-Takt synchronisiert werden.
Peter D. schrieb: > Die IO-Pins laufen ja mit dem CPU-Takt. Die Lesezugriffe der > RTC-Register müssen also mit dem CPU-Takt synchronisiert werden. Soweit ich das in der Doku von ST sehe, läuft der RTC_OUT auf PC13 komplett an der restlichen Logik vorbei und wird einfach rausgemuxt. Es gibt im Datenblatt sogar einen Hinweis, dass der Pin weniger Strom kann, als andere GPIOs, weil die von der Backup/RTC Domain versorgt werden. Aber kann natürlich sein, dass die da trotzdem was in den Systemtakt einsynchronisiert haben. Mi N. schrieb: > Mit einem RP2040 Pico-Board könntest Du Dir einen einfachen, schnellen > reziproken Frequenzzähler aufbauen: > http://mino-elektronik.de/fmeter/fm_software.htm#bsp_RP2040 > Im einfachsten Fall reicht das nackte Board mit einer Messrate von 3 > Messungen/s. Ja könnte ich machen. Das rohe Board hat ansich auch nur 20ppm. Da gewinne ich also so erstmal nichts. Aber ich schaue mal, wie genau meine 10 MHz Referenzen sind und dann baue ich mir vielleicht was.
So ein HP5316 sollte auch "Vielfach"-Periodendauermessung koennen. Fuer solche Faelle ist die naemlich da. Damit misst man dann 10, 100, ... 1 Million Perioden. Das funktioniert bereits bestens mit 32768 Hz. Den Kehrwert muss man halt mindestens einmal ausrechnen. Nach 3 s Messzeit hat man bereits einen aussagekraeftigen Wert. Einen OCXO kann man auch mit einem AK172 USB-GPS-Stick recht einfach kalibrieren. Die Blinkperiode von dessen LED, laesst sich auf die Frequenz des GPS-Empfaengers "locken", und ist in einem weiten Bereich einstellbar. Wo du nur Waende siehst, sind eigentlich ueberall Tueren.
M. N. schrieb: > Ja könnte ich machen. Das rohe Board hat ansich auch nur 20ppm. Da > gewinne ich also so erstmal nichts. Bei mir lagen die Grundabweichungen der eingesetzten Boards < 5 ppm, die man mit dem Trimmpoti aber auch reduzieren kann, wenn man mit einem externen Referenzsignal abgleicht: 10 MHz oder aber auch 1 PPS von einem GPS-Empfänger. Nachfolgende Schaltungen zeigen, wie dies auch automatisch passieren kann. Erfahrungsgemäß reicht es aus, RTC-Quarze <= 1-3 ppm zu trimmen, da die Temperatur sowieso für Schwankungen sorgt. Bei gleichen Bauteilen reicht es auch aus, einmalig einen passenden ext. Lastkondensator zu ermitteln. Ein Abgleich wird damit entbehrlich. Solange noch diese blöde Zeitumstellung bleibt, muß man die Uhren eh zweimal/Jahr neu stellen.
Ich mag RTCs mit eingebautem Quarz, da spart man sich den Abgleich. Z.B. der RX8010 läßt sich auch von älteren Bastlern gut löten, da die Beine nicht unterm Chip sind, sondern ganz altmodisch seitlich (SOP-8). Über I2C läßt er sich gut ansprechen und kommt mit 160nA aus.
Mi N. schrieb: > Solange noch diese blöde Zeitumstellung bleibt, muß man die Uhren eh > zweimal/Jahr neu stellen. Die Regel läßt sich doch einfach in Software implementieren.
Mi N. schrieb: > Solange noch diese blöde Zeitumstellung Ich find die ganz praktisch :) Peter D. schrieb: > Die Regel läßt sich doch einfach in Software implementieren. Richtig. Der STM hat da ja ganz praktisch auch diese Add 1h / Subtract 1h Funktion in der RTC, um ohne Takte zu verlieren die Zeit umzustellen. Ich werde heute Abend mal nochmal etwas mit meinem Frequenzzähler spielen und schauen, ob ich da reproduzierbare Zahlen rausbekomme.
Peter D. schrieb: > Mi N. schrieb: >> Solange noch diese blöde Zeitumstellung bleibt, muß man die Uhren eh >> zweimal/Jahr neu stellen. > > Die Regel läßt sich doch einfach in Software implementieren. Die Heizungssteuerung bei mir hat das und macht das vorausschauend schon ca. 14 Tage vorher. Keine Ahnung, wie ich das abstellen kann :-( Peter D. schrieb: > Z.B. der RX8010 Der kostet erheblich mehr als ein Quarz. War er die letzten Jahre auch lieferbar? Wenn das alles egal sein sollte, warum nicht gleich GPS? Braucht 0,0 nA Ruhestrom und sucht sich die Zeit beim Einschalten von alleine ;-)
M. N. schrieb: > Welche Möglichkeiten habe ich, die RTC möglichst gut zu kalibrieren ohne > lange zu warten? Noch eine Überlegung: Am STM eine externe Referenzfrequenz anlegen und ihn den Korrekturwert selber errechnen lassen.
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.