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.