|
|
|
Il progetto che viene di seguito presentato è relativo alla costruzione di un TIMER multiuso di elevata precisione, con orologio e datario. Gli intervalli di tempo che possono essere gestiti coprono un range che spazia da pochi secondi fino a parecchie ore/giorni. Questo progetto è stato realizzato da Alberto Gola e Calatroni Claudio e pubblicato sulla rivista "RADIOKIT" (numero di luglio/agosto dell'anno 1997): viene ora presentato su queste pagine. Il sistema è basato sul noto microcontrollore ST6225 che, grazie ad uno specifico software, è in grado di comunicare con una periferica denominata "TIMEKEEPER" e con un display a cristalli liquidi da 2 righe di 16 caratteri con chip HD44780 HITACHI.
Il progetto che viene qui proposto e discusso è nato dalla necessità di disporre di un timer che permetta la massima flessibilità d'impiego, dagli usi fotografici e di laboratorio (applicazioni in camera oscura, fotoincisione di circuiti stampati, cancellazione di EPROM) ad usi di tipo domestico (controllo dell'attivazione/spegnimento di un impianto, innaffiatura del giardino ad orari prestabiliti). Ne è scaturito un "giocattolo" veramente simpatico ed utile, di estrema semplicità realizzativa e di notevole interesse didattico; il numero dei componenti è ridotto al minimo in quanto viene utilizzato un microcontrollore (nella fattispecie il circuito integrato ST6225) della famiglia ST6 (SGS-THOMSON) per gestire tutte le funzioni. Un circuito integrato denominato "timekeeper" di tipo MK41T56 genera tutte le informazioni relative alla data e all'ora: la batteria in tampone permette di non perdere mai le regolazioni di base per almeno 10 anni. Un display alfanumerico LCD consente di visualizzare le diverse impostazioni e l'evoluzione del conteggio. I dati vengono introdotti mediante 6 tasti; un buzzer segnala la fine del tempo impostato. Un menù a funzioni guida l'utente attraverso tutte le impostazione e permette anche alle persone totalmente digiune di elettronica l'uso del dispositivo.
Tutto il progetto ruota attorno ad un microcontrollore, che ne gestisce tutte le funzioni. All'accensione compaiono sulla riga superiore del display ora e data e su quella inferiore appare la scritta "ENTER FUNCTION" seguita da un numero che mediante i tasti può essere fatto variare tra 0 e 3. La cifra 0 ci manda nella funzione di regolazione dell'ora mentre 1, 2, 3 corrispondono alle tre differenti modalità di funzionamento del timer, come vedremo ora in maniera dettagliata. Funzione 1 E' il classico timer in cui si introduce il tempo di conteggio e alla pressione del tasto S (set) il conteggio stesso parte ed il relè si eccita. Entrando nella modalità 1 appare sul display la seguente scritta:
Mediante la pressione dei tasti -> e <- ci si sposta tra ore minuti e secondi e premendo i tasti di incremento e decremento + e - si regola il tempo di attivazione voluto. Se i tasti + e - vengono tenuti premuti per più di un secondo le cifre iniziano a scorrere velocemente in modo da facilitare l'introduzione dei valori richiesti. Una volta impostate le cifre corrette si fa partire il timer mediante la pressione del tasto S. Appare una nuova schermata: sulla riga superiore sono visualizzate l'ora e la data correnti, in quella inferiore appare il tempo impostato che va via via decrementando. Al raggiungimento dello zero il relè si apre, il buzzer suona per un secondo e si ritorna alla maschera iniziale. Il tempo massimo di conteggio è di 99 ore, 59 minuti e 59 secondi. Il conteggio può essere interrotto ad ogni momento premendo il pulsante R: il circuito chiederà di confermare mediante S o di annullare mediante R. Premendo S si ritorna al menù iniziale, con R il conteggio continua normalmente. Funzione 2 La differenza rispetto alla funzione 1 è data dalla possibilità di fissare l'ora di inizio dell'attivazione del timer, dopo di che il circuito si comporta esattamente come nel caso precedente. Entrando nel menù di selezione di questa funzione appare la seguente maschera:
Una volta fissata l'ora di partenza, premendo il tasto S compare:
Un'ulteriore pressione del tasto S attiva la funzione: compaiono sulle due righe del display l'ora corrente e l'ora di attivazione, quest'ultima seguita dalla lettera W (wait). Quando si arriva all'ora stabilita il relè si attiva e tutto evolve esattamente come nel caso precedente. Funzione 3 E' la classica funzione in cui vengono impostate l'ora (e la data) di avvio e di spegnimento dell'apparecchiatura, con la possibilità di rendere giornaliera la funzione. Entrando nel menù dedicato a questa funzione vengono impostate nella maniera usuale (vedi funzione 2) partenza e fine; a questo punta la pressione del tasto S fa apparire:
Premendo S si attiva la funzione ciclica, ossia giorno e mese, anche se impostati, non vengono considerati, e il timer si attiverà e si spegnerà ogni giorno alle ore programmate. R invece evita ogni ripetizione ed il timer si attiverà una sola volta all'ora e data impostate. Durante la fase di attesa appaiono ora e data correnti e dati di attivazione: solo l'ora nel caso della funzione ciclica seguita da DAILY e W ed ora e data nel caso "single shot" seguiti da W. Funzione 0 Serve a regolare l'ora del nostro dispositivo, in modo veloce ed immediato. In questo menù compare:
Alla pressione di S l'ora impostata viene scritta nei registri dell'ora corrente ed i secondi vengono azzerati. In caso di errata chiamata della funzione 0 basta premere il tasto R e si ritorna al menù principale senza modificare alcun parametro. Ci sono due altri fattori da menzionare: la modalità di regolazione di tutti i parametri temporali (da farsi alla prima accensione del dispositivo) ed il fatto che in caso di mancanza della tensione di rete il timer si comporta diversamente a seconda della funzione impostata, come d'altra parte è logico. Per quanto riguarda la regolazione "totale" bisogna inserire un ponticello (previsto ovviamente nel progetto) tra il pin 7 del microcontrollore e massa a circuito non alimentato. All'accensione il dispositivo allora mostra una maschera diversa da quella solita:
Con i soliti cursori ci si muove sui dati e si impostano i parametri corretti che alla pressione di S vengono memorizzati dando il via al funzionamento corretto. A questo punto compare sul display linvito a rimuovere il ponticello. Fatto questo si può cominciare ad usare il timer. Si è scelto questo approccio in quanto la regolazione della data non è mai necessaria durante la vita del circuito ; anche il cambio della pila, se fatto con sufficiente velocità, non comporta perdita di dati e questa eventualità si riproporrà dopo 10 anni nel caso più sfortunato. Luso del ponticello allaccensione può servire come reset del sistema nel caso che qualche strano evento provochi unerrata scrittura delle celle RAM del dispositivo MK41T56. Questo perché la routine di regolazione completa di data ed ora provvede anche a cancellare tutte le celle, rimuovendo ogni errata impostazione. Anche se durante la fase di prova del circuito una tale eventualità non si è mai verificata, è sempre meglio menzionare una tale possibilità. Quando invece accade, durante il normale funzionamento, che venga a mancare la tensione di rete, si hanno comportamenti diversi a seconda della funzione in cui ci si trova. Se la mancanza di alimentazione avviene durante la funzione 1 il circuito al ritorno dell'alimentazione si porta nel menù principale ; nelle funzioni 2 e 3 se la mancanza di energia elettrica avviene durante l'attesa della partenza, il circuito si attiverà correttamente all'ora stabilita. Se invece l'interruzione accade durante il conteggio, il conteggio stesso verrà resettato ed il dispositivo si porterà nel menù di base nella funzione 2. Nella funzione 3 il conteggio riprenderà al ritorno della tensione e terminerà all ora prevista, conservando anche la modalità di funzionamento giornaliero, se impostata.
Come già detto, il progetto del timer ha il suo fulcro in un microcontrollore, che ne gestisce tutte le funzioni : si è scelto un dispositivo della ben nota famiglia ST6, prodotta dalla ditta SGS-THOMSON, di facile reperibilità e dalle notevoli prestazioni. In particolare si è utilizzato il dispositivo ST6225, lo schema a bocchi del quale è riportato in figura 3. Non ci si dilunga in spiegazioni in quanto questa famiglia di microcontrollori è arcinota : si rimandano i lettori interessati allottima documentazione tecnica fornita dalla ditta costruttrice ; si tratta di un 8 bit, con 20 porte di input/output, cosa per noi importante dato linterfacciamento con diverse entità (tastiera, display, I2CBUS, relè, buzzer), clock a 8MHz e 4Kbyte di memoria EPROM. Lo sviluppo è stato portato a termine usando i dispositivi cancellabili ST62E25 mentre il software è ora disponibile sui dispositivi di tipo OTP (One Time Programming) ST62T25, non cancellabili ma di costo nettamente inferiore. Luso di un microcontrollore ha permesso di semplificare in maniera enorme il circuito del timer ; solo due circuiti integrati, oltre allo ST6, sono stati impiegati : un MK41T56 ed un TL7702. Come si puo vedere nello schema a blocchi in fig. 1 lintegrato MK41T56 è un completo orologio composto di un oscillatore a 32.768kHz, una serie di divisori per ricavare tutte le informazioni relative allora ed alla data e da una memoria RAM da 64 parole di 8bit, le prime otto delle quali sono usate per memorizzare secondi, minuti, ore, giorno, giorno della settimana, mese, anno e dati di calibrazione. Il dispositivo, incapsulato in contenitore plastico ad 8 piedini, comprende pure un circuito di power on reset ed una interfaccia seriale di tipo I2CBUS per il trasferimento delle informazioni. I2CBUS è un particolare protocollo di trasmissione dati tra due o più periferiche, di cui una svolge la funzione di "master", generalmente un microprocessore, e laltra (o le altre) di "slave". E un sistema seriale, a due soli fili, molto semplice, che permette una velocità di trasmissione massima di 100Kbit al secondo. Una batteria al litio da 3V (indispensabile al funzionamento del circuito : non si pensi di poterla omettere) viene utilizzata per permettere il funzionamento del dispositivo quando manca lalimentazione e tale batteria è in grado di garantire 10 anni di operatività. Il calendario è già programmato per tenere conto degli anni bisestili e di conseguenza, una volta regolata la data alla prima accensione del circuito, non ve ne sarà mai più bisogno, a meno di eventi imprevedibili. Il TL7702 non è altro che un supervisore di alimentazione che ci avverte quando avviene una mancanza di rete, dandoci il tempo di salvare i dati impostati nella memoria non volatile (perché mantenuta dalla pila al litio) del MK41T56. Tutti i dati vengono visualizzati su di un display LCD a matrice formato da 2 righe di 16 caratteri ciascuna di tipo standard (gli autori li hanno trovati sulle bancarelle delle varie fiere radioamatoriali, ma nulla vieta di rivolgersi ad altri fornitori). Veniamo ora allanalisi del circuito completo riportato nelle figure 4 e 5. Il microcontrollore (come già detto del tipo ST6225) è configurato nella maniera più standard, utilizza il classico quarzo ad 8MHz per generare il suo clock interno e i piedini di TIMER e NMI non sono usati in questa applicazione. Il banco di porte A (PA0-PA7) è usato per la gestione del display, il banco B per gli ingressi di tastiera (PB2-PB7) e per il controllo del relè (PB0) e di un buzzer (PB1) che si segnala con un suono della durata di un secondo il termine del periodo di attivazione del relè stesso. Il banco C è destinato alle comunicazioni con gli integrati U2 ed U3 ; in particolare PC4 e PC5 sono dedicati alla gestione della funzione I2CBUS, mentre lingresso PC7 viene posto al livello logico zero non appena si verifica un crollo della tensione di alimentazione. La porta PC6 è connessa ad un jumper (P3) : quando questo è inserito all accensione si entra nella funzione di regolazione completa di data ed ora : per tornare alle funzioni normali bisogna rimuovere il ponticello stesso. La rete composta da R7, D5 e C14 serve al reset del microcontrollore durante la fase di accensione. U3, circuito integrato di tipo MK41T56, necessita del solo cristallo di quarzo da 32.768kHz per funzionare correttamente. C11 serve per mantenere tensione al piedino 3 durante la fase di eventuale sostituzione della pila ed R5 evita che un cortocircuito accidentale tra i piedini 3 e 4 dellintegrato possa danneggiare la pila stessa, limitando la corrente a 3mA (Ohm insegna). Il consumo statico di U3, in fase di power down, è talmente esiguo (inferiore a 0.5µA) che R5 non produce alcuna significativa caduta di tensione (è minore di 0.5mV). Una funzione importante è svolta da U2 : se vogliamo che i nostri dati impostati vengano salvati nel caso di mancanza di tensione di rete dobbiamo rilevare la caduta della tensione di alimentazione ed eseguire un programma di salvataggio dati prima che sia compromessa la capacità operativa dei vari circuiti. U2 è stato progettato proprio per questa funzione : quando la tensione al piedino 7 scende sotto al valore di riferimento presente sul pin 1, il pin 5 viene cortocircuitato a massa, generando un segnale di interrupt sulla porta 7 del banco C del micro ST6. Il microcontrollore a questo punto entra in un programma di salvataggio e trasferisce tutte le impostazioni memorizzate nei suoi registri nella RAM del MK41T56 che, essendo alimentata dalla pila in tampone, provvederà a mantenerle fino al ritorno della rete. Alla riaccensione del circuito il condensatore C7 da 22µF ritarda l'uscita dalla fase di power on reset di U2 di un tempo più lungo di quello necessario al reset di U4. Questo perché durante la fase di power on reset il microcontrollore porta le proprie porte in condizione di ingresso con pull-up e ciò porta alti i terminali di gate di M1 ed M2, responsabili, rispettivamente, dell'attivazione del relè e del buzzer. Avremmo quindi un momentaneo scatto del relè ed un suono prodotto dal cicalino, cose entrambe da evitare. Qui entrano in gioco D3 e D4 che, quando il pin 5 di U2 è basso, impediscono la conduzione sia di M1 che di M2, evitando sgradevoli comportamenti. In questo modo il relè viene disattivato anche durante la fase di power down, non appena U2 raggiunge la soglia di scatto. R2 ed R1 fissano la tensione di scatto stessa all'intorno di 10.9V, mentre D1 isola l'alimentazione di relè e buzzer da quella del 78L05. C2 mantiene quindi una tensione sufficiente per permettere il funzionamento di U4 per un paio di secondi, tempo largamente sufficiente per il salvataggio di tutti i dati. E ovvio che non si deve aggiungere alcun carico addizionale (ad esempio un diodo led) ai capi di C2 e anche tra 5V e massa : ciò comporterebbe una prematura scarica di C2 e limpossibilità di svolgere la routine di salvataggio nei tempi calcolati. Il trimmer VR1 serve alla regolazione del contrasto del display a matrice. Realizzazione pratica Luso di un microcontrollore, permettendo una notevole semplificazione circuitale, ha reso la realizzazione pratica del nostro timer una cosa semplicissima, alla portata anche degli sperimentatori alle prime armi. Il circuito stampato, riportato in fig. 6, a singola faccia, raccoglie tutti i componenti ad eccezione di trasformatore di alimentazione, display, buzzer e dei tasti di programmazione. Per quanto riguarda i sopra citati tasti di programmazione, la disposizione è lasciata al gusto estetico di chi realizza il progetto : si consiglia comunque di disporre vicini i tasti relativi allo spostamento del cursore ed alla modifica dei dati, leggermente separati da quelli denominati S ed R. Gli autori hanno realizzato un piccolo circuito stampato con sopra 6 piccoli tasti, recuperati come al solito in una fiera radioamatoriale, come si può vedere nelle figure 8 e 9 ; ovviamente tale posizionamento non è assolutamente vincolante e di conseguenza si lascia la più totale libertà ai singoli soggetti. Per quanto riguarda il montaggio pratico, valgono i soliti consigli : saldature pulite, stagno nella quantità giusta senza esagerare, integrati montati su zoccolo (questo vale non solo per il microcontrollore ma anche per il dispositivo MK41T56 il cui costo è tuttaltro che trascurabile, aggirandosi attorno alle 15-16000 Lire). Si consiglia di partire con i due ponticelli, chiaramente indicati in figura 7, dove è riportata la posizione precisa di tutti i componenti : due soli ponticelli non giustificano luso di un circuito stampato a doppia faccia e di conseguenza si è scelto lapproccio monofaccia, meno costoso ed alla portata di tutti. Si salderanno poi gli zoccoli degli integrati, gli ancoraggi per i collegamenti ai pulsanti ,al display ed al ponticello P3 (importante, altrimenti il circuito non partirà) ; per quest ultimo si suggerisce luso di un jumper del tipo usato per i settaggi nei PC. Seguiranno poi le resistenze, i condensatori, il trimmer VR1, i due quarzi da 8MHz e da 32.768kHz, i due transistor MOS BS170 ed il regolatore di tensione di tipo 78L05. Buoni ultimi saranno il relè ed i due morsetti per i collegamenti al carico ed al trasformatore di alimentazione. Fatto questo collegare il display (attenzione a non sbagliare alcuna connessione, ma questo dovrebbe essere facilitato dal fatto che il circuito stampato è stato progettato mantenendo la completa corrispondenza con la piedinatura del display), il buzzer, i pulsanti ed il trasformatore di alimentazione : inserire poi la pila al litio da 3V con la corretta polarità ed a questo punto il montaggio è terminato. Nelle fotografie riportate alle figure 10 e 11 è possibile avere un idea del prototipo realizzato dagli autori : come si può vedere sul pannello del contenitore sono piazzati dei normali pulsanti normalmente aperti, in alternativa alla tastierina visibile in primo piano. Il display è anchesso visibile in primo piano, ancora non installato nel prototipo. Piazzare il ponticello P3 e porre il trimmer VR1 a metà corsa : ora si può alimentare il circuito. Se non sono stati commessi errori il timer funzionerà subito e comparirà la scritta :
Regolare VR1 per il contrasto desiderato e con i cursori modificare ora e data. Premendo poi S si dà il via allorologio. Rimuovendo il ponticello (il display stesso lo segnalerà ) ci si trova nel menù principale. A questo punto cè solo da iniziare a provare le diverse funzioni. Collegare il carico (attenzione alla tensione di rete) e via, tutto è fatto. Note sul display Il display utilizzato fa parte di una serie di display a cristalli liquidi a matrice di punti (5X7) basati sul circuito integrato HITACHI HD44780, ormai diventati praticamente uno standard industriale. Ne esistono a una, due o quattro righe, ciascuna variabile nel numero dei caratteri , il cui numero massimo è 80. Nel circuito proposto si utilizza un display a 2 righe di 16 caratteri, di sigla LM052 : è possibile usarne altri modelli, purchè a due righe di 16 caratteri, utilizzanti lintegrato HD44780. Non bisogna usare modelli con diverso numero di righe e/o caratteri pena la non corretta visualizzazione dei dati.
Figura 1
Figura 2
Figura 3
Piedinat. ST6225 Piedinat. MK41T56 Piedinat. TL7702
Figura 4
Figura 5a
Figura 5b
Figura 6
Figura 7
Gli autori sono a disposizione per ogni chiarimento relativo al progetto ed alla sua realizzazione pratica. |
|
Per informazioni Inviare un messaggio di e-mail a: calatroc@libero.it |