¿Cuál sería la mejor forma de diseñar un reloj de tiempo real para el MSP430?

Básicamente eso. La forma en que lo estoy haciendo ahora es con el TimerA configurado en interrupciones de 1 segundo. Pero creo que es muy molesto. ¿Hay otras formas de hacerlo?

Básicamente, quiero configurar temporizadores en ese reloj, como, apagar hasta que hayan pasado 40 segundos...

¿Qué tiene de molesto?

Respuestas (3)

No está del todo claro si desea un reloj en tiempo real o un cronómetro (los 40 segundos que menciona).

Podría usar un RTC IC (reloj en tiempo real), como el NXP PCF8563 . Este está disponible en varios paquetes, incluido el antiguo DIL y un DFN muy pequeño .
Pero probablemente no necesite un RTC IC separado. Por lo general, se usa porque consume muy poca energía y el resto del circuito puede apagarse mientras el RTC sigue funcionando con una batería o un supercondensador. Sin embargo, el MSP430 también es un dispositivo de bajo consumo y tiene un oscilador de baja frecuencia que puede funcionar con el mismo cristal de 32,768 kHz que usaría para el RTC.
En un proyecto, tenía el MSP430 funcionando continuamente en un cristal de 32 kHz y, sin embargo, consumía menos de 5 m R. Eso es más que un RTC (el PCF8563 solo necesita 250 nA), pero será aceptable para muchas aplicaciones.

¿Cuál es tu problema con la interrupción de 1s? Si desea hacer un reloj en tiempo real, necesitará una señal de tiempo de todos modos, ya sea generada internamente o proveniente de un RTC externo. Tras la interrupción, puede realizar las actualizaciones requeridas de los contadores de segundos, minutos y horas, y esperar la siguiente interrupción. Incluso podrías trabajar con décimas de segundo , aunque con los 32.768kHz esto tendrá una desviación menor. Tendrías cuatro décimas de segundo o 3277 tics de reloj, seguidos de una décima de 3278 tics, para obtener exactamente 1/2 segundo, así que repite este patrón una segunda vez para completar un segundo.

Hay dispositivos MSP430 con un oscilador de baja potencia que utilizan un cristal de reloj estándar de 32,768 kHz y están diseñados específicamente para ese tipo de aplicación. Uno típico es el MSP430F1101.

El temporizador A y el cristal del reloj son la mejor manera para que el msp430 mantenga el tiempo

Por lo general, un reloj en tiempo real se realiza al tener un módulo de reloj en tiempo real integrado en el microcontrolador o al usar un módulo de reloj en tiempo real externo como el DS1305 de Maxim.

Por lo general, se pueden programar para activar una interrupción en un momento predefinido y funcionar con su propio cristal de 32,768 KHz. A menudo tienen su propio circuito de respaldo de batería, y algunos incluso contienen circuitos de carga también.

Eso sería genial, pero tengo una plataforma ya desarrollada, principalmente un zolertia z1, que no tiene ningún tipo de módulo de tiempo real. Solo puedo confiar en los relojes de los microcontroladores...