Un Real Time Clock è un dispositivo la cui funzione è quella di orologio all’interno di un sistema embedded. Esso conteggia il tempo reale sfruttando un oscillatore al quarzo anche quando il sistema non è alimentato, grazie ad una batteria autonoma. Uno degli RTC più conosciuti è il DS1307 prodotto dalla Maxim.
E’ proprio per questo dispositivo che ho sviluppato un driver managed aggiungendolo nella mia libreria μPLibrary, alla versione 1.5, per il .Net Micro Framework. Per il mio sviluppo, ho utilizzato il modulo della Sparkfun al seguente link che include l’RTC in questione ed il vano per la batteria di backup, oltre all’oscillatore al quarzo. Ciò che manca sul modulo, sono le resistenze di pull-up da collegare ai pin SDA ed SCL (che dovrete aggiungere esternamente), considerando che il DS1307 può interfacciarsi con un qualsiasi microprocessore mediante un’interfaccia I2C
Il driver sviluppato definisce la classe DS1307, la quale espone banalmente tre metodi :
-
ConfigureSquareWave : permette di configurare un’eventuale onda quadra che il DS1307 può fornire su uno dei suoi pin di output (SQW/OUT);
-
SetDateTime : esegue il set della data/ora nella memoria interna del chip;
-
GetDateTime : permette di ricavare la data/ora corrente dal chip;
Come sempre ho aggiornato il progetto della μPLibrary sul sito CodePlex ma potete scaricare la libreria utilizzando il plugin Nuget per Visual Studio. La libreria è sempre presente anche nella Nuget Gallery.