Cómo sincronizar el reloj STM32F4 con el reloj de la PC

0

Estoy usando 3 STM32F401RE para sincronizar sus relojes. Mi precisión deseada es de 1 ms e incluso menor como 0,1 ms. Este dispositivo está conectado a la PC a través del puerto USB.

Pregunta 1:

¿Entonces me gustaría saber si puedo sincronizar cada uno de ellos con el Reloj de la PC y luego estarían sincronizados?

Pregunta 2:

Ahora mismo estoy usando RTC y el reloj comienza a contar desde el encendido. ¿Puedo, por ejemplo, configurarlo para que comience a contar con un comando (por ejemplo, con una secuencia de comandos de Python para activarlo?)

    
pregunta Youssef Kamoun

1 respuesta

1

Le sugiero que lea lo siguiente acerca de Uso del reloj de tiempo real del hardware ( RTC) en las series de MCU STM32 F0, F2, F3, F4 y L1 . La sincronización de la pieza RTC comienza en la página 19.

Solo para resaltar los conceptos básicos del documento:

  

El calendario RTC se puede sincronizar con un reloj más preciso, "remoto   reloj ", utilizando la función de cambio de RTC. Después de leer el sub-segundo RTC   campo, un cálculo del desplazamiento preciso entre el momento   Mantenido por el reloj remoto y se puede hacer el RTC. El RTC puede   se ajustará eliminando este desplazamiento con un ajuste fino utilizando el   control de registro de desplazamiento.

  

Corrección del tiempo del calendario RTC

     

Si el reloj RTC avanza en comparación con el reloj remoto en n   fracciones de segundos, el valor de desplazamiento debe escribirse en SUBFS,   que se añadirá al contador del prescaler síncrono. Como esta   contador cuenta atrás, esta operación resta efectivamente de   (retrasa) el reloj por:

     

Retardo (segundos) = SUBFS / (PREDIV_S + 1)

     

Si el RTC se retrasa en comparación con el reloj remoto por n fracciones de   segundos, el valor de compensación se puede agregar efectivamente al reloj   (avanzando el reloj) cuando la función ADD1S se usa en conjunto   con SUBSF, efectivamente avanzando el reloj por:

     

Avance (segundos) = (1 - (SUBFS / (PREDIV_S + 1))).

    
respondido por el Bence Kaulics

Lea otras preguntas en las etiquetas