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

5

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 alguna otra forma de hacerlo?

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

    
pregunta Sergio Campamá

3 respuestas

4

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 aplicaciones. Una típica es la MSP430F1101.

    
respondido por el Leon Heller
3

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

Puede usar un RTC IC (reloj en tiempo real), como el NXP PCF8563 . Este está disponible en varios paquetes, incluido el antiguo DIL y un muy pequeño DFN .
Pero probablemente no necesite un RTC IC separado. Normalmente se usa porque consume muy poca potencia , y el resto del circuito puede apagarse mientras el RTC sigue funcionando con una batería o supercap. El MSP430, sin embargo, también es un dispositivo de baja potencia, y tiene un oscilador de baja frecuencia que puede ejecutarse en el mismo cristal de 32.768 kHz que usaría para el RTC.
En un proyecto tenía el MSP430 ejecutándose continuamente en un cristal de 32 kHz y, sin embargo, consumía menos de 5 \ $ \ mu \ $ A. Eso es más que un RTC (el PCF8563 solo necesita 250nA), pero será aceptable para muchas aplicaciones.

¿Cuál es tu problema con la interrupción 1s? Si quieres hacer un reloj en tiempo real, necesitarás una clave de tiempo, ya sea generada internamente o proveniente de un RTC externo. Tras la interrupción, puede realizar las actualizaciones necesarias 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.768 kHz esto tendrá una desviación menor. Tendría cuatro décimas de segundo o 3277 tics de reloj, seguidos de una décima parte de 3278 tics, para obtener exactamente 1/2 segundo, así que repita este patrón una segunda vez para completar un segundo.

    
respondido por el stevenvh
1

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

Por lo general, estos pueden programarse para desencadenar una interrupción en un tiempo predefinido y ejecutar 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.

    
respondido por el Majenko

Lea otras preguntas en las etiquetas