Comprobación de cordura: uso del DS3231 como fuente de reloj para uC

El DS3231 es un chip RTC con un oscilador compensado por temperatura integrado y una salida de 32 kHz.

Quiero usar este chip en un pequeño proyecto de reloj que estoy diseñando porque tengo un par por ahí. Dado que tiene la salida de 32 kHz, quiero usar eso como fuente de reloj principal para el microcontrolador (PIC18F4550) y omitir el XTAL discreto para ahorrar espacio y BOM.

Todos los ejemplos que he encontrado usan un cristal de mayor velocidad para controlar el microcontrolador principal e ignoran la salida de 32 kHz del RTC, aunque a veces se usan 32 kHz para controlar otros circuitos.

Esto me hace dudar de mi decisión de diseño, pero no he encontrado nada que diga claramente que no puedo hacerlo. ¿Hay algún problema que deba conocer antes de fabricar la placa? Me doy cuenta de que al usar este método no tengo una segunda fuente de reloj para sintonizar el oscilador. Planeo hacer un prototipo.

Aquí está mi esquema:

ingrese la descripción de la imagen aquí

(El chip TPS es un regulador de 3,3 V conectado directamente a la batería de 9 V. EN debe decir /EN)

Verifique que su PIC admita este tipo de reloj extremadamente lento, pero si lo hace, entonces debería funcionar. Obviamente, ejecutar a 32 khz va a ser muy lento.
Asumiendo que el PIC no tiene nada sofisticado como DRAM, que necesita actualizarse periódicamente, no creo que la velocidad del reloj importe demasiado. Todavía tengo que encontrarme con un PIC que no sea síncrono.
Todo lo que hará es mostrar la hora/fecha en pantallas de 7 y 16 segmentos, por lo que me sorprendería mucho si 32 kHz no es suficiente.

Respuestas (1)

Este PIC, y todos los demás PIC18 que conozco, tienen un bloque de oscilador interno. No hay necesidad de un cristal externo, incluso si no tiene la salida de 32 kHz. La única vez que necesitaría usar un XTAL o reloj externo sería:

  1. Para sincronizar varios dispositivos con el mismo reloj,
  2. Si necesita una frecuencia muy específica (para comunicaciones seriales, etc), o
  3. Si necesita más precisión de la que proporcionaría el oscilador interno.

Este bloque INTOSC se configura configurando bits en el registro OSCCON. Puede elegir entre ocho valores de 31 kHz a 8 MHz para hacer funcionar el reloj del sistema.

En el registro OSCCON, configure el bit SCS1 para usar el bloque de oscilador interno. Luego, configure los bits IRCF2:IRCF0 para elegir su frecuencia. Esta imagen es de la Sección 2.4.1 de la hoja de datos:

INTOSC

Esto es conveniente porque puede elegir una frecuencia lenta para reducir el consumo de energía y luego aumentarla si es necesario.

Por supuesto, podría usar la salida RTC de 32 kHz, pero puede ser una complejidad innecesaria. Además, tenga en cuenta que el PIC18F4550 tiene una arquitectura de oscilador diferente a la de otros PIC18 debido a la forma en que sincroniza su módulo USB. Esto no le impedirá usar la señal de 32 kHz, pero requerirá una configuración diferente a la que puede estar acostumbrado.