MICROCONTROLLORI COME CIRCUITI LOGICI



Documenti analoghi
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Corso di formazione CerTICTablet

1.4b: Hardware. (Memoria Centrale)

ARCHIVIAZIONE AUTOMATICA (Gestione Allegati)

STAMPA UNIONE DI WORD

Chiave DTMF con PIC16F84. Angelo - IT9DOA

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Architettura del computer (C.Busso)

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

Memorie ROM (Read Only Memory)

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

GUIDA AL PRONTUARIO MOBILE

= 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

GESTIONE LISTE R VIRTUALI

LABORATORIO DI SISTEMI

SISTEMI DI NUMERAZIONE E CODICI

4 3 4 = 4 x x x 10 0 aaa

MANUALE EDICOLA 04.05

Gerarchia delle memorie

Esercizi su. Funzioni

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

C. P. U. MEMORIA CENTRALE

Dispense di Informatica per l ITG Valadier

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Architettura hardware

Come utilizzare il sistema per ricavare e scaricare un elenco iscritti per la propria gara

Spiegazione Open Interest Storico:

Le memorie. Generalità E applicazioni

MESSA IN SCALA DI ALGORITMI DIGITALI

GUIDA SALDOREALE Guida passo passo per il calcolo degli interessi anatocistici con il programma SaldoReale 2014.

Versione 4.0 Lotti e Scadenze. Negozio Facile

CORSO SERALE ( TDP ) DEMOBOARD FN1Z PER PIC 16F877/16F877A

MERIDESTER SOFTWARE DI COMUNICAZIONE PER PC

Information summary: La Gestione dei Reclami

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Le basi della Partita Doppia in parole Facile e comprensibile. Ovviamente gratis.

IL CONTATORE ELETTRONICO:

Manuale di programmazione BerMar_Drive_Software

Ricaricare le Cartucce sulle nuove HP Photosmart

SIRTEL. Sistema Informativo per la Rendicontazione Telematica degli Enti Locali. Schema di funzionamento del processo per l Ente Locale

5. Coppie differenziali di transistori bipolari

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

Figura 1 Le Icone dei file di Excel con e senza macro.

Montaggio e configurazione hard disk Introduzione

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

FtpZone Guida all uso

ARCHITETTURA DEL CALCOLATORE

SENZA PAROLE. Illustrazione di Matteo Pericoli 2001

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE


Dispensa di Informatica I.1

Il calendario di Windows Vista

Esame di INFORMATICA

Qualcuno suggerisce di usare il laptop collegandolo a mouse, schermo e tastiera. Vero, ma allora perché non usare un desktop, spendendo meno?

A chi appartengono questi dispositivi? Televisione Computer Cellulare MP3 Videogiochi Tablet

Express Import system

Corso di Laurea in Scienze della Formazione Primaria Università di Genova MATEMATICA Il

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

MODULO APRIPORTA CON TASTIERA A CODICE SU

Uso di base delle funzioni in Microsoft Excel

Corso di Informatica

Software Gestionale Politiche Giovanili

Sistema acquisizione dati

Il contatore elettronico

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

PROMUOVERSI MEDIANTE INTERNET di Riccardo Polesel. 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15

OSCILLATORI AL QUARZO: CONTASECONDI

Alimentazione Switching con due schede ATX.

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON ADCS1, ADCS CH2, CH1 E CH GO/DONE... 6 ADON...

Il sensore rilevatore di presenza modalità d uso

POSTA ELETTRONICA Per ricevere ed inviare posta occorrono:

Aggiornamento del Database Distrettuale: guida per i segretari dei club

IL MIO SISTEMA PER FOTOGRAFARE di Augusto Degiovanni

Guida all uso di Java Diagrammi ER

Creare una nuova spedizione personalizzata.

L ELETTRONICA. Il progetto completo della scheda di interfaccia col PC tramite porta parallela e del driver da 2A per il pilotaggio dei motori

GW : OROLOGIO 2 CANALI

ENCODER. Fig. 1. attivi C B A. APPUNTI DI ELETTRONICA ENCODER DECODER rel. 01/06 Prof. Domenico Di Stefano pag. 19

ZIMO. Decoder per accessori MX81. Manuale istruzioni del. nella variante MX81/N per il formato dei dati NMRA-DCC

PLC51 AUTOMAZIONE. di G.Filella e C. Befera filella@tin.it

Guida Introduttiva Picasa 3

Note per scaricare e installare il software cliccando alla pagina DOWNLOAD del sito,

Gestione del conflitto o della negoziazione

COMUNI-CHIAMO S.R.L. Via San Martino n. 26/1- Monte San Pietro P.IVA, C.F. e numero di iscrizione alla Camera di Commercio di Bologna

Office 2007 Lezione 02. Le operazioni più

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

MOCA. Modulo Candidatura. [Manuale versione 1.0 marzo 2013]

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

Centrale LINK8G RX. Manuale utente

La felicità per me è un sinonimo del divertimento quindi io non ho un obiettivo vero e proprio. Spero in futuro di averlo.

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC

Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05

DOMANDE E RISPOSTE - rev.15 Febbraio 2011

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

BIT? Cosa c è dietro a questo nome? Che cos è il bit? Perché si usa? Come si converte un numero binario?

COME ALIMENTARE UN LED BIANCO.

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como LOGICA DI CONTROLLO

Transcript:

Steve Blackbird (TardoFreak) MICROCONTROLLORI COME CIRCUITI LOGICI 23 September 2010 L' evoluzione tecnologica nel campo dei microcontrollori e la loro massiccia diffusione hanno determinato anche la riduzione del loro costo. Oggi troviamo in commercio microcontrollori a prezzi inferiori al dollaro che ci permettono di affrontare la progettazione di apparecchiature in un modo nuovo, progettando sistemi composti da più microcontrollori. In buona sostanza possiamo guardare al micro non solo come l' unico "cervello" dell' apparecchiatura, come colui che tutto svolge e tutto controlla ma anche come un blocco funzionale che svolge un certo numero di funzioni. In passato questo era difficile da fare anche solo per il fatto che i microcontrollori con memoria EPROM erano molto costosi. Oggi tutti i microcontrollori hanno come memoria di programma una FLASH EPROM che si cancella elettricamente e che rende tutto più semplice. Esempi di come questo modo di realizzare le apparecchiature viene applicato, magari senza rendersene conto, sono i circuiti integrati che effettuano la conversione da USB a RS232, i players MP3, i controller per display LCD, i circuiti di misurazione della potenza ed altro ancora. In questi casi si demanda la gestione dell' USB o della decodifica MP3 a microcontrollori venduti come normali integrati digitali, ma che tanto normali non sono. Il vantaggio di questo approccio è quello di lasciare i lavori pesanti (come la gestione dell' USB) alle unità periferiche. In pratica il blocco funzionale della gestione di un macro-servizio viene spostato dall' interno del master all' esterno di esso e, se ben realizzato, può essere impiegato in altre apparecchiature simili, proprio come un blocco funzionale software. Nelle applicazioni hobbistiche può essere un bel vantaggio ed un modo interessante di sperimentare. Vedremo come mediante un semplice esempio di progettazione di ciruito logico. Circuiti logici complessi In passato, ed ancora oggi in campo hobbistico, per realizzare i circuiti si usavano integrati logici più o meno complessi. L' integrato 74C926 era una benedizione del cielo! Questo integrato a 16 pin svolgeva la funzione di contatore a 4 digit con decodifica e circuiteria di multiplexing integrata. La possibilità di poter sostituire 4 contatori e 4 decodifiche/driver con un solo integrato e di risparmire collegamenti grazie al multiplexing, permetteva di realizzare facilmente e a poco prezzo frequenzimetri, orologi digitali, timers e quant' altro. Un altro oggetto interessante usato ancora oggi era l' ICL7106 (LCD) o l' ICL7107 (LED), un convertitore A/D con un driver per un display da 3 cifre e mezza. Probabilmente il multimetro digitale MICROCONTROLLORI COME CIRCUITI LOGICI 1

che avete sul banco o nella cassetta degli attrezzi usa quel componente. Un altro componente era il 74C922 (ringrazio gli amici del forum che mi hanno trovato la sigla) della National Semiconductor che gestiva una tastiera decimale o esadecimale fornendo il codice binario su 4 linee più uno strobe. Ed e' proprio questo l' oggetto che porterò come esempio in questo articolo ma... con una funzionalita in più. Le tastiere a matrice Nella maggior parte delle applicazioni le tastiere hanno i pulsanti collegati o direttamente agli ingressi del micro o disposti a matrice. Il primo caso riguarda tastiere con un numero limitato di pulsanti. Essendo ogni pulsante collegato ad un ingresso del micro, la gestione di una tastiera di questo tipo è banale. Basta infatti leggere lo stato dell' ingresso per conoscere lo stato del pulsante. Se escludiamo l' algoritmo per eliminare gli inevitabili rimbalzi dovuti al contatto meccanico, il software non presenta nessun problema ed è di facile stesura. Purtroppo questo sistema è molto dispendioso in termini di linee di ingresso infatti una tastiera da 16 tasti ne impegnerebbe ben 16. La tastiera a matrice permette di ridurre il numero di linee e, nel caso di una tastiera a 16 pulsanti, bastano 8 linee per gestirla completamente. Con 10 linee si possono gestire 25 pulsanti e con 16 linee ben 64 pulsanti. tast16.jpg Il principio di funzionamento è semplice: si attiva una riga per volta e si leggono gli ingressi delle colonne per vedere quale tasto è premuto. Per esempio si attiva la linea ROW0 collegandola al positivo o dando un livello logico "1". Le linee da COL0 MICROCONTROLLORI COME CIRCUITI LOGICI 2

a COL3 saranno a livello "1" se uno o più tasti della riga in alto saranno premuti altrimenti saranno a "0". Non si possono usare delle semplici uscite digitali perchè possono essere messe in collegamento fra di loro dalla pressione dei tasti. Facciamo un esempio. Supponiamo di avere attivato la linea ROW0 e che i due tasti della prima colonna a sinistra siano ambedue premuti, la linea ROW0 e la linea ROW1 risulteranno collegate insieme. Due linee di uscita, una a livello logico "0" e l' altra ad "1" vanno in conflitto, fanno a testate insomma, e si possono quindi danneggiare. Un rimedio sarebbe quello di mettere dei diodi alle uscite oppure fare in modo che le uscite siano tali solo quando sono attivate e che a riposo si comportino come dei circuiti aperti, in pratica come delle linee di ingresso. Noi useremo questo sistema. Il controller per tastiera Il controller che ho realizzato, oltre ad avere le linee da collegare alla tastiera presenta quattro linee di uscita da D3 a D0, un segnale di strobe STB attivo alto che si attiva alla pressione di un pulsante e si disattiva quando non ci sono più tasti premuti, una linea di RESET (normalmente collegata alla Vdd tramite una resistenza da 10K), e due linee TX/RX per comunicazione seriale. CtrlTast.jpg Quando si preme un pulsante il codice corrispondente viene presentato sulle linee da D0 a D3 quindi il segnale STB viene attivato. Sul fronte di salita del segnale di STB è possibile catturare il dato. Il segnale STB torna a "0" quando si rilascia il pulsante. Nel caso della pressione di più pulsanti viene presentato il codice del primo pulsante che si è premuto. Nel caso di due tasti premuti contemporaneamente non vi sarà nessuna variazione sulle linee D0-D3 e sul segnale STB. Le linee da COL0 a COL3 devono essere collegate a massa tramite resistenze da 10K. Il micro svolge le stesse funzioni dell' integrato 74C922 con una funzione in più: l' invio del codice ASCII del tasto premuto tramite la linea di comunicazione seriale. La velocità di comunicazione è impostata in modo automatico tramite una procedura di riconoscimento della velocità (auto-bauding). L' applicazione funziona subito come controller che presenta i dati sulle linee D0-D3 ma, se riceve un carattere esadecimale 0x55 corrispondente MICROCONTROLLORI COME CIRCUITI LOGICI 3

al carattere ASCII "U" dall' ingresso RX, riconosce la velocità e da quel momento in poi invierà anche il carattere ASCII attraverso l' uscita TX. Potremo così interfacciare il controller nel modo che più ci aggrada. Il micro utilizzato è il PIC18F13K22 per vari motivi. In primo luogo diciamo che... non costa, o meglio, costa veramente poco (meno di 1,5 euro), può funzionare con una tensione di alimentazione che va da 1,8V (2,7V a qualsiasi frequenza) fino a 5,5V, ed ha l' oscillatore interno. L' uso dell' oscillatore interno permette di evitare di montare un quarzo. E' anche per questo motivo che ho pensato alla procedura di auto-bauding, infatti l' auto apprendimento della velocita' permette di eliminare l' errore di frequenza dell' oscillatore oltre che fornire flessibilità. Il non montare il quarzo vuol anche dire avere più linee di I/O disponibili. Direi che per questo tipo di applicazioni può essere un ottimo candidato. Il firmware Il firmware è scritto in C per il compilatore MPLAB C18 e non è niente di speciale. D' altronde l' applicazione è quella che è: molto semplice. Il sorgente è scaricabile e può essere anche riutilizzato per essere integrato in un progetto che prevede la scansione della tastiera. Come mio costume ho previsto la completa programmabilità delle linee utilizzate in modo da rendere facile l' adattamento all' hardware e dare la possibilità di utilizzare qualsiasi linea di I/O. la tabella cod_tasti contiene i codici esadecimali dei tasti. Sono un pò sparsi per via della tastierina che utilizzo e, per trovare la corrispondenza di ogni tasto con la tabella ho usato un sistema semplice: dapprima ho scritto i codici da 0 a F in sequenza e poi, premendo i tasti, ho visto quale codice usciva. Ho poi sostituito i codici originali con quelli corrispondenti ai tasti. E' un sistema da "praticone" ma... funziona! Da notare, all' interno della funzione accendi_riga, il fatto che le linee non utilizzate sono riconfigurate come ingressi per evitare, come spiegato prima, conflitti quando sono premuti più tasti. L' autobauding è una procedura molto semplice: si tratta di mettere il bit ABDEN a 1 ed aspettare che il flag di carattere ricevuto (RCIF del registro PIR1) vada a "1" ed il gioco e' quasi fatto. Bisogna infatti prendere il valore del registro SPBRG (in questo caso anche SPBRGH), sottrargli 1 e ricaricarlo. Conclusioni Utilizzare un microcontrollore per una funzione come questa potrebbe sembrare una scelta non molto intelligente ma, se ci pensiamo bene, non si discosta molto dalle applicazioni dei microcontrollori più piccoli (quelli a 8 pin) che vengono utilizzati negli alimentatori switching, nei controlli di motorini, varialuce e quant' altro. La possibilità di poter realizzare integrati che svolgono funzioni complesse (o semplici) è estremamente utile a livello hobbistico. Basti pensare al classico problema di realizzare un contatore a 4 cifre completo di decodifica, oppure un circuito per ottenere una frequenza programmabile. Ancora più interessante è l' applicazione del convertitore A/D del micro con il quale è facile realizzare voltmetri che, ad esempio, MICROCONTROLLORI COME CIRCUITI LOGICI 4

pilotano direttamente i displays. Con questo approccio si può sviluppare il progetto una volta sola, conservare il programma e, invece di impazzire cercando un integrato o un circuito che svolga la funzione e che magari è introvabile o costoso, prendere un micro, programmarlo e montarlo nel circuito. In questo modo potremmo eliminare quasi tutti i cassettini contenenti i circuiti logici, contatori, decodifiche, generatori di clock e tenerne uno solo con i micro vergini pronti all' uso. Un solo componente e tanti piccoli programmi. Download TF_key01.c eprom: La EPROM, acronimo di Erasable Programmable Read Only Memory, è una memoria di sola lettura cancellabile tramite raggi ultravioletti. Si tratta di un'evoluzione della PROM che, una volta programmata, non poteva essere più modificata (salvo usare trucchi da alchimista)....it.wikipedia.org/wiki/eprommore» Estratto da "http://www.electroyou.it/mediawiki/ index.php?title=userspages:tardofreak:microcontrollori-come-blocchi-funzionali" MICROCONTROLLORI COME CIRCUITI LOGICI 5