Corso di programmazione per microcontrollori ST626X. Prima parte

microcontrollori ST626X

Per apprendere la logica di funzionamento e le tecniche di programmazione dei nuovi modelli di una delle più diffuse e versatili famiglie di microcontrollori presenti sul mercato: la famiglia ST6 della SGS-Thomson. Prima puntata.

L’anno scorso, tra i primi nel settore hobbistico, abbiamo realizzato e pubblicato un completo Corso di Programmazione per microcontrollori (circuiti integrati che, per definizione, contengono una CPU, un oscillatore e un’ interfaccia di ingresso e di uscita). Nelle dieci puntate ci siamo occupati dei micro di base della famiglia ST6 della SGS-Thomson, precisamente dei modelli ST6210, ST6215, ST6220 e ST6225. Il successo ottenuto dal precedente Corso e la presentazione da parte della SGS-Thomson di due nuovi e più avanzati micro siglati ST6260 e ST6265, ci hanno indotti a pubblicare un aggiornamento del Corso nel quale ci occuperemo di questi prodotti.

Obiettivo principale di questo corso è la presentazione di due nuovi microcontrollori (ST6260 e ST6265) che vanno ad aggiungersi e a completare la famiglia ST6 da noi trattata. Il corso non vuole essere solo didattico o redazionale ma anche pratico, infatti ad esso è abbinato, come del resto al precedente, un kit di sviluppo che consentirà, a chi lo desidera, di mettere realmente in pratica le tecniche di programmazione apprese. Va anche detto che il corso non ha la pretesa di sostituire i manuali originali SGS-Thomson contenuti nel kit, ma solo di offrire un servizio di consulenza iniziale e di rendere meno complicato l’apprendimento dei concetti di base. Il corso, articolato in dieci puntate, affronterà le tecniche di programmazione partendo dai concetti elementari e si completerà con degli esempi pratici.

Cos’è’ un microcontrollore e come funziona

Il termine microcontrollore o MCU (Microcontroller unit) identifica un particolare circuito integrato che dispone nel suo interno di almeno cinque blocchi funzionali:

    – Una CPU definita come l’unità principale di calcolo;
    – Una memoria “programma” solitamente di tipo ROM o EPROM;
    – Una memoria “dati” di tipo RAM o EEPROM;
    – Una interfaccia di ingresso;
    – Una interfaccia di uscita.

Il principio di funzionamento di un microcontrollore è molto semplice, e coincide con quello di un computer o elaboratore elettronico e può essere riassunto in solo tre operazioni eseguite dalla CPU, essa legge l’istruzione contenuta nella memoria programma, la interpreta e la esegue. Analizzando lo schema a blocchi dell’ST6265 notiamo che la CPU indicata come “8 bit core” comunica attraverso un bus bidirezionale con tutte le risorse disponibili nel chip. Tra di esse distinguiamo le principali, ovvero quelle senza le quali il micro non potrebbe funzionare, che sono la memoria ROM, la memoria RAM e le interfacce di ingresso e uscita contraddistinte dalla sigla “Port”.

Nel micro ST6265 sono disponibili tre blocchi di interfaccia ingresso/uscita, definiti anche come porte di I/O (input/output), siglate rispettivamente: Port A, Port B, Port C. Ogni Port è collegato ad un determinato numero di pin del micro, per la precisione il Port A è collegato a 8 pin siglati da PA0 a PA7, il Port B è connesso ai pin da PB0 a PB7, il Port C è invece collegato a solo 5 pin siglati PC0, PC1, PC2, PC3, PC4 e PC5. Tutti i pin collegati ai port vengono indicati con il termine “linea di I/O (ingresso/uscita)”, il Port A e il Port B dispongono dunque di 8 linee ciascuno, mentre il Port C dispone di 5 linee di I/O. Ogni singola linea può essere programmata per funzionare come ingresso o come uscita.

Ad esempio se colleghiamo un pulsante ad un pin di I/O del micro dovremo programmare questo pin come ingresso, al contrario se vi colleghiamo un relè il pin sarà settato come uscita. Concludendo, ogni linea di I/O viene detta di ingresso se l’informazione transita dal mondo esterno alla CPU, oppure di uscita se i dati si spostano dalla CPU al mondo esterno. I nuovi microcontrollori ST6260 e ST6265 dispongono di funzioni molto avanzate per ogni linea di I/O; sono infatti disponibili ben 5 opzioni per ogni pin di ingresso: ingresso normale, ingresso con resistore di “pull-up”, ingresso di interruzione, ingresso analogico, ingresso seriale. Per un pin di uscita sono invece disponibili 4 diversi tipi di funzionamento: uscita “push-pull”, uscita “open-drain”, uscita ad alta corrente, uscita seriale. Nel capitolo dedicato all’interfaccia di I/O vedremo nel dettaglio come funzionano e come vanno usate le linee di I/O, per ora fermiamoci qui e procediamo invece nella descrizione dello schema a blocchi.

microcontrolloriu st6 contenitori

La famiglia di microcontrollori ST6

Il prefisso ST6 indica una famiglia di microcontrollori prodotti dalla SGS-Thomson per applicazioni generali (General Purpose Microcontrollers). Riportiamo nella seguente tabella le caratteristiche principali che differenziano i vari modelli:

microcontrolloriu st6 caratteristiche principali

ROM: indica la memoria programma ed è espressa in Kbyte, RAM: indica i byte di memoria dati, EEPROM:
byte disponibili di memoria dati non volatile, I/O: porte di ingresso o di uscita, A/D: convertitore da analogico a digitale, LED: indica le porte ad “alta corrente”, TIMER: timer a 8 bit, ARTIMER: timer a 8 bit di tipo autoricaricabile, SPI: interfaccia seriale. La tabella sopra riportata indica una serie di microcontrollori che si differenziano l’uno dall’altro a causa delle diverse risorse disponibili, mentre, al contrario, tutti hanno in comune lo stesso set di istruzioni. Da qui nasce la definizione di famiglia ovvero quell’insieme di micro che condividono lo stesso software, lo stesso assemblatore, e lo stesso algoritmo di programmazione, pur avendo risorse interne diverse. Se ne deduce che imparando a lavorare con uno qualsiasi di questi chip si può facilmente e rapidamente passare ad un altro modello della stessa famiglia.

microcontrollori_ST626X_configurazione_pin

Tags:
STAMPA

Leave a Reply