Problema con el Timer 0

Ya tengo unas medidas para pensar. Cristal miniatura de 23.768 Hz

C=100 pF atrasa 11,2s en 24H (129 ppm)
C= 47 pF atrasa 6,3s en 24 H (72 ppm)
C= 33 pF atrasa 5 s en 24 H (57 ppm)
 
Finalmente he decidido compensar el atraso mediante el programa.
Con un código adecuado he llegado a 1 seg/día y ahora voy a experimentar para conseguir un ajuste fino.
 
Hola, para hacer un ajuste fino, habrá que esperar el desfase de al menos un seg. Luego según sea el adelanto/atraso, se lo sumas o restas al período de tiempo transcurrido que ocasionó ese desfase.
Es decir, si tu reloj retrasa un segundo por semana, pues cada semana le añades un segundo.
No intentes corregir eso desde la base de tiempos, porque nunca podrás mejorar la precisión.
 
Hola, en eso estoy. debo aclararte que mi 'reloj' es una maquinaria que avanza un minuto por cada impulso que genera el microcontrolador. Utilizo 16 ciclos de interrupción por segundo, de modo que jugando con ese número, cada cierto tiempo, voy corrigiendo la velocidad media. Sólo he previsto tres pulsadores, marcha, paro y avance de un minuto. Pienso en añadir un DIP para, digamos, ajustar una especie de péndulo virtual. Tampoco hay problema en esperar un retraso de un minuto y volver a sincronizar. Al fin y al cabo, se trata de un hobby.

Trabajo al mismo tiempo otro modelo con display de segundos que podría aprovechar para controlar ese péndulo, a base de pulsaciones y guardar números mágicos en la memoria EEPROM del PIC.

Desde hace años, muchos, tengo otro circuito en marcha que usa un cristal de 1MHz y divisores TTL para esta misma maquinaria. Curiosamente, este circuito sí es muy preciso. En esta ocasión se trata de algo tan simple como dividir por programa pero sin utilizar un oscilador externo.

Saludos
GV.

Aquí puedes ver el invento.

image.jpg
 
Última edición:
La estabilidad de un cristal de cuarzo depende de la temperatura,
xtal2.gif

Seguramente el reloj viejo al que haces referencia tiene cámara térmica o el oscilador consume mas corriente y el cristal se estabiliza a mas temperatura. Me acuerdo de los blu canaleros, cuando recién los prendías estaban corridos en frecuencia, luego de 15 minutos se estabilizaban, en el frente tenían una perilla (clarificador), que iba a un capacitor variable conectado al cristal o un potenciómetro con varicap al cristal.
 
Buenos días!
ya tengo listo y montado el primer reloj controlado por impulsos, reciclado de hace más de 40 años. Finalmente tuve que corregir por programa el desajuste de la frecuencia del cristal. Este modelo es de 32,768 kHz. En varios días no aprecio pérdida de sincronismo con mi reloj patrón DFC77, así que lo doy por bueno. Lleva tres botones, MARCHA, PARO, AVANCE que permiten de modo muy simple sincronizarlo con las señales horarias o con la hora de la red de telefonía móvil.

Próximamente, un modelo algo más modernizado, con segundero digital.

Saludos

2018-09-07 12.44.04.jpg2018-09-07 12.44.39.jpg
 
Leíste lo que te aclararon anteriormente....¿A que temperatura?, tendrás variaciones para corregir según la misma por que ya de por si cualquier oscilador es afectado por esta en PPM(partes por millón) aun los cristales de cuarzos.

La única forma de tener medianamente "exactitud" es independizando las medidas del patrón de factores comunes que lo alteren.

Hay que ver hasta cuando te es satisfactorio para ti o tu uso.

Recuerda que si fuera sencillo cualquier dispositivo como PC no necesitaría de conectarse a un servidor NTP(Network Time Protocol ) para mantener el reloj del sistema "en hora".

Ric.
 
Tienes toda la razón, pero me conformo con la precisión de un reloj de cocina de 2,50 eur, de IKEA. Uso el mismo cuarzo, que lo he sacado de una de esas maquinarias. Es por no complicarlo más, pues el cristal de 32.768 podría ponerlo en un oscilador TTL aparte, mucho más preciso -por lo que tengo entendido- que el oscilador interno del PIC en modo LP.

Básicamentese trata de jugar un poco con la programación. Un reloj de cocina y un divisor 1/60 CMOS harían la misma función que todo el PIC, lo sé.

Digamos que 1 seg/24h vienen a ser 11 ppm y viendo aquella gráfica, centrada en 25ºC, podríamos tener desde +1 s a -1 s entre 15 y 35 grados, que viene a ser invierno - verano. En teoría se compensarían a lo largo del año. Pero ahora se trata de ajustar hasta << 1 seg /día y la temperatura actual es de 25ºC
No hay mayor problema que reprogramar el PIC cada semana o implementar un mecanismo de ajuste externo y luego pasarlo al programa.

G.
 
Corrigiendo por software podés llegar a errores menores de 10s por mes. Habrá variaciones por temperatura a lo largo del tiempo , pero una corrección al año será suficiente.
 
Todo bien eso es dependiendo del cuarzo y dependiendo de que sea la curva que corresponde a tu cuarzo específicamente que me dices de los capacitores que se usaron en el oscilador, son NPO o N750, etc. ?

No hay problemas, se puede lograr solo que cada corrección por software para lograr precisión te llevara mas tiempo corregirla porque tendrás que hacerlo a prueba y error.

La solución por hardware es usar combinaciones de capacitores de distintos valores con distintos coeficientes en temperatura para que se auto-ajuste y compense las variaciones o lleva el cuarzo y el oscilador a una temperatura que no sea afectada por el medio(cámara térmica) como ya comentaron antes.

Ric.
 
Básicamente el oscilador interno del PIC también usa compuertas lógicas TTL y es muy preciso, pero como en todo, también influye la temperatura y las variaciones del voltaje de alimentación.
Ahora, la precisión de los osciladores externos está basada en los capacitores que se usen y antiguamente se incorporaba un calefactor para mantener más estable la frecuencia del cristal.

Algo más preciso en cuestión de tiempo, sería usar un RTC, que de cualquier modo también tendrá variaciones.
 
Atrás
Arriba