¿Cómo verificar la frecuencia del reloj MSP430?

Estoy trabajando en un proyecto en el que se utiliza un MSP430 para proporcionar la sincronización de algunas cosas en las que la sincronización precisa es importante (puede tener un error del 10 %, pero no del doble). Esto es impulsado por el temporizador A0 que se ejecuta desde la fuente de reloj SMCLK en este caso. Me gustaría una función de autocomprobación mediante la cual pueda comprobar que el reloj del MSP430 no está demasiado alejado de las especificaciones (se supone que es de 25 MHz). En particular, me preocupan los modos de falla (aunque poco probables) que reducen el reloj de alta velocidad del MSP430 a un valor realmente bajo (kHz) a pesar de que el chip sigue funcionando: eso sería catastrófico en lo que respecta al resto del hardware. preocupado. Hay un reloj de 32kHz de un cristal en esta placa.

(1) ¿Existe una función de biblioteca (msp430ware, etc.) para verificar que los relojes estén bien?

(2) ¿Puedo usar el reloj de 32kHz para verificar el reloj de alta velocidad? ¿Cuál es la mejor manera de hacer eso?

(3) ¿Qué funciones de integridad de reloj tiene el MSP430?

¡Gracias!

Algunos MSP430 tienen un FLL para derivar un reloj más rápido de un cristal externo. ¿Qué chip?
@CL.: Es MSP320F53xx. Hay un FLL, ¿no está seguro de cómo usarlo?

Respuestas (2)

(2) ¿Puedo usar el reloj de 32kHz para verificar el reloj de alta velocidad? ¿Cuál es la mejor manera de hacer eso?

Utilice dos temporizadores: uno en el de 32 kHz y otro en el reloj de alta velocidad. Compara la diferencia y comprueba que está en rango válido.

(2) Use dos temporizadores, uno de cada fuente de reloj, y cuente cuántos tics del reloj de alta velocidad ocurren entre dos tics de 32 kHz. Si el valor está fuera de rango, ajuste el DCO adecuadamente.

En chips con el módulo UCS, el FLL puede hacer esto automáticamente sin necesidad de recursos adicionales como temporizadores. Puede configurar el FLL con la función driverlib UCS_clockSignalInit(UCS_FLLREF,...).

(1), (3) Las fuentes de reloj internas (VLO, REFO, DCO o lo que sea que tenga su chip) realmente no pueden fallar. Su único problema es que pueden no ser muy precisos.

Las fuentes de reloj externas se monitorean y tienen bits de error e interrupciones. Si falla un cristal externo, debe manejar esto de alguna manera. (El UCS cambia automáticamente a una fuente de reloj interna si falla un cristal, pero debe determinar si esto es apropiado en su aplicación. En su caso, si el cristal de 32 kHz se reemplaza con REFO, el reloj todavía está dentro del 10% límites.)