http://tomasella.altervista.org/it/elettronica/microcontrollori/DS1337_PIC18F2550.html

Gestione di un Real Time Clock

Una funzione che spesso torna utile è quella che permette di gestire l'ora ed, eventualmente, la data. Risulta indispensabile se si vogliono realizzare orologi o sveglie, ma anche se è necessario eseguire determinate operazioni a orari prestabiliti, nonché in molte altre occasioni. Come spesso accade ci sono varie tecniche che permettono di raggiungere questo scopo, quella che presenterò in questa sezione fa uso di un cosiddetto Real Time Clock (o, più brevemente, RTC), il quale è un circuito integrato progettato appositamente allo scopo. Infatti da solo è in grado di fornire informazioni riguardanti l'ora e la data, oltre a generare allarmi in corrispondenza di determinati eventi. Naturalmente dispone di un sistema di comunicazione per dialogare con il resto del sistema.

foto del circuito che visualizza l'ora corrente

In questo caso si fa uso di un RTC siglato DS1337 prodotto da Maxim, il quale dispone di un bus seriale (proprietario Philips) chiamato I2C. Purtroppo non ho modo di verificarlo ma, teoricamente, il codice proposto dovrebbe essere compatibile anche con l'RTC PCF8593 della Philips.

Il codice che vi propongo (scaricabile qui) è puramente dimostrativo; infatti l'ho scritto pensando di utilizzarlo sulla mia demoboard. Così com'è presenta dei limiti, ossia da una parte, a causa della mancanza di una batteria tampone, perde l'informazione dell'ora se viene a mancare l'alimentazione, dall'altra si dispone solamente di un pulsante per la regolazione dell'ora, il che rende un po' scomoda tale operazione. In ogni caso è perfettamente funzionante ed offre un valido spunto per varie applicazioni, nonché illustra una modalità di impiego del bus I2C presente nel PIC18F2550 (e negli altri microcontrollori della stessa famiglia).

Nello schema della demoboard compare un condensatore variabile collegato tra il pin 1 dell'RTC e i +5V. Questo non è necessario al funzionamento dell'RTC, ma serve a regolare la frequenza di oscillazione del quarzo, dunque che montiate o no il condensatore il circuito funziona comunque. Se vi interessa tarare precisamente la frequenza e utilizzate un PCF8593 dovete montarlo, mentre se usate un DS1337 non dovete montarlo perche questo chip è già calibrato.



torna all'inizio     Stampa

Valid HTML 4.01 Transitional    Valid CSS