MICROCONTROLLORI (2° MODULO)
cod. 1010144

Anno accademico 2023/24
3° anno di corso - Primo semestre
Docente
- Nicola DELMONTE
Settore scientifico disciplinare
Elettronica (ING-INF/01)
Field
Ingegneria elettronica
Tipologia attività formativa
Caratterizzante
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi

1) Conoscenza e comprensione
Con questo corso s’intendono fornire agli studenti le conoscenze sui principi, modelli, tecniche e strumenti per la programmazione dei sistemi embedded a microcontrollore. Al termine di questo corso gli studenti avranno ottenuto un vero e proprio trasferimento di tecnologie con l’acquisizione di conoscenze e competenze di base utili ad avviare un lavoro personale per lo sviluppo di progetti di sistemi embedded a microcontrollore con la capacità di comprendere autonomamente hardware e instruction set di un generico microcontrollore, nonché di aver familiarità con gli ambienti di sviluppo integrato attualmente impiegati per la programmazione di questo tipo di circuiti integrati.

2) Capacità di applicare conoscenza e comprensione
Il corso ha l’obiettivo di mettere gli studenti in condizione di poter iniziare a progettare e sviluppare su misura applicazioni per il controllo di convertitori di potenza e/o per la realizzazione di nodi IoT smart. Tutto ciò, attraverso l'analisi di diversi casi di studio e tramite esercitazioni in laboratorio. Attraverso queste esercitazioni, lo studente acquisirà le capacità di applicare le tecniche apprese durante le lezioni teoriche nei contesti applicativi dove è richiesto l'utilizzo di sistemi embedded. Lo studente sarà anche in grado di comprendere come configurare un microcontrollore e le relative periferiche per l'applicazione specifica in cui esso dovrà essere impiegato.

Prerequisiti

Si ipotizza nello studente la familiarità̀ con le discipline informatiche per la programmazione e le nozioni di base dell’elettronica digitale e analogica acquisite nei corsi di laurea della classe dell’Ingegneria dell’informazione (classe L-8).

Contenuti dell'insegnamento

Parte prima:
1) Introduzione al corso
2) Cenni storici

Parte seconda:
3) Cenni all’elettronica embedded e definizione di microcontrollore
4) Classificazione delle architetture dei microcontrollori
5) Analisi di un microcontrollore commerciale
6) Periferiche (sensori, attuatori e display)

Parte terza:
7) Sviluppo di progetti per il controllo di convertitori di potenza e per la realizzazione di nodi IoT.

Programma esteso

1) Introduzione al corso (1 ora):
Descrizione approfondita del syllabus.
2) Cenni storici con riferimento ai microcontrollori ARM (1 ora).
3) Cenni all’elettronica embedded e definizione di microcontrollore (2 ore): Differenze tra CPU e MCU. Famiglie di MCU. Panoramica sulle periferiche di una MCU. Panoramica sui microcontrollori.
4) Classificazione delle architetture dei microcontrollori (1 ora): von Neumann vs Harvard; pipeline e stato dell’arte delle architetture.
5) Analisi dell’architettura di un microcontrollore commerciale (2 ore): Cortex M7
6) La periferica di I/O digitale (2 ore): Gestione e programmazione delle porte di I/O. Lettura di un ingresso. Scrittura di un'uscita.
7) I Timer (3 ore): Principio di funzionamento di un timer hardware. Base dei tempi e prescaler. Uso dell'auto-reload. Eventi e Interrupt. Uso dei timer per la generazione di segnali PWM (pulse width modulation). Esempi di utilizzo con Timer e I/O digitale.
8) Pattern di programmazione (2 ore): Macchina a stati finiti. Concetto di stato ed evento. Polling bloccante e non bloccante di eventi. Interrupt. Esempi di problemi con macchine a stati finiti.
9) La periferica UART (2 ore): Principio di funzionamento di una UART. Programmazione della periferica UART. Interrupt e polling. Trasmissione di un carattere. Ricezione di un carattere.
10) Convertitori analogico-digitali (2 ore): Principio di funzionamento. Circuito sample-and-hold. Programmazione di un ADC converter. Sensori e conversione di unità fisiche. Esempi di problemi con ADC.
11) Periferiche di comunicazione (3 ore): I2C, SPI, CAN.
12) Protocolli per l’IoT (2 ore).
13) Periferiche (1 ora): sensori, attuatori e display.
14) Sviluppo di progetti per il controllo di convertitori di potenza e per la realizzazione di nodi IoT (24 ore):
- esercitazioni per la programmazione con l’impiego dell’ambiente di sviluppo della STMicroelectronics: piattaforma STM32Cube;
- realizzazione di circuiti con schede di prototipazione, sensori e attuatori.


Bibliografia

“Microcontrollers: Hardware and firmware for 8-bit and 32-bit devices” di Franco Zappa, Società Editrice Esculapio, ISBN: 9788893850223

Metodi didattici

Il corso è da 6 crediti ed è svolto in 48 ore svolte alternando lezioni frontali in aula con esercitazioni di laboratorio. Tutte le lezioni di laboratorio sono svolte utilizzando schede di sviluppo STM32 della STMicroelectronics. Il corso ha una forte connotazione pratica e le lezioni sono caratterizzate da "live programming".
Le lezioni sono svolte dal docente con l’ausilio di slides (disponibili per il download agli studenti), del web e di personal computer dotato del software per la programmazione di specifici microcontrollori (della serie STM32, come indicato sopra). Per questo e per la necessità di impiegare hardware, le esercitazioni saranno svolte in un laboratorio specificamente attrezzato.
Durante le attività di laboratorio, a ciascun studente sarà assegnato un progetto da sviluppare con l’impiego di una scheda della serie STM32 Nucleo. Il circuito realizzato con questo progetto sarà oggetto di esame.
Oltre che durante le lezioni, il docente è disponibile per chiarimenti sulle lezioni su appuntamento (e-mail).

Modalità verifica apprendimento

L’esame è orale e consta di due parti:
- una presentazione di un progetto sviluppato (vedi “Metodi didattici”) per un totale massimo di 20 punti;
- risposta a un paio di domande (massimo 5 punti per ogni domanda) della parte di teoria trattata nelle lezioni frontali.
Il voto complessivo sarà dato dalla somma dei punteggi parziali ottenuti.
Durante l’esame lo studente dovrà dimostrare di:
• aver acquisito le nozioni di base dei microcontrollori;
• aver acquisito la capacità di applicare le tecniche apprese durante le lezioni teoriche nei contesti applicativi dove è richiesto l'utilizzo di sistemi embedded;
• aver compreso come configurare un microcontrollore e le relative periferiche per l'applicazione specifica in cui esso dovrà essere impiegato;
• aver acquisito conoscenze e competenze di base utili ad avviare un lavoro personale per lo sviluppo di progetti di sistemi embedded a microcontrollore.
La lode viene assegnata nel caso del raggiungimento del massimo punteggio su ogni argomento a cui si aggiunga qualche approfondimento rispetto agli argomenti esposti durante le lezioni e/o la padronanza del lessico disciplinare.

Altre informazioni

Sito web dell’insegnamento disponibile sulla piattaforma Elly.