Orologio digitale con RTC

Vediamo come utilizzare un RTC DS1307 all'interno di un progetto di realizzazione di un orologio digitale utilizzando un PIC 16F1937

Spesso con l'acronimo RTC si vuole indicare il Real Time Computing, ma questo acronimo per chi è appassionato di elettronica, può voler dire ben altro. In elettronica quando si parla di circuiti RTC, ci si riferisce a circuiti di Real Time Clock i quali tengono sempre traccia delle informazioni circa il tempo corrente; questi circuiti sono da non confondersi con i circuiti di clock in quanto quando si parla di clock ci si riferisce al solo segnale che gestisce le temporizzazioni di determinati eventi, mentre nel caso degli RTC ci riferiamo a tutto il sistema di conteggio delle grandezze temporali necessarie, è ovvio che per il loro funzionamento tali IC utilizzano un segnale di clock opportunamente generato da oscillatori a cristallo. La frequenza tipica degli oscillatori a cristallo più comunemente utilizzata è di 32.768 kHz in quanto significa avere esattamente 2^15 cicli al secondo, che è una grandezza facilmente gestibile dai più semplici e diffusi contatori binari.

Gli RTC li ritroviamo anche nei sistemi dotati di processore (quindi anche nei PC), in quanto essi alleggeriscono la CPU dal compito di tenere traccia del tempo, ed in più svolgono tale compito in maniera più accurata e con minore consumo energetico.

In questo articolo vedremo come utilizzare un RTC DS1307 all'interno di un progetto di realizzazione di un orologio digitale utilizzando un PIC 16F1937; tale microcontrollore si rende necessario in quanto in questo progetto viene utilizzato per la gestione della visualizzazione dell'ora su diplay LCD, e per la gestione dei pulsanti di regolazione dell'orologio digitale (operazioni che ovviamente il circuito RTC non può svolgere). Il DS1307 è dotato di un pin di alimentazione supplementare da collegare ad una batteria tampone di 3V in maniera tale che quando l'alimentazione dell'intero circuito in cui viene inserito, viene a mancare, il DS1307 resta comunque alimentato attraverso la batteria; in questa condizione la corrente assorbita dall'RTC è minore di 500 nA, pertanto se si utilizza una batteria al litio da 48mAh, il chip resterà ancora alimentato per ben 10 anni in assenza di alimentazione esterna.

Altra interessante caratteristica di questo integrato è quella di utilizzare I2C come protocollo di comunicazione, è infatti per questo motivo che viene utilizzato proprio un PIC 16F1937, in quanto esso è dotato di un modulo hardware interno in grado di gestire senza grosse difficoltà le comunicazioni tramite I2C, il tutto senza l'utilizzo di librerie software esterne.

Il DS1307 utilizza i pin 23 e 18 del PIC, mentre i pin dal 21 al 28 (escluso il pin 23) vengono impiegati per la gestione del display LCD. Inoltre vi sono 7 pulsanti collegati direttamente agli ingressi del PIC; i primi 3 pulsanti servono per settare la data intesa come giorno/mese/anno, altri 3 pulsanti vengono utilizzati per settare l'ora (ore/minuti/secondi), mentre il pulsante restante è utilizzato per decrementare di una unità la grandezza che si sta settando. La regolazione è semplicissima, premendo il tasto corrispondente ad una grandezza da settare, essa viene incrementata, mentre se si preme simultaneamente il tasto corrispondente alla grandezza da settare ed il settimo tasto (quello di decremento), la grandezza viene decrementata di una unità.

In linea di principio il circuito è molto semplice, vediamo però alcuni accorgimenti utili a migliorarne le prestazioni. Possiamo inserire in parallelo alla batteria tampone un condensatore da 1000uF, esso servirà per garantire il funzionamento del circuito RTC quando non vi sia alimentazione e la batteria tampone sia scollegata; in tale situazione si garantisce continuità di alimentazione per i cambi di batteria in assenza di alimentazione esterna. Un altro parametro di cui tener conto, è il valore della capacità dell'oscillatore a cristallo; essa deve avere un valore il più possibile vicino a quella della capacità interna dell'RTC, in caso contrario si avrà un certo offset temporale decisamente da evitare. Vi sembrerà strano ma un'altra variabile del progetto è il tipo di basetta utilizzata e come viene disposto l'intero circuito su di essa: il circuito deve evitare che si propaghino impulsi indesiderati che potrebbero interferire con il segnale di clock. Se vi sarà questo tipo di alterazione del segnale di clock noteremo che nel corso del tempo il nostro orologio sarà più veloce e quindi non accurato come vorremmo.

Se vorrete cimentarvi nella realizzazione di questo interessante progetto, troverete interessante questo link da cui potrete scaricare i datasheet e guardare un video del circuito all'opera.

Scarica subito una copia gratis
Tags:

2 Commenti

  1. Avatar photo Bazinga 22 Agosto 2011
  2. Avatar photo Raffaele65 28 Agosto 2011

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend