Interpretando las desviaciones de los cristales

2

Estoy investigando la precisión de un cristal montado en una MCU. La API proporcionada por el fabricante de MCU tiene una función TimeGet48 que devuelve un número de 48 bits que indica los microsegundos transcurridos.

Lo que hice fue configurar la MCU para que emita su reloj interno cada 10 segundos a través de UART.

'19:15:18.830 Time: 0000, 947edfeb',
'19:15:28.829 Time: 0000, 95177715',
'19:15:38.829 Time: 0000, 95b00e3f',
'19:15:48.828 Time: 0000, 9648a569',

Arriba hay una parte del registro. Cada línea de registro consta de la hora del reloj de la PC, 16 bits altos del temporizador de 48 bits y luego 32 bits bajos del temporizador de 48 bits. Trazé t_crystal - t_pc contra t_pc a continuación:

Estegráficomuestraladesviacióndetiempoduranteunperíododeaproximadamente14horas.Esperabaunaumentoodisminuciónmonótono,peroestacifrarealmentemehacepreguntarmecómoesposible.

Estoypensandoenlossiguientesfactores:

  1. ElrelojdelaPC(yousoWindows7)puedenoserpreciso.ProbablementelaPCsesincronizaráconunservidordetiempoglobalunavezcadapocashoras.Sinembargo,cuandoinvestigoestoenelProgramadordetareas.Misincronizacióndetiemposeestablecióen1AMcadadomingodecadasemana.Esteregistrosecapturóelmartes,porloquelahoradelaPCnocambiaríadebidoalasincronización.
  2. ElrelojdePCyeltiempodecristalestabanambossujetosatruncamientooredondeo,obviamente.
  3. Cambiosdetemperaturadebidoalaireacondicionado.Registréestosdatosdurantelanoche(de6a8delamañanadeldíasiguiente).Elaireacondicionadoenmioficinaseapagadespuésdelas6pmyseenciendealas8am.

Estosfactoresdefinitivamenteimpactaríanlasdesviacionesdelcristal.Sinembargo,ningunodeestoshacequelafluctuaciónenformadezigzagseasensible.

[Actualización]

IntentélasugerenciadeBrianDrummondyladejécorrerpor4horasydehechofuncionó.Aquíhayunanuevafigura.

    
pregunta foresightyj

3 respuestas

1

El problema parece ser que NTP vuelve a sincronizar el reloj de la PC, en lugar de cualquier error en el propio oscilador de cristal.

La desconexión de NTP muestra un patrón interesante diferente: aparentemente desviaciones aleatorias dentro de una banda de aproximadamente 15 ms de ancho, que a su vez se desplaza lentamente con el tiempo.

El reloj predeterminado de la "hora del sistema" de la PC funciona a aproximadamente 55Hz o aproximadamente a un período de 18 ms: es casi seguro que esta es la causa de la banda ancha. Si amplía la "línea gruesa" en la medición anterior, esperaría ver el mismo tipo de patrón.

Entonces, la verdadera desviación sería el gradiente de esa banda: alrededor de 0.005 segundos en aproximadamente 3 horas (10000 segundos) o 1 segundo en 200 * 10000 segundos o 0.5 ppm.

Como una especificación de cristal típica es de aproximadamente 20 ppm y depende de la temperatura, este es un buen resultado, mejor de lo que se puede confiar a largo plazo.

Un buen experimento de seguimiento sería cambiar la temperatura del cristal MCU + (¡colgarlo fuera de la ventana o debajo de una lámpara de escritorio!) y observar si (y cómo) cambia el gradiente en esas circunstancias.

    
respondido por el Brian Drummond
2
  1. El reloj de la PC no es exacto: NTP (como lo usa el sistema operativo de alto nivel) puede tener varias fuentes de error, ninguna de ellas bajo su control. Necesita un mejor reloj de referencia sobre el que tenga control. Un servidor de tiempo disciplinado por GPS es una solución relativamente barata, incluso hay servidores NTP y PPTP integrados de código abierto con un módulo GPS.
respondido por el Lior Bilia
1

Sospecho que estás viendo la granularidad del ajuste de frecuencia en el reloj de tu PC.

Básicamente, cada vez que comprueba NTP, obtiene un rápido retorno (pero no instantáneo) a una desviación de aproximadamente cero, y luego agrega / resta 1 del valor que sintoniza la desviación del reloj.

Lo que creo que sucede luego es que su sistema está oscilando entre un valor de compensación de deriva de n y n+1 , donde el valor correcto podría ser n+0.5 . Apuesto a que el registro de afinación es de 8 o 16 bits, y no hay suficiente precisión allí para configurar la afinación exactamente de manera correcta, por lo que se difumina alrededor del valor deseado.

    
respondido por el Connor Wolf

Lea otras preguntas en las etiquetas