alcuni micro controllori pic

Come funzionano i microcontrollori PIC

Nell’articolo d’introduzione a questa sezione di elettronica con i microcontrollori PIC, ho velocemente spiegato come sono fatti i microcontrollori e li ho paragonati a dei micro computer che hanno integrato tutto quello che serve per funzionare. Vediamo in dettaglio quali sono gli elementi principali che distinguono un microcontrollore:

  • CPU: Unità di elaborazione
  • ROM, EPROM, FLASH: Memoria di programma
  • OSCILLATORE: interno o esterno
  • Porte di I/O e/o GPIO configurabili
  • Gestione Interrupt
  • Moduli opzionali aggiuntivi:
    • Contatori e timer
    • Moduli di comunicazione: USART, I2C, SPI, USB, Ethernet, IrDA, CAN, Wi-Fi, Zigbee
    • Interfacce analogiche o a tecnologia mista: ADC, DAC, PWM, Comparatori analogici
    • Interfacce di visualizzazione e controllo: (LCD, Touch sensor)

Probabilmente per i molti che si avvicinano all’elettronica per la pima volta tutti questi termini potrebbero essere sconosciuti, quindi vediamo di fare un po’ di chiarezza. E’ importante conoscere tutte questi elementi per sfruttare al meglio il PIC e saperlo programmare correttamente!

LA CPU

E’ l’unità che si occupa della elaborazione e la gestione del flusso dei dati (Control Processing Unit) tra la ALU (Arithmetic & Logical Unit)che svolge operazioni logiche e matematiche, e le periferiche esterne.

ROM

La Read Only Memory, ovvero memoria a sola lettura, termine spesso abbreviato con l’acronimo ROM, è una tipologia di memoria non volatile in cui i dati sono memorizzati nella sua fase di costruzione e non possono essere modificati successivamente.

EPROM

La EPROM, acronimo di Erasable Programmable Read Only Memory, ovvero memoria di sola lettura programmabile e cancellabile, può essere totalmente cancellata, per un numero limitato ma consistente di volte, e riprogrammata a piacimento.

FLASH

Anche chiamata flash memory, è una tipologia di memoria di stato solido, di tipo non volatile, che per le sue prestazioni può anche essere usata come memoria a lettura-scrittura. Quando viene utilizzata come ROM viene anche chiamata flash ROM.

OSCILLATORE

E’ un circuito elettronico che genera forme d’onda di frequenza, forma e ampiezza di molteplici tipi senza un segnale di ingresso. Alcuni sono progettati per poterne generare di frequenza, forma e ampiezza variabile tramite sistemi di controllo quali tensioni o potenziometri.

GPIO

Il General Purpose Input/Output è un’interfaccia disponibile su alcuni dispositivi elettronici, quali i microcontrollori. Queste possono agire come input, per leggere i segnali digitali dalle altre parti del circuito, o output, per controllare o segnalare agli altri dispositivi.
E’ fondamentale capire come funziona questa interfaccia in quanto è il nostro mezzo per comunicare con i sensori, LED o altri componenti che comporranno i nostri circuiti.

INTERRUPT

Un interrupt o interruzione è un segnale asincrono che indica il “bisogno di attenzione” da parte di una periferica finalizzata ad una particolare richiesta di servizio, un evento sincrono che consente l’interruzione di un processo qualora si verifichino determinate condizioni, oppure più in generale una particolare richiesta al sistema operativo da parte di un processo in esecuzione.

ADC

Analog to Digital Converter, è un convertitore analogico-digitale ossia un circuito elettronico  in grado di convertire un segnale Analogico con andamento continuo in una serie di valori discreti. La risoluzione di un ADC indica il numero di valori discreti che può produrre. È usualmente espressa in Bit. Per esempio, un ADC che codifica un ingresso analogico in 256 livelli discreti ha una risoluzione di 8 bit, essendo 28 = 256. La risoluzione può anche essere definita elettricamente, ed espressa in volt. La risoluzione in volt di un ADC è uguale alla minima differenza di potenziale tra due segnali che vengono codificati con due livelli distinti adiacenti.

DAC

Il Digital (to) Analog Converter, convertitore digitale-analogico è un circuito elettronico in grado di produrre sul suo terminale di uscita, un determinato livello di tensione o di corrente, in funzione di un valore numerico che viene presentato al suo ingresso; ad esempio, ad un valore pari ad 1 corrisponderà una tensione di uscita di 0,1V, ad un valore di 2 avremo 0,2V così via. La tabella di conversione dal valore digitale a quello analogico prende il nome di LUT (Look-Up Table) e può avere caratteristiche proporzionali (come nel precedente esempio), o può seguire un andamento del tutto arbitrario, a seconda del suo impiego.

PWM

La pulse width modulation o modulazione di larghezza di impulso, è un tipo di modulazione digitale che permette di ottenere una tensione media variabile dipendente dal rapporto tra la durata dell’ impulso positivo e di quello negativo, allo stesso modo è utilizzato per protocolli di comunicazione in cui l’informazione è codificata sotto forma di durata nel tempo di ciascun impulso. Grazie ai moderni microcontrollori è possibile attivare o inattivare un interruttore ad alta frequenza e allo stesso modo rilevare lo stato e il periodo di un impulso.

Grafico con esempi di impulsi PWM con diversa lunghezza

COMPARATORI ANALOGICI

In campo analogico l’uso più frequente è la comparazione di un livello di tensione variabile, rispetto ad un livello di riferimento fisso.

A questo punto, avendo visto come è fatto un microcontrollore e quali elementi lo caratterizzano iniziamo a capire come funziona. Ogni PIC ha diverse caratteristiche, quantità di memoria, capacità di elaborazione, numero di porte e così via.
La prima cosa che dobbiamo fare è capire quale PIC serve per i nostri scopi, andando magari a visualizzare le tabelle che ad esempio la Microchip mette a disposizione per vedere le differenze.
Ad esempio nel mio caso per i primi progetti ho scelto un PIC con 8 PIN, quindi molto piccolo, con poche porte e un oscillatore interno già calibrato. Per iniziare semplifichiamoci la vita e impariamo a gestire le cose principali senza perderci in grandi quantità di porte oscillatori anche esterni e altre funzionalità che ora non sapremmo come gestire!
Un altra considerazione che vorrei fare è che in commercio sono in vendita delle schede in Kit o già assemblate che offrono la possibilità di collegare alcuni PIC e in base alle istruzioni che caricheremo esse aiuteranno nel Debug o nelle esercitazioni. Sono schede che hanno anche un certo costo, valutate bene se l’acquisto di questo tipo di materiale possa semplificarci la vita o al contrario complicarvela. Sicuramente per imparare sarebbe meglio crearsi un progetto con un analisi approfondita, metterlo in pratica aiutandosi con una manciata di componenti, una breadboard e un alimentazione che può essere una batteria, un alimentatore o in alcuni casi il programmatore stesso.
Partiamo da semplici e piccoli progetti come l’accensione di uno o due LED e poi via via aumenteremo le difficoltà aggiungendo ai nostri progetti funzionalità particolari quali ad esempio un pulsante di comando, un sensore o altro.
Io personalmente ho deciso di non spendere soldi in schede varie con funzionalità incredibili di cui forse non avrei utilizzato e capito molto, ma ho deciso di investire qualche euro in un paio di breadboard e dei cavi wire per collegare i vari componenti che andrò ad utilizzare. E’ un po’ l’idea dello Starter Kit Arduino, i componenti necessari per realizzare vari progetti, una breadboard dove collocare temporaneamente il tutto e il gioco è fatto.
La differenza principale è che non avremo un interfaccia semplice e pronta per collegare il nostro  programmatore, ma non temete basta ingegnarsi un attimo, una fila di contatti, leggere il datasheet del nostro PIC per capire quali sono le porte di programmazione e seguendo lo schema del nostro programmatore preparare un zona sulla nostra breadboard dove andremo a posizionare il PIC da programmare. Questo ci aiuterà a capire anche come funziona la programmazione, tramite quale porte avviene e come gestirle.
Nei prossimi articoli oltre ai primi progetti, metterò i dettagli su come usare e collegare il programmatore, come portare l’alimentazione alla nostra breadboard in modo che si possa avere una tensione di 5V la più pulita possibile, da diverse fonti quali una o più batterie o un alimentatore.
Seguitemi, nei prossimi articoli vedremo come interagire con i nostri PIC!

Fermodellismo Elettronica Pesca e tanto altro…