RTC - ¿vale la pena? [cerrado]

0

Necesito diseñar un circuito que contará el número de impulsos entrantes de una fuente externa (la frecuencia de la señal va de aproximadamente 0.05 Hz a un máximo de 100 Hz) en un intervalo de tiempo predeterminado (que puede ser 20, 30, 60). o 120 segundos) y luego muestra este número (en una pantalla LCD)

Estoy planeando usar un Atmega mcu con el código escrito en arduino. Mi pregunta es: ¿vale la pena usar un RTC externo o para este tipo de resolución (1 segundo) es seguro usar el reloj interno (con milis ())?

Mi objetivo es obtener algo lo más económico posible y con la menor cantidad de componentes posible, es por eso que estoy considerando evitar el uso de un RTC.

    
pregunta Virgil Litan

3 respuestas

6

En primer lugar, un reloj en tiempo real no es lo que quieres. Un reloj de tiempo real está diseñado para darle la hora actual, como en año, mes, día, hora, minuto, segundo, etc. Generalmente tiene una batería, por lo que puede mantener un registro de la hora cuando el dispositivo está apagado, y Ser mucho más complicado que un dispositivo de temporización básico. Desea medir el tiempo relativo, no el tiempo absoluto, por lo que necesita un oscilador.

Así que tienes algunas opciones:

  • Use el oscilador interno en el AVR, tal como está. La mayoría de (¿todos?) Los chips de la serie ATmega vienen de fábrica con un oscilador interno que tiene una precisión de aproximadamente ± 10%.
  • Use el oscilador interno, pero calibre primero. Puede medir la frecuencia del oscilador interno y ajustarla escribiendo a la variable especial OSCCAL . Terminará con un oscilador que es estable a aproximadamente ± 0.3% pero que depende ligeramente de la temperatura y del voltaje de suministro.
  • Use un oscilador de cristal externo. En realidad, si está utilizando un Arduino, hay uno integrado en el tablero. La precisión dependerá del oscilador y de la cantidad que pague por él, pero lo típico es de 20 ppm (ppm = partes por millón, 0.1% = 1000 ppm). Los cristales caros pueden ser mil veces mejores que eso.

Cualquiera de los anteriores le dará a la MCU una referencia de tiempo, y luego deberá escribir un código para medir el tiempo usando esa referencia. millis() es un buen comienzo, pero obtendrás una mejor precisión al usar los temporizadores incorporados del AVR.

    
respondido por el Jack B
0

Los relojes en tiempo real (RTC) se utilizan generalmente cuando se requieren el calendario y la hora del día. En su solicitud, un RTC agregaría la complejidad de la comunicación y el software necesarios para leerlo.

Con un dispositivo controlado por cristal, debería poder obtener una buena estabilidad, pero es posible que deba realizar una calibración para verificar cada dispositivo que construya. Una señal de bajo voltaje derivada de la red (50/60 Hz) puede ser suficiente para su aplicación.

simular este circuito : esquema creado usando CircuitLab

Figura 1. Una señal de referencia derivada de la red.

    
respondido por el Transistor
0

Ambos son tan buenos como sus osciladores son precisos. El oscilador R / C interno de una MCU no es muy bueno, pero no necesita ir tan lejos como un RTC para que sea mejor que solo pueda usar un oscilador externo. Si está interesado en un tiempo de mayor precisión, obtenga un receptor GPS. El sistema GPS está diseñado para una hora muy precisa, ese es su problema de cómo lo resuelven. He encontrado que un RTC listo para usar no es muy bueno en comparación con un GPS, ¿fue eso estrictamente su oscilador? Quién sabe.

Aunque eres el único que puede definir qué precisión necesitas, entonces necesitas encontrar una fuente de reloj con esa precisión. Si no te importa la hora del día, entonces un RTC es solo un gasto adicional, utiliza un oscilador de la misma precisión que habrías usado para el RTC y solo alimenta a la MCU con él.

Si necesita algo más preciso, entonces una solución basada en GPS o hay algunas soluciones basadas en señales de torre celular (CDMA, por ejemplo) que dan la misma salida que un GPS. Los servidores que se preocupan por el tiempo usan este equipo, por lo que está disponible, pero a menudo está montado en rack y es caro. Se pueden obtener receptores GPS baratos por alrededor de $ 10 a $ 15.

    
respondido por el old_timer

Lea otras preguntas en las etiquetas