logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2018/2019
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 099276 - MICROCONTROLLORI
Docente Zappa Franco
Cfu 5.00 Tipo insegnamento Monodisciplinare

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento
Ing Ind - Inf (1 liv.)(ord. 270) - MI (357) INGEGNERIA ELETTRONICA*AZZZZ099276 - MICROCONTROLLORI

Obiettivi dell'insegnamento

Obiettivo del corso è permettere agli studenti di acquisire competenze sull’impiego dei microcontrollori all’interno dei sistemi elettronici e di imparare a programmarli in C ed in linguaggio Assembly.

Il corso presenta le architetture interne dei microcontrollori ad 8 bit di Microchip e di STMicroelectronics ed accenna alle differenze con i microcontrollori a 32 bit della serie ARM-Cortex.

Si tratta di un corso rivolto a tutti gli studenti interessati ad acquisire competenze di analisi e progettazione di sistemi elettronici basati su microcontrollori, sia della progettazione hardware di schede, che dello sviluppo del firmware (in Assembly) e poi del software (in C) a più alto livello.

Il corso è di 5 CFU, ovvero di 50 ore di didattica. Oltre alle LEZIONI teoriche (16 ore in aula), oltre la metà del corso verterà su ESERCITAZIONI sperimentali (18 ore) e LABORATORI pratici (16 ore) mediante applicativi CAD, linguaggi di programmazione (assembler e C) e sistemi di sviluppo di microcontrollori commerciali. In particolare verranno impiegati simulatori circuitali PROTEUS e di programmazione C, e le schede di sviluppo di MikroElektronika basate su microcontrollori PIC della Microchip.

Nei laboratori pratici, gli studenti saranno divisi in sezioni di circa 20 studenti ciascuna e ogni sezione frequenterà un laboratorio di 2 ore consecutive a settimana (a scelta tra lunedì, martedì, mercoledì o giovedì pomeriggio), per circa 2 mesi, ovvero un totale di 8 laboratori di 2 ore, per un totale di 16 ore di laboratorio per ciascuno studente.  Durante il laboratorio ciascuno studente avrà a disposizione una scheda di sviluppo con microcontrollore della MikroElektronika (EasyPIC v.7), su cui svolgerà di prima persona le attività proposte in laboratorio.


Risultati di apprendimento attesi

Descrittore di Dublino #1: conoscenza e comprensione

Al termine del corso e dopo aver superato l’esame, lo studente:

  • saprà come scegliere un microcontrollore, in base al sistema elettronico in esame;
  • saprà quali strumenti utilizzare (sistemi di sviluppo, IDE, software di programmazione) per iniziare ad implementare un sistema basato su microcontrollore;
  • saprà leggere ed interpretare i data-sheet di microcontrollori commerciali, di famiglie e case costruttrici diverse;
  • avrà le basi per programmare in Assembly i microcontrollori ad 8 bit, e specificamente i PIC di Microchip;
  • saprà programmare in C i microcontrollori ad 8 bit, in particolare quelli PIC di Microchip;
  • saprà illustrare il funzionamento delle periferiche interne dei microcontrollori e discutere la loro programmabilità, mediante registri speciali di controllo o piedini di ingresso/uscita;
  • saprà confrontare le prestazioni di diversi micro, in base alla disponibilità di periferiche interne, memorie, bus e registri.

 

Descrittore di Dublino #2: capacità di applicare competenza e comprensione

Al termine del corso e dopo aver superato l’esame, lo studente:

  • sarà capace di leggere e comprendere i data-sheet di microcontrollori commerciali;
  • sarà capace di scegliere il microcontrollore più opportuno per l’applicazioni in esame;
  • potrà comprendere quali prestazioni del microcontrollore possono impattare sulle prestazioni ultime di un sistema elettronico;
  • potrò comprendere l’architettura di nuovi microcontrollori, basandosi sulle conoscenze acquisite ed ampliandole;
  • saprà progettare circuiti e sistemi a microcontrollore, scegliendo dispositivi, dimensionandoli opportunamente e programmandoli;
  • saprà scegliere il migliore sistema di sviluppo o ambiente di programmazione, in base all’applicazione;
  • saprà fare il debug di firmware e software per individuarne problemi e introdurre migliorie.

Argomenti trattati

Microcontrollori (16 ore di lezione)

  • Introduzione ai µC: caratteristiche; architetture; data-sheet di prodotti commerciali.
  • Memorie interna: memorie dati (RAM e flash); memoria programmi (ROM, OTP, E2PROM, flash); special function registers.
  • Periferiche interne: porte di I/O, counter, timer, convertitore Analogico-Digitale (ADC), conversione Digitale-Analogica (DAC), generazione analogica mediante modulazione della larghezza dell’impulso digitale (PWM).
  • Circuiti ausiliari: reset, oscillatore, interrupt, watchdog.
  • µC commerciali: famiglie 8 bit e 32 bit; data-sheet di prodotti commerciali.
  • ARM e CORTEX: architettura, produttori, istruzioni, periferiche interne.

 

Firmware e software (18 ore di esercitazione)

  • Piattaforma hardware: illustrazione del sistema di sviluppo da usare; schematici hardware e periferiche esterne.
  • Piattaforma simulativa: illustrazione del simulatore per circuiti digitali, analogici e mixed-signal.
  • Programmazione: modalità di indirizzamento; gestione dei banchi di memoria; gestione delle periferiche; routine di interrupt.
  • Firmware: istruzioni Assembly; cicli macchina; macro; sviluppo di semplici routine.
  • Software: compilatore C; esempi di codice; portabilità del codice.

 

Progetti hardware (16 ore di laboratori pratici)

  • Tipologia: esempi pratici e “hands-on”, sia basilari che di media complessità; progettazione modulare di schede, verso integrazione in sistemi.
  • Gestione di I/O: ingressi/uscite digitali e ingressi analogici; pilotaggio di relè, LED, memorie e DAC/ADC paralleli esterni; gestione degli interrupt; gestione tastiere e display:
  • Temporizzazione: impostazioni dei timer; temporizzazioni ed interrupt; modalità low-power e sleep.
  • Comunicazioni seriale: SPI, I2C, RS232; gestione di memorie (E2PROM, RAM, SDRAM, flash) e convertitori (ADC, DAC) esterni e altri dispositivi.
  • Schermi LCD grafici: interfacciamento; temporizzazioni; data-sheet di prodotti commerciali.

Prerequisiti

Lo studente deve possedere delle conoscenze di elettronica digitale (porte logiche, flip-flop, registri, contatori, mux, memorie) e delle basilari conoscenze di circuiti elettronici (segnali di tensione e corrente, alimentazioni, componenti passivi e legge di Ohm) e di componenti analogici (passivi e transistori MOS e/o BJT). Questi concetti si acquisiscono in normali corsi della Laurea di primo livello, ad esempio in “Fondamenti di Elettronica”, “Elettronica analogica”, “Elettronica digitale”.

Non è necessario aver superato una Laurea di primo livello in Elettronica, bensì vanno bene anche altre Lauree affini, in cui siano stati svolti i concetti base dell’elettronica, soprattutto quella digitale.


Modalità di valutazione

Lo studente dovrà superare una prima prova SCRITTA, seguita da una prova pratica di LABORATORIO, e terminare con una discussione ORALE.

La prova scritta durerà 1 ora e mezza e si svolgerà in un’aula, il giorno stabilito dello scritto, disponibile online sul sito POLIMI. La prova riguarderà alcune domande sulle periferiche dei microcontrollori viste a lezione ed esercitazione e sulla modalità di programmazione in Assembly.

Il voto della prova scritta verrà comunicato per email nei giorni seguenti la prova scritta. Solo i sufficienti (voto maggiore di 18/30) saranno ammessi alla successiva prova, che si terrà in data comunicata per email dal docente e solitamente pochi giorni dopo lo scritto.

La prova pratica di laboratorio avverrà in un’aula informatica attrezzata con circa 15 computer dotati delle stesse schede a microcontrollore usate nei laboratori e con lo stesso software installato. Lo studente dovrà mostrare di saper modificare il codice C per assolvere alla funzione richiesta. Avrà a disposizione 2 ore.

Al termine della prova, lo studente effettuerà la discussione orale, di circa 15-20 minuti, in cui illustrerà come e perché ha implementato il codice C nella prova di laboratorio e risponderà ad altre domande riguardante gli argomenti presentati in tutto il corso.

Il voto finale sarà la somma del voto dello scritto (massimo di circa 10/30), della prova di laboratorio (massimo di circa 15/30) e della discussione orale (massimo di circa 10/30), e saturerà a 30 e lode. L’esame sarà superato se il voto finale risulterà maggiore o uguale a 18/30.


Bibliografia
Risorsa bibliografica obbligatoriaFranco ZAPPA, MICROCONTROLLERS, Editore: Esculapio, Bologna, Anno edizione: 2017, ISBN: 978-88-9385-022-3

Software utilizzato
Nessun software richiesto

Forme didattiche
Tipo Forma Didattica Ore di attività svolte in aula
(hh:mm)
Ore di studio autonome
(hh:mm)
Lezione
16:00
24:00
Esercitazione
18:00
27:00
Laboratorio Informatico
0:00
0:00
Laboratorio Sperimentale
16:00
24:00
Laboratorio Di Progetto
0:00
0:00
Totale 50:00 75:00

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Italiano
Disponibilità di materiale didattico/slides in lingua inglese
Disponibilità di libri di testo/bibliografia in lingua inglese
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese
schedaincarico v. 1.6.9 / 1.6.9
Area Servizi ICT
22/01/2022