Un orologio per l’ora siderale
Un orologio siderale segue la rotazione del cielo stellato invece che quella del sole. Il
metodo per trasformare un normale orologio in un misuratore del tempo siderale è preso
dagli articoli “Making a sidereal Clock” di J. Watson e “An accurate sidereal clock using
a digital clock” di D.L. DuPuy. L’implementazione del circuito è invece diversa dalla
loro: in rete non ne ho trovate di simili alla mia. Prima di passare all’elettronica è
necessaria una brevissima introduzione astronomica.
Tempo civile e tempo siderale
Servendoci di un normale orologio osserviamo che una stella, ad esempio Sirio, sorge e
tramonta ogni giorno ad orari differenti, ed è per questo che le costellazioni visibili in
cielo sembrano spostarsi nel corso dell’anno. Usando un orologio siderale vedremo
invece Sirio sorgere e tramontare sempre alla stessa ora “siderale” ogni giorno dell’anno,
semplificando così moltissimo le osservazioni astronomiche [1] , [2].
Il “giorno siderale” è l’intervallo di tempo che trascorre fra due passaggi consecutivi del
“punto d’Ariete” o “punto γ” allo stesso meridiano. Il punto γ è il punto del cielo in cui
si trova il sole all’equinozio di primavera: è così chiamato perché il simbolo astronomico
della costellazione dell’Ariete assomiglia alla lettera greca γ. Durante un giorno siderale
la terra ruota di 360 gradi intorno al proprio asse.
Il “giorno civile” è l’intervallo di tempo che trascorre fra due passaggi consecutivi del
Sole allo stesso meridiano. Durante un giorno civile la terra ruota di 361 gradi intorno al
proprio asse e contemporaneamente ruota di un po’ meno di 1 grado intorno al sole. Il
tempo supplementare necessario a compiere questo grado aggiuntivo rende il giorno
civile più lungo di circa 4 minuti (3 minuti, 55 secondi e 91 centesimi) rispetto al giorno
siderale.
Poiché durante un anno civile il Sole passa 365 volte sul nostro meridiano mentre il
punto γ ci passa 366 volte, un orologio siderale deve essere 366/365 volte più veloce
di un orologio civile. Per essere più precisi visto che l’anno tropico è lungo 365.2422
giorni il coefficiente esatto è pari a 366.2422/365.2422 = 1.002737909.
Per semplicità ho trascurato la precessione degli equinozi: una trattazione esaustiva è
presente in “Astronomia Nautica e Navigazione Astronomica”, cap X , Fernando Flora,
Hoepli. [3]
Il convertitore siderale di Watson e DuPuy
Torniamo all’elettronica. La loro idea di oltre trenta anni fa è quella di pilotare un
normale orologio digitale con clock a 50 o 60 Hz con un clock opportunamente
accelerato. Se ogni 1461 (365.25 x 4) impulsi di clock se ne inseriscono 4 “aggiuntivi”,
allora il nostro orologio accelera di una quantità pari a [(366.25 x 4) + 4 ] / (365.25 x 4)
= 1465/1461 =1.002737851 con un errore di soli 2 secondi l’anno rispetto al tempo
siderale vero. [4] , [5].
Il loro circuito originale usa tre SN74193 per il contatore per 1461 che eccita un NE555
monostabile. Il monostabile abilita per circa 9 msec un NE555 oscillatore a circa 430
Hz che genera esattamente 4 impulsi. Un CD4011 provvede ad inviare in uscita gli
impulsi a 50/60Hz Hz di rete oppure i 4 impulsi aggiuntivi. Una bella realizzazione con
foto e commenti è reperibile sul sito di Hans Summers
http://www.hanssummers.com/sidereal.html . [6]
Il mio convertitore siderale
C’era poco da cambiare in un circuito perfetto, ho quindi seguito una via diversa: in
fondo per accelerare la frequenza della rete basta prima moltiplicarla per 1465 e poi
dividerla per 1461.
Per moltiplicare per 1465 ho usato un PLL 4046B che con una frequenza di ingresso di
50.00 Hz genera una frequenza in uscita di 73250.00 Hz che viene poi divisa da un
4040B per 1461 fornendo una uscita a 50.13689254 Hz. Il rapporto f_out / f_in è pari a
1.002737851 che è il fattore di accelerazione cercato.
Il 4046B è un completo PLL, occorre solo il divisore esterno per chiudere l’anello.
All’interno ci sono due comparatori di fase con uno dei due ingressi che accetta anche
segnali analogici a basso livello; c’è un VCO che lavora fino a 1.4 MHz e c’è una uscita
disaccoppiata per la demodulazione di frequenza. La versione CD74HC4046A a 5 Volt
ha tre comparatori di fase e lavora fino a 12 MHz.
Per dividere si usa il 4040B che viene resettato quando sui sette diodi compare
contemporaneamente il livello logico 1. Su alcuni esemplari il collegamento diretto fra i
diodi e il reset non forniva risultati stabili quindi ho usato un BC237 realizzando una
porta AND in logica DTL (Diode Transistor Logic) come usava tanti anni fa. Il
condensatore da 470 pF allarga l'impulso di reset a circa 2 usec.
Il tutto funziona così:
a) l’uscita del VCO (pin 4) viene inviata al primo 4040B che la divide per 1465
b) dall’uscita Q11 si preleva il segnale diviso che viene inviato al comparatore di fase
(pin 3) del 4046B
c) il clock f_in=50Hz estratto dalla rete elettrica entra nel comparatore di fase (pin 14)
attraverso un BC237
d) l’uscita del comparatore di fase II (pin 13) viene fatta passare attraverso un filtro
RC per ottenere la tensione di controllo che entrando sul VCO_control (pin 9) corregge
la frequenza del VCO
e) la correzione prosegue finché il comparatore di fase II rileva l’uguaglianza fra le fasi
(e quindi delle frequenze) dei due segnali al suo ingresso:
- il riferimento di rete a 50 Hz
- l’uscita del VCO divisa per 1465
f) il VCO si è agganciato stabilmente alla frequenza f_out=f_in x 1465 = 73250 Hz
g) ogni variazione viene automaticamente corretta modificando la tensione VCO_control
h) l’uscita del VCO (pin4) viene inviata al secondo 4040B che la divide per 1461
i) dall’uscita Q11 si preleva un segnale con frequenza f_sid= f_out / 1461
All’uscita del circuito avremo una frequenza pari a f_sid= 50 x 1465 / 1461
I valori di Rvco=8K2 e Cvco=470pF del VCO li ho ricavati partendo dai grafici del
datasheet del 4046B e adattandoli per ottenere una frequenza fo di circa 75 KHz con
V_control= V_alim / 2.
Senza entrare in dettagli matematici un po’ oscuri per me dopo troppi anni, un PLL può
essere rappresentato come un filtro del secondo ordine, quindi ha due poli, un fattore di
merito Q che è stretto parente del fattore di smorzamento “d” ed una sua frequenza di
risonanza, dipendente anche dal fattore di divisione N, che viene definita “frequenza
naturale ad anello chiuso”. Per una trattazione approfondita rimando all’ottimo articolo
su Grix di One of One focalizzato sulla teoria dei divisori a semplice e doppio modulo e
alla dispensa “Sintetizzatori in aggancio di fase” focalizzata sulla teoria del filtro passa
basso [9] , [10], [11] .
I valori di R1=12K, R2=12K e C1=2.2uF del filtro sono ricavati dalle formule presenti
nelle application notes AN1410D “configuring the CD74HC4046A” e AN535 “PhaseLocked Loop Design Fundamentals” [7] , [8]. Sono partito dai valori di 0.707 (min 0.5
– max 0.9) per il fattore di smorzamento “d” e di 5 Hz per la frequenza naturale a loop
chiuso “Wn” pari a 1/10 della frequenza di riferimento del PLL di 50 Hz. Ponendo
R2=12K ho ottenuto 13.2K per R1 e 2.3 uF per C1. Usando i valori standard di 12K e
2.2uF ho verificato che “d” era di 0.721 e Wn di 5.21 Hz.
Il convertitore assemblato su una basetta millefori
Anche se il 4046B accetta al pin 14 un ingresso
analogico ho preferito inserire uno squadratore con
il BC237, in tal modo ho una uscita ausiliaria che
fornisce i 50 Hz in formato digitale. Già che c’ero
ho previsto una uscita di test per verificare che il
VCO agganciato oscilli a 73250 Hz (50 Hz x1465)
e un ponticello che permette di scollegare temporaneamente il primo divisore per 1465 e
di collegare al PLL il secondo 4040B divisore x 1461. In tal modo è possibile testare
il funzionamento corretto anche del secondo divisore verificando che in tale condizione
la frequenza del VCO è scesa a 73050 Hz (50 Hz x1461).
Avviamo l'orologio siderale
Per completare l’orologio siderale occorre:
- un alimentatore a 5 Volt (o altra tensione in funzione di quella richiesta dal modulo
orologio)
- un estrattore di clock a 50 Hz: basta un diodo ed uno zener, volendo si può aggiungere
un trigger di Schmitt realizzato con un NE555
- un modulo orologio digitale a display oppure un RTC da leggere con un PIC
Il nostro nuovo orologio adesso batterà 23 ore, 56 minuti e 4 secondi ogni giorno
solare.
L’orologio aperto: da sinistra
l’alimentatore, il convertitore,
il display 2x16, il BS2 DeA
con i due RTC, sul retro il
deviatore per l’avvio e la
porta RS232 su presa DIN per
programmare il BS2
Come si usa l’orologio siderale
Non ci sono molti effetti speciali: sembra proprio un banale orologio. Nel mio
prototipo ho usato un display LCD con due righe, una per l’ora civile UTC e l’altra per
l’ora siderale GHAγ.
.
a) l'orologio in attesa della mascherina frontale
b) Il display con l'ora UTC e l'ora GHAy dopo due giorni e un'ora e mezza dall'avvio con
entrambi gli orari a 00:00:00. La differenza fra UTC e GHA è di 3m56s + 3m56s + 15s =
8m07s come previsto
Con i pulsanti se avete usato un modulo orologio a display o tramite il codice del PIC se
si usa un RTC si imposta l’ora siderale in hh:mm:ss corrispondente ad un dato orario del
giorno. La si trova sulle effemeridi nautiche dell’anno in corso oppure su questi server:
http://www.jgiesen.de/SiderealTimeClock/index.html
http://www.jgiesen.de/astro/astroJS/siderealClock/
http://www.csgnetwork.com/siderealjuliantimecalc.html
Ad esempio per il 1 maggio 2011 alle ore 12:30:00 UTC l’ora siderale a Greenwich
GHA_Aries era 03:06:21.
L’ora impostata può essere quella siderale del punto γ a Greenwich (GHA_Aries),
oppure l’ora siderale del punto γ alla longitudine della nostra città (LHA_Aries) o ancora
l’Angolo Orario a Greenwich o quello locale di una qualunque stella (SHA* o
LHA*): basta sommare la longitudine del luogo e/o la CoAscensione Retta della stella
alla GHA_Aries.
Se non siete astrofili o naviganti d’altri tempi allora impostate un’ora qualunque: ogni
stella che osserverete sarà nello stesso punto in cielo alla medesima ora letta
sull’orologio siderale tutti i giorni dell’anno. Attenzione: non vale per il Sole, la Luna ed
i Pianeti che non sono astri fissi ma mobili!
Una curiosità
Il brevetto US numero 4933920 del 12/6/1990 “Sidereal Clock” [12] copre i diritti di un
“circuito” che con un contatore CD4040B, un monostabile CD4047 e qualche porta
Nand pilota il pin di setup a 50Hz/60Hz di un orologio digitale bistandard, modifica
periodicamente il fattore di divisione interno all’orologio ed ottiene un coefficiente di
accelerazione di 2930/2922 che, guarda caso,sono valori doppi di 1465/1461.
L’estrattore di clock a 50 Hz dalla rete elettrica
Come indicato dalla Maxim nella AN518 ”DS1375 Power Line to 60Hz Clock” [17]
normalmente basta usare un diodo ed uno zener. Io sono prudente ed ho aggiunto un
trigger di Schmitt realizzato con un NE555. Dell’integrato si usa solo il flip flop
triggerato dalla rete che commuta quando la tensione in ingresso (pin 2 e 6 uniti) sale
sopra 2/3 V_alim o scende sotto 1/3 V_alim generando un bel segnale pulito vista la
notevole isteresi. In caso di rete davvero “sporca” è bene inserire anche un filtro
antidisturbi integrato nella presa elettrica.
Il Real Time Clock PCF8583
Per il mio orologio siderale ho usato due RTC PCF8583 con protocollo I2C acquistati a
2 euro in fiera. Uno è pilotato a 50 Hz per l’ora civile UTC e l’altro è pilotato dal
convertitore per l’ora siderale locale GHAγ.
L’alimentatore esterno fornisce 6.5 Volt per il Basic Stamp 2 DeA. La board DeA ha un
regolatore a 5 Volt a bassa caduta che alimenta il PIC e la memoria. I 5 Volt regolati
vengono impiegati per l’estrattore di clock, il convertitore siderale e i due RTC al fine di
unificare i livelli di tensione dei vari componenti.
Il PCF8583 è un RTC a 8 pin con calendario bisestile e allarmi giornalieri e settimanali.
Può essere configurato come orologio, timer e contatore a 6 cifre. Ha una RAM di 240
word a 8 bit, può essere pilotato da un quarzo da 36768 Hz, da un clock a 50 Hz oppure
da un segnale di conteggio, infine ha un pin di indirizzo così se ne possono mettere due
in parallelo senza decodificatori di indirizzo. Se usato col quarzo si può aggiungere un
diodo ed una batteria di backup da 3 Volt per mantenere l’ora sempre aggiornata. Non fa
il caffè ma ha un datasheet di 37 pagine.
La lettura è su un LCD da 2x16 caratteri ed il tutto è gestito da un Basic Stamp 2 su
board DeAgostini. Le routine per la gestione LCD e I2C sono miei adattamenti delle
routine Parallax. Le due linee bidirezionali SCL e SDA sono protette con resistori da
220 ohm in caso di errori nel codice.
Qui c’è il codice sorgente commentato da caricare nel BS2
http://adamatj.altervista.org/_altervista_ht/art06/orologio_siderale.bs2
con l’editor/precompilatore/loader Pbasic 2.5 disponibile gratuitamente sul sito Parallax
http://www.parallax.com/tabid/441/Default.aspx. L'estensione del file va cambiata in
".bs2"
Il codice è spartano: si precarica in memoria, tramite il codice sorgente, l’ora UTC (o
l’ora locale) e l’ora siderale GHAγ (o l’ora LHAγ) da impostare all’avvio e si chiude
l’interruttore S1 (il PIN2 va a massa) per trasferire i due orari negli RTC e mettere
l’orologio in attesa. Al momento giusto si apre S1 per avviare l’orologio. Non ho
previsto la gestione della messa in orario, forse mi è rimasta in mente la regola dei
cronometri di marina: non spostare mai le lancette. Per averla bastano un po’ di righe di
codice e due pulsanti.
Testiamo il circuito
1) Il primo test riguarda il funzionamento del PLL e del primo divisore: con un
frequenzimetro si verifica che sull’uscita di test sia presente una frequenza di 73250 Hz
pari a 50 Hz x 1465.
2) Il secondo test riguarda il corretto funzionamento del secondo divisore per 1461: si
apre il ponticello P1 e si collega al pin3 del 4046B l’uscita Q11 f_out del secondo
divisore. In questo modo il PLL moltiplica per 1461 e la frequenza generata dal VCO (
uscita di test) deve essere di 73025 Hz.
3) Infine occorre collaudare il tutto. Misurare una frequenza di 50.13689254 Hz o un
periodo di 19945392.49 nanosecondi non è cosa fattibile in casa. La mia via è stata
quella di misurare il ritardo dell’orologio A pilotato a 50 Hz rispetto all’orologio B
pilotato dal convertitore che accelera i 50 Hz di un fattore pari a 1465/1461. Facendo
partire entrambi gli orologi alle 00:00:00 il ritardo accumulato dall’orologio A rispetto
all’orologio B deve essere di 3 minuti e 56 secondi al giorno. Se non si vuole attendere il
giorno successivo il ritardo è di 9.83 secondi all’ora o 59.00 secondi ogni 6 ore. Il clock
per entrambi gli orologi è derivato dalla rete elettrica quindi tale metodo misura solo la
precisione del fattore di accelerazione offerto dal convertitore e non quella della
frequenza di rete.
Considerazioni sulla precisione del clock a 50 Hz dalla rete
L’orologio così realizzato è necessariamente in versione fissa avendo bisogno della rete
per derivare il riferimento a 50 Hz. Tale limitazione garantisce però una ottima
precisione perché la stabilità in frequenza a lungo termine della rete elettrica europea è
molto più elevata di quanto si pensi.
Leggendo la descrizione statistica si trova sul sito del gestore svizzero della rete elettrica
https://www.swissgrid.ch/swissgrid/it/home/experts/topics/frequency.html si vede che le
variazioni di frequenza vengono compensate dai gestori della rete elettrica per annullare
le deviazioni accumulate [14]. Analoghe informazioni sulla frequenza di rete sono fornite
da ENTSOE su https://www.entsoe.eu/nc/system-operations/the-frequency , viene
anche fornita la frequenza istantanea al milliHertz http://office.entsoe.eu/ [18] [19] .Una
conferma oltreoceano è fornita dalla Maxim nella citata AN518 che assicura la presenza
in US di 5.184.000 cicli di rete giornalieri (60 x 3600 x 24) attraverso una opportuna
compensazione della frequenza di rete. [17]
Definendo “tempo sincrono” o “grid time” il periodo di tempo in cui si sviluppano 50
cicli, se si accumula un ritardo di +/- 20 secondi rispetto al tempo universale UTC la
frequenza di rete viene alzata a 50.010 Hz o abbassata a 49.990 Hz per uno o due giorni
per annullare il ritardo o l’anticipo accumulato. In tale modo si garantisce che la
frequenza di rete sul medio periodo sia pari a 50.000 Hz e quindi adeguata a pilotare un
orologio digitale essendo l’errore massimo “accumulato” di 20 secondi (per prudenza
diciamo 30 secondi). Ad oggi il ritardo della rete è di circa 29 secondi rispetto al tempo
UTC, quindi a breve dovrebbe partire la compensazione.
Pieter-Tjerk de Boer in Olanda ha registrato la stabilità e l’errore accumulato dalla rete
elettrica olandese http://www.vf.utwente.nl/~ptdeboer/misc/mains.html e nei grafici
presenti sul suo sito si vede l’effetto della compensazione apportata. [15]
Se il ritardo massimo è di circa 30 secondi, visto che in un anno ci sono circa 31.5
milioni di secondi, la precisione a medio-lungo termine della rete elettrica, intesa come
ritardo/anticipo accumulato, è di circa 1 ppm/anno o 10 ppm /mese. E’ migliore di
quella fornita da un quarzo a basso costo (30-100ppm), simile a quella di un buon
quarzo KVG o di un VXCO termocompensato (3-30 ppm), poco inferiore a quella di un
TXCO termocompensato (0.3-10ppm) e cede il passo ovviamente a un
OCXO termostatato (0.01-0.3 ppm). I dati sui quarzi sono presi dal catalogo RF
Elettronica [21] .
NOTA mentre scrivevo l’articolo, dal sito svizzero è stato rimosso il grafico in tempo
reale che mostrava la frequenza istantanea ed il ritardo accumulato. Che sia perché il
grid time aveva superato i canonici 20 secondi e la gilda dei mastri orologiai non poteva
accettare tale ritardo?
Ulteriori circuiti ausiliari
Usando un RTC non sarebbe male prevedere un circuito che avvisi in caso di avvenuta
mancanza di rete: l’ora siderale scorretta non è immediatamente riconoscibile e
confrontabile con un altro orologio normalmente presente in casa.
Si può inserire un circuito sul pin 1 (impulsi di fase) del 4046B per segnalare con un led
l’avvenuto aggancio del PLL. Tale circuito potrebbe anche inibire l’invio del clock al
modulo orologio/RTC prima che il PLL sia agganciato per prevenire falsi conteggi; lo
stesso circuito potrebbe segnalare eventuali perdite di aggancio del PLL, anche se questo
evento è molto improbabile.
La versione portatile
Per l’uso portatile, tipicamente in barca per il navigante o in montagna per l’astrofilo,
occorre svincolarsi dai 50Hz della rete elettrica ed usare un riferimento a quarzo. A
meno di colpi di fortuna non si può usare un comune quarzo e la via migliore è quella
di usare un oscillatore a quarzo termocompensato TXCO che offre una stabilità media di
5 ppm pari a 2.5 minuti l’anno. Questa soluzione è usata in un kit commerciale venduto
negli States a solo 41.50 $ spedizione worldwide inclusa [16]. Nella foto presente
sul sito www.mtmscientific.com non si vede bene il TCXO usato, probabilmente è un
DS32KHZ già presentato su Grix in numerosi progetti.
Un’altra bella soluzione sarebbe quella di ricavare da DCF77 o da GPS il messaggio
orario da usare per aggiornare un RTC pilotato da un normale quarzo da 32760 Hz. Se
l’aggiornamento è fatto ogni 10 minuti l’errore sul tempo siderale si mantiene inferiore a
1.5 secondi. Serve un PIC con un compilatore che gestisca le variabili in virgola mobile
a doppia precisione per calcolare il tempo siderale dal tempo civile con il metodo
aritmetico canonico [20], niente seni e coseni: bastano le quattro operazioni.
Riferimenti
[1] What is sidereal time
[2] Sidereal time
[3] Astronomia Nautica- F. Flora
[4] Making a sidereal Clock
[5] An accurate sidereal clock
[6] Sidereal clock
[7] Configuring CD4046B
[8] PLL design fundamentals
[9] Sintetizzatori PLL
[10] Grix PLL , One of One
[11] Grix VCO, One of One
[12] Patent US nr. 4933920
[13] Sky Scout
[14] Stabilità dei 50 Hz in CH
[15] Misure sui 50 Hz in NL
[16] Sidereal Clock TXCO kit
[17] Power Line to 60Hz Clock
[18] ENTSOE – grid frequency
[19] frequenze di rete in Europa
[20] calcolo tempo siderale
[21] quarzi- RF Elettronica
http://adsabs.harvard.edu/full/2003JRASC..97..278D
http://en.wikipedia.org/wiki/Sidereal_time
http://books.google.it/books?id=SaMScRWRIVIC&pg=PA204
http://www.hanssummers.com/images/stories/sidereal/files/baa.pdf
http://articles.adsabs.harvard.edu/full/1984IAPPP..17...55D
http://www.hanssummers.com/sidereal.html
http://www.onsemi.com/pub_link/Collateral/AN1410-D.PDF
http://www.freescale.com/files/rf_if/doc/app_note/AN535.pdf
http://www.uniroma2.it/didattica/SMM/deposito/Sources.pdf
http://www.grix.it/viewer.php?page=5415
http://www.grix.it/viewer.php?page=5542
http://www.freepatentsonline.com/4933920.html
http://www.staroptics.it/astronomia/Celestron/celestron_skyscout.htm
https://www.swissgrid.ch/swissgrid/it/home/experts/topics/frequency.html
http://www.vf.utwente.nl/~ptdeboer/misc/mains.html
http://www.mtmscientific.com/sidereal.html
http://www.maxim-ic.com/app-notes/index.mvp/id/1994
https://www.entsoe.eu/nc/system-operations/the-frequency
http://office.entsoe.eu/
http://www.mpc589.com/cielo/2007/gennaio.asp
http://www.rfmicrowave.it/catalogo/ita/Q.pdf