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